Un ambiente di esecuzione di Cloud Deploy è l'ambiente in cui Cloud Deploy esegue il rendering, il pre-deployment, il deployment, la verifica le operazioni di post-deployment. L'ambiente di esecuzione è costituito dai seguenti elementi componenti:
Il pool di worker di Cloud Build (predefinito o privato) in cui Cloud Deploy esegue il rendering, le operazioni di pre-deployment, deployment, verifica e post-deployment
L'account di servizio (predefinito o alternativo) che chiama Cloud Deploy eseguire queste azioni
La posizione di archiviazione (predefinita o alternativa) per i manifest sottoposti a rendering in Cloud Storage
Timeout di Cloud Build per le operazioni (predefinito o personalizzato)
Questo articolo descrive l'ambiente di esecuzione predefinito, gli account di servizio e spazio di archiviazione per Cloud Deploy, nonché perché e come puoi modificarle i valori predefiniti.
Predefiniti
Di seguito sono riportate le impostazioni predefinite utilizzate da Cloud Deploy per l'esecuzione, eseguire il rendering e il deployment e archiviare asset come i manifest sottoposti a rendering:
Pool di worker predefinito
Per impostazione predefinita, Cloud Deploy viene eseguito nell'ambiente Cloud Build predefinito pool di worker. 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 documentazione di Cloud Build Panoramica di pool predefiniti e pool privati.
Service account di esecuzione predefinito
Per impostazione predefinita, Cloud Deploy utilizza l'account di servizio predefinito di Compute Engine.
Località di archiviazione Cloud Deploy predefinita
Questo valore è il bucket Cloud Storage in cui Cloud Deploy archivia i manifest sottoposti a rendering. Per impostazione predefinita, Cloud Deploy crea in un bucket Cloud Storage, nella stessa regione come risorse Cloud Deploy, assumendo il seguente formato:
<location>.deploy-artifacts.<project ID>.appspot.com
Timeout predefinito di Cloud Build
Per impostazione predefinita, Cloud Build ha un timeout di 1 ora per le operazioni per Cloud Deploy. Puoi modificare il timeout nel le specifiche dell'ambiente di esecuzione configurazione target.
Preferenze di lettura predefinite per Skaffold, gcloud CLI e kubectl
Per impostazione predefinita, i livelli di log di questi strumenti sono impostati sui rispettivi valori predefiniti. in genere
warn
o una cifra equivalente. Puoi cambiare questa opzione adebug
o equivalente.
Le sezioni che seguono descrivono le circostanze in cui cambieresti ognuno di questi valori e i link alle relative istruzioni.
Informazioni sui pool di worker di Cloud Build
L'ambiente di esecuzione di Cloud Deploy può utilizzare uno dei seguenti:
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 carichi di lavoro.
Una piscina privata
I pool di worker privati vengono pool dedicati privati che possono essere personalizzati maggiormente rispetto al worker predefinito piscina. 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 completamente gestito da Cloud Build. È possibile fare lo scale up di questi pool fare lo scale down fino a zero, senza infrastrutture da configurare, aggiornare 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 nella le seguenti circostanze:
Vuoi eseguire il deployment in un cluster Google Kubernetes Engine privato
Le operazioni di rendering, deployment, pre-deployment, post-deployment o verifica di questi cinque, da eseguire in un ambiente isolato 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 alle autorizzazioni disponibili nel servizio predefinito .
Vuoi archiviare i manifest sottoposti a rendering in una posizione diversa da quella predefinita nel bucket Cloud Storage.
Configurazione di tutte e tre le parti dell'ambiente di esecuzione (pool di worker, servizio account e archiviazione) viene eseguita in base alla destinazione, nella configurazione YAML di ogni destinazione.
Passaggio dal pool predefinito a un pool privato
Configuri i pool di worker per destinazione,
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 per le operazioni di rendering e di deployment, non devi fare qualsiasi cosa.
Di seguito è riportato un esempio di configurazione di destinazione che specifica un worker privato
pool 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 saperne di più su come configurare pool privati per le destinazioni, consulta Documentazione sulla configurazione della pipeline di distribuzione.
Passaggio dall'account di servizio predefinito all'esecuzione personalizzata
Come per il pool di worker, puoi specificare un account di servizio alternativo da utilizzare per
eseguire il rendering e/o il deployment (o entrambi) per destinazione. A tale scopo, aggiungi la riga seguente a
la configurazione target, dopo l'elemento workerPool
:
serviceAccount: "[name]@[project_name].iam.gserviceaccount.com"
L'account di servizio specificato deve includere il ruolo clouddeploy.jobRunner
, come
descritti in Account di servizio Cloud Deploy
documento.
Per saperne di più, consulta Definizioni dei target su questa configurazione.
Modifica della posizione di archiviazione
Per modificare il bucket di archiviazione da quello predefinito di Cloud Deploy, aggiungi il token
dalla riga che segue alla definizione del target
nella stanza workerPool
:
artifactStorage: "gs://[bucket_name]/[dir]"
Questa configurazione cambia la posizione in cui vengono archiviati i manifest sottoposti a rendering, ma incide 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 per Skaffold, gcloud CLI e kubectl, da
il rispettivo valore predefinito è debug
(o 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 di Controlli di servizio VPC per configurare un perimetro di servizio.
Limitazioni
Devi utilizzare un pool di worker privato di Cloud Build per il dell'ambiente di esecuzione, 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.
In qualsiasi cluster GKE in cui esegui il deployment Il perimetro dei Controlli di servizio VPC deve essere un cluster privato.
Per configurare un pool privato per un cluster privato, vedi questo tutorial.
Passaggi successivi
Scopri di più sulla configurazione di destinazione di 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.