Un ambiente di esecuzione di Cloud Deploy è l'ambiente in cui Cloud Deploy esegue le operazioni di rendering, predeployment, deployment, verifica e post-deployment. L'ambiente di esecuzione è costituito dai seguenti componenti:
Il pool di worker Cloud Build (predefinito o privato) in cui Cloud Deploy esegue le operazioni di rendering, predeployment, deployment, verifica e post-deployment
L'account di servizio (predefinito o alternativo) che chiama Cloud Deploy per eseguire queste azioni
La posizione di archiviazione (predefinita o alternativa) per i manifest visualizzati in Cloud Storage
Il timeout di Cloud Build per le operazioni (predefinito o personalizzato)
Questo articolo descrive l'ambiente di esecuzione, gli account di servizio e lo spazio di archiviazione predefiniti per Cloud Deploy, nonché il motivo e il modo in cui puoi modificare queste impostazioni predefinite.
Predefiniti
Di seguito sono riportate le impostazioni predefinite utilizzate da Cloud Deploy per l'esecuzione, per eseguire il rendering e il deployment e per archiviare asset come i manifest con rendering:
Pool di worker predefinito
Per impostazione predefinita, Cloud Deploy viene eseguito nel pool di worker Cloud Build predefinito. Tuttavia, puoi configurare Cloud Deploy in modo che utilizzi un pool di worker privato di Cloud Build.
Per ulteriori dettagli sui pool di worker, consulta la Panoramica dei pool predefiniti e dei pool privati di Cloud Build.
Account di servizio di esecuzione predefinito
Per impostazione predefinita, Cloud Deploy utilizza l'account di servizio predefinito di Compute Engine.
Posizione di archiviazione predefinita di Cloud Deploy
Questo valore è il bucket Cloud Storage in cui Cloud Deploy memorizza i manifest con rendering. Per impostazione predefinita, Cloud Deploy crea un bucket Cloud Storage nella stessa regione delle risorse Cloud Deploy, nel seguente formato:
<location>.deploy-artifacts.<project ID>.appspot.com
Tempo di spegnimento predefinito di Cloud Build
Per impostazione predefinita, Cloud Build ha un timeout di 1 ora per le operazioni eseguite per Cloud Deploy. Puoi modificare questo timeout nella specifica dell'ambiente di esecuzione in configurazione di destinazione.
Dettagliatezza predefinita per Skaffold, gcloud CLI e kubectl
Per impostazione predefinita, i livelli di log per questi strumenti sono impostati sui rispettivi valori predefiniti, tipicamente
warn
o l'equivalente. Puoi modificare questa opzione indebug
o l'equivalente.
Le sezioni che seguono descrivono le circostanze in cui potresti modificare uno di questi valori e i link alle istruzioni per farlo.
Informazioni sui pool di worker di Cloud Build
L'ambiente di esecuzione di Cloud Deploy può utilizzare uno dei seguenti elementi:
Il pool predefinito di Cloud Build
Il pool di worker predefinito è un ambiente ospitato sicuro con accesso alla rete internet pubblica. Le operazioni di rendering, deployment, pre-deployment, post-deployment e verifica vengono eseguite in questo pool, isolate da altri workload.
Un 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 essere scalati verso l'alto o fare lo scale down a zero, senza infrastrutture da configurare, eseguire l'upgrade o scalare.
La Panoramica dei pool privati di Cloud Build descrive in modo più approfondito i pool di worker predefiniti e i pool di worker privati, inclusa una tabella che ne mette a confronto le funzionalità.
Modifica dell'ambiente di esecuzione di Cloud Deploy
Potresti modificare l'ambiente di esecuzione di Cloud Deploy nelle seguenti circostanze:
Vuoi eseguire il deployment in un cluster Google Kubernetes Engine privato
Vuoi eseguire operazioni di rendering, deployment, pre-deployment, post-deployment o verifica o una combinazione delle cinque in un ambiente isolato da altre organizzazioni.
Vuoi che queste operazioni vengano eseguite in un ambiente non collegato alla rete internet pubblica.
Vuoi ambienti separati per il rendering e il deployment.
Vuoi utilizzare un account di servizio dedicato con autorizzazioni più specifiche per il tuo utilizzo rispetto a quelle disponibili nell'account di servizio predefinito.
Vuoi archiviare i manifest visualizzati in una posizione diversa dal bucket Cloud Storage predefinito.
La configurazione di tutte e tre le parti dell'ambiente di esecuzione (pool di worker, account servizio e archiviazione) viene eseguita per destinazione, nella configurazione YAML di ogni destinazione.
Passare dal pool predefinito a un pool privato
Configura i pool di worker per target,
in modo che il pool venga utilizzato per RENDER
, DEPLOY
, PREDEPLOY
, POSTDEPLOY
o
VERIFY
(o una combinazione dei cinque) solo per quel target.
Per utilizzare il pool di worker predefinito sia per le operazioni di rendering sia per quelle di deployment, non devi fare nulla.
Di seguito è riportata una configurazione di destinazione di esempio che specifica un pool di worker privato per DEPLOY
e il pool di worker predefinito per RENDER
, PREDEPLOY
,
POSTDEPLOY
e VERIFY
:
executionConfigs:
- usages:
- DEPLOY
privatePool:
workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
- usages:
- RENDER
- PREDEPLOY
- VERIFY
- POSTDEPLOY
Per ulteriori informazioni su come configurare i pool privati per i target, consulta la documentazione sulla configurazione della pipeline di importazione.
Passaggio dall'account di servizio di esecuzione predefinito a quello personalizzato
Come per il pool di worker, puoi specificare un account di servizio alternativo da utilizzare per il rendering o il deployment (o per entrambi) per destinazione. A tal fine, 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 Cloud Deploy.
Per maggiori dettagli su questa configurazione, consulta Definizioni target.
Modificare la posizione di archiviazione
Per modificare il bucket di archiviazione predefinito di Cloud Deploy, aggiungi la seguente riga alla definizione del target nella stanza workerPool
:
artifactStorage: "gs://[bucket_name]/[dir]"
Questa configurazione modifica la posizione in cui vengono archiviati i manifest visualizzati, ma non influisce sulla posizione in cui è archiviata l'origine di rendering.
Modificare il livello di log per Skaffold, gcloud CLI e kubectl
Per modificare il livello di log di Skaffold, dell'interfaccia alla gcloud CLI e di kubectl dalle rispettive impostazioni predefinite a debug
(o l'equivalente), imposta verbose
su true
nelle configurazioni di esecuzione. Ecco un esempio:
executionConfigs:
- usages:
- [RENDER | PREDEPLOY| DEPLOY | VERIFY | POSTDEPLOY]
workerPool:
serviceAccount:
artifactStorage:
executionTimeout:
verbose: true
Utilizzo di Cloud Deploy in un perimetro dei Controlli di servizio VPC
Cloud Deploy supporta i Controlli di servizio VPC.
Puoi seguire la guida rapida sui Controlli di servizio VPC per configurare un perimetro di servizio.
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 Cloud Deploy devono rimanere nello stesso perimetro di sicurezza dei Controlli di servizio VPC.
Qualsiasi cluster GKE in 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, consulta questo tutorial.
Passaggi successivi
Scopri di più sulla configurazione della destinazione Cloud Deploy.
Scopri di più sui pool privati di Cloud Build.
Scopri come Cloud Build utilizza i Controlli di servizio VPC.
Scopri come Cloud Deploy utilizza gli account di servizio.
Accedi ai cluster GKE privati con i pool privati di Cloud Build.