Utilizzo degli ambienti di esecuzione di Google Cloud Deploy

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Un ambiente di esecuzione di Google Cloud Deploy è l'ambiente in cui Google Cloud Deploy esegue le operazioni di rendering, deployment e verifica. L'ambiente di esecuzione è costituito dai seguenti componenti:

  • Il pool di worker di Cloud Build (predefinito o privato) in cui Google Cloud Deploy esegue operazioni di rendering, deployment e verifica

  • L'account di servizio (predefinito o alternativo) che chiama Google Cloud Deploy per eseguire queste azioni

  • La località di archiviazione (predefinita o alternativa) dei manifest visualizzati in Cloud Storage

  • Il timeout di Cloud Build per le operazioni (predefinito o personalizzato)

Questo articolo descrive l'ambiente di esecuzione predefinito, gli account di servizio e lo spazio di archiviazione per Google Cloud Deploy, nonché il motivo e la modalità di modifica di questi valori predefiniti.

Valori predefiniti

Di seguito sono riportati i valori predefiniti che Google Cloud Deploy utilizza per eseguire, eseguire il rendering e il deployment e archiviare asset come i manifest visualizzati:

  • Pool di worker predefinito

    Per impostazione predefinita, Google Cloud Deploy viene eseguito nel pool di worker Cloud Build predefinito. Tuttavia, puoi configurare Google Cloud Deploy per utilizzare un pool di worker privato di Cloud Build.

    Per maggiori dettagli sui pool di worker, consulta la panoramica sui pool predefiniti e sui pool privati di Cloud Build.

  • Account di servizio di esecuzione predefinito

    Per impostazione predefinita, Google Cloud Deploy utilizza l'account di servizio predefinito di Compute Engine.

  • Posizione di archiviazione predefinita di Google Cloud Deploy

    Questo valore è il bucket Cloud Storage in cui Google Cloud Deploy archivia i manifest manifest. Per impostazione predefinita, Google Cloud Deploy crea un bucket Cloud Storage, nella stessa regione delle risorse Google Cloud Deploy, nel seguente formato:

    <location>.deploy-artifacts.<project ID>.appspot.com

  • Timeout Cloud Build predefinito

    Per impostazione predefinita, Cloud Build ha un timeout di 1 ora sulle operazioni che esegue per Google Cloud Deploy. Puoi modificare questo timeout nella specifica dell'ambiente di esecuzione nella configurazione di destinazione.

Le sezioni seguenti descrivono i casi in cui cambi ciascuno di questi valori e rimandano alle istruzioni per farlo.

Informazioni sui pool di worker di Cloud Build

L'ambiente di esecuzione di Google Cloud Deploy può utilizzare uno dei seguenti sistemi operativi:

  • Il pool predefinito di Cloud Build

    Il pool di worker predefinito è un ambiente sicuro ospitato con accesso alla rete Internet pubblica. Le operazioni di rendering, deployment e verifica vengono eseguite in quel pool, isolate da altri carichi di lavoro.

  • Pool privato

    I pool di worker privati sono pool privati e dedicati che possono essere personalizzati più del pool di worker predefinito. Questa personalizzazione può includere la possibilità di accedere alle risorse in una rete privata. Come il pool di worker predefinito, i pool di worker privati sono ospitati e gestiti completamente da Cloud Build. Questi pool possono fare lo scale up o lo scale down fino a zero, senza dover configurare, eseguire l'upgrade o scalare.

    Nella panoramica dei pool privati di Cloud Build viene descritto in modo più dettagliato i pool di worker predefiniti e i pool di worker privati, inclusa una tabella di confronto delle loro funzionalità.

Modifica dell'ambiente di esecuzione di Google Cloud Deploy

Puoi modificare l'ambiente di esecuzione di Google Cloud Deploy nelle seguenti circostanze:

  • Vuoi eseguire il deployment in un cluster Google Kubernetes Engine privato

  • Vuoi eseguire operazioni di rendering, deployment o verifica o una combinazione delle tre opzioni in un ambiente isolato dalle altre organizzazioni.

  • Vuoi che queste operazioni vengano eseguite in un ambiente non connesso alla rete Internet pubblica.

  • Vuoi ambienti diversi per il rendering e il deployment.

  • Vuoi utilizzare un account di servizio dedicato con autorizzazioni più specifiche per l'utilizzo rispetto alle autorizzazioni disponibili nell'account di servizio predefinito.

  • Vuoi archiviare i manifest con rendering in una località diversa dal bucket Cloud Storage predefinito.

La configurazione di tutte e tre le parti dell'ambiente di esecuzione (pool di worker, account di servizio e spazio di archiviazione) viene eseguita per destinazione, nella configurazione YAML di ogni target.

Passare dal pool predefinito a un pool privato

Puoi configurare i pool di worker per destinazione, in modo che venga utilizzato per RENDER, DEPLOY o VERIFY (o una combinazione dei tre) solo per quel target.

Per utilizzare il pool di worker predefinito sia per le operazioni di rendering che per il deployment, non è necessario eseguire alcuna operazione.

Di seguito è riportato un esempio di configurazione di destinazione che specifica un pool di worker privato per DEPLOY e il pool di worker predefinito per RENDER e VERIFY:

executionConfigs:
- usages:
  - DEPLOY
  workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
- usages:
  - RENDER
  - VERIFY

Per ulteriori informazioni su come configurare i pool privati per le destinazioni, consulta la documentazione di configurazione della pipeline di distribuzione.

Passare dall'account predefinito all'account di servizio personalizzato

Come con il pool di worker, puoi specificare un account di servizio alternativo da utilizzare per il rendering o il deployment (o entrambi) per destinazione. Per farlo, aggiungi la seguente riga alla configurazione di destinazione, dopo l'elemento workerPool:

serviceAccount: "[name]@[project_name].iam.gserviceaccount.com"

L'account di servizio specificato deve includere il ruolo clouddeploy.jobRunner, come descritto nel documento Account di servizio Google Cloud Deploy.

Per ulteriori dettagli su questa configurazione, consulta Definizioni di destinazione.

Modificare la posizione di archiviazione

Per modificare il bucket di archiviazione dal valore predefinito di Google Cloud Deploy, aggiungi la seguente riga alla definizione di destinazione nella stanza virtuale workerPool:

artifactStorage: "gs://[bucket_name]/[dir]"

Questa configurazione cambia la posizione in cui sono archiviati i manifest, ma non influisce su dove è archiviata l'origine del rendering.

Deployment in un cluster privato su una rete Virtual Private Cloud

Puoi configurare una destinazione di cui eseguire il deployment in un cluster GKE privato connesso a una rete Virtual Private Cloud:

  1. Crea il cluster privato

    Un cluster privato è un cluster nativo di VPC i cui nodi e pod sono isolati per impostazione predefinita dalla rete Internet pubblica.

    Se prevedi di utilizzare l'IP interno della destinazione del cluster privato, imposta internalIp su true in gke nella configurazione della destinazione.

  2. In Cloud Build, crea un pool di worker privato che puoi utilizzare per eseguire il deployment in questo cluster privato.

  3. Configura l'ambiente di esecuzione in modo che utilizzi quel pool privato.

    Devi utilizzare questo pool per RENDER. Puoi anche utilizzarlo per DEPLOY e per VERIFY. Ecco un esempio che utilizza RENDER e DEPLOY:

    executionConfigs:
    - usages:
      - RENDER
      - DEPLOY
      workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
    

Per ulteriori informazioni, consulta l'articolo su come accedere ai cluster GKE privati con pool privati di Cloud Build.

Considerazioni su progetto e autorizzazioni

È semplice configurare una destinazione per utilizzare un pool di worker privato che può eseguire il deployment in un cluster privato. Tuttavia, ci sono alcuni aspetti da considerare se le risorse si trovano in progetti diversi.

Quando Google Cloud Deploy e il pool di worker si trovano in progetti separati

Per comunicare con un pool privato che ha accesso a un VPC e in un progetto diverso dal tuo target, l'agente di servizio Google Cloud Deploy ha bisogno di autorizzazioni sufficienti per comunicare con quel progetto.

L'account di servizio di esecuzione richiede anche le autorizzazioni per accedere al bucket Cloud Storage.

Quando il pool di worker e il cluster sono in progetti separati

Se il cluster GKE privato si trova in un progetto diverso dal pool privato di worker, l'account di servizio di esecuzione richiede autorizzazioni sufficienti per comunicare con il progetto in cui si trova il cluster.

Utilizzo di Google Cloud Deploy in un perimetro Controlli di servizio VPC

Google Cloud Deploy supporta i controlli di servizio VPC.

Per configurare un perimetro di servizio, puoi seguire la guida rapida di Controlli di servizio VPC.

Limitazioni

  • Devi utilizzare un pool di worker privato di Cloud Build per l'ambiente di esecuzione del target, non il pool di worker predefinito.

  • Il progetto che contiene il pool di worker e il progetto che contiene le risorse di Google Cloud Deploy deve rimanere nello stesso perimetro di sicurezza dei Controlli di servizio VPC.

  • Qualsiasi cluster GKE di cui esegui il deployment nel perimetro dei Controlli di servizio VPC deve essere un cluster privato.

    Per configurare un pool privato per un cluster privato, segui questo tutorial.

Passaggi successivi