Questo documento descrive come eseguire il deployment delle applicazioni nei cluster Google Kubernetes Engine.
Cloud Deploy ti consente di eseguire il deployment dei workload basati su container in qualsiasi cluster Google Kubernetes Engine. Tutte le funzionalità di Cloud Deploy sono supportate quando esegui il deployment nelle destinazioni GKE.
Prima di iniziare
Avere uno o più cluster GKE in cui eseguire il deployment.
Se non hai cluster GKE in cui eseguire il deployment, puoi crearli.
Assicurati che il tuo service account di esecuzione disponga dei ruoli e delle autorizzazioni necessari.
In questo file skaffold.yaml, la sezione deploy include kubectl, che indica che Skaffold esegue il rendering e il deployment in Kubernetes (GKE). I manifest che utilizzi per questa applicazione sono elencati di seguito.
Crea la configurazione della destinazione
Ogni destinazione può essere configurata nel file YAML della pipeline di distribuzione o in un file separato. Inoltre, puoi configurare più di una destinazione nello stesso file, ma devono trovarsi in sezioni kind: Target diverse.
Le destinazioni devono essere definite nello stesso progetto e nella stessa regione della pipeline di distribuzione. Tuttavia, i cluster in cui le destinazioni eseguono il deployment possono trovarsi in progetti e regioni diversi, a condizione che il account di servizio abbia accesso a questi progetti.
Nella definizione della destinazione, crea una sezione gke per puntare al cluster GKE:
gke:
cluster: projects/[project_name]/locations/[location]/clusters/[cluster_name]
Questo identificatore di risorse GKE utilizza i seguenti elementi:
[
project_name] è il nome del Google Cloud progetto in cui esegui questo cluster.Il cluster in cui esegui il deployment non deve trovarsi nello stesso progetto della pipeline di distribuzione.
[
location] è la regione in cui è stato creato il cluster.[
cluster_name] è il nome assegnato al cluster al momento della creazione.Puoi trovare questo nome nell'elenco dei cluster del tuo progetto, nella Google Cloud console.

Di seguito è riportato un esempio di configurazione della destinazione, che punta a un cluster GKE:
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
name: dev
description: development cluster
gke:
cluster: projects/my-app/locations/us-central1/clusters/my-app-dev-cluster
Crea la configurazione di Skaffold
Questa sezione fornisce e spiega un esempio di una semplice configurazione di Skaffold da utilizzare durante il deployment in un cluster GKE.
Di seguito è riportato un esempio di file skaffold.yaml per il deployment in un cluster GKE:
apiVersion: skaffold/v4beta7
kind: Config
metadata:
name: gke-application
manifests:
rawYaml:
- deployment.yaml
deploy:
kubectl: {}
L'articolo Utilizzo di Skaffold con Cloud Deploy descrive in modo più dettagliato come utilizzare Skaffold con la pipeline di distribuzione.
Prepara i manifest Kubernetes
Per eseguire il deployment dell'applicazione in GKE, fornisci a Cloud Deploy uno o più manifest Kubernetes, di cui viene eseguito il rendering e che vengono poi applicati al cluster o ai cluster di destinazione per eseguire il deployment dell'applicazione.
Se non hai questi manifest, creali prima di provare a eseguire il deployment utilizzando una pipeline di distribuzione di Cloud Deploy.
Puoi utilizzare Kustomize o Helm per creare i manifest. Puoi anche utilizzare Kustomize o Helm se i manifest sono basati su modelli e devono essere sottoposti a rendering.
In sintesi
Ora che hai i manifest Kubernetes, la configurazione skaffold.yaml,
e le definizioni delle destinazioni di Cloud Deploy e hai
registrato le destinazioni
come risorse di Cloud Deploy, puoi ora
richiamare la pipeline di distribuzione
per creare una release e farla avanzare nella progressione delle destinazioni definite
nella pipeline.
Esegui il deployment utilizzando un proxy
Puoi specificare un proxy per il cluster GKE di destinazione. Questo vale per le organizzazioni configurate per accedere ai cluster solo tramite un proxy HTTP.
Per farlo, aggiungi una proprietà proxyUrl alla sezione gke nella configurazione della destinazione:
gke:
cluster: projects/my-app/locations/us-central1/clusters/my-app-dev-cluster
proxyUrl: [URL]
Dove URL è l'URL del proxy.
Esegui il deployment in un cluster privato
Puoi eseguire il deployment dell'applicazione in un cluster GKE privato utilizzando una delle tre opzioni seguenti:
Utilizza un endpoint DNS
Questo è il modo più semplice per connetterti a un cluster privato.
Imposta
dnsEndpointsutrueingkenella configurazione della destinazione.Se il cluster non ha un endpoint basato su IP configurato, puoi saltare questo passaggio. Cloud Deploy si connetterà all'endpoint DNS per impostazione predefinita, poiché è l'unico endpoint del piano di controllo.
Utilizza una rete Virtual Private Cloud
Puoi configurare una destinazione per eseguire il deployment in un cluster GKE privato connesso a una rete Virtual Private Cloud:
-
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
internalIpsutrueingkenella configurazione della destinazione. In Cloud Build, crea un pool di worker privato che puoi utilizzare per eseguire il deployment in questo cluster privato.
Configura l'ambiente di esecuzione in modo che utilizzi il pool privato.
Devi utilizzare questo pool per
RENDER. Puoi utilizzarlo anche perDEPLOYeVERIFY. Ecco un esempio che utilizzaRENDEReDEPLOY:executionConfigs: - usages: - RENDER - DEPLOY workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
Per ulteriori informazioni, consulta Accedere ai cluster GKE privati dai pool privati di Cloud Build utilizzando Identity Service for GKE e Accedere ai cluster GKE privati con i pool privati di Cloud Build.
Considerazioni su progetti e autorizzazioni
Puoi configurare una destinazione in modo che utilizzi un pool di worker privato in grado di eseguire il deployment in un cluster privato. Tuttavia, devi tenere presente alcune cose se le risorse si trovano in progetti diversi.
- Quando 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 che si trova in un progetto diverso dalla destinazione, il service agent Cloud Deploy deve disporre di autorizzazioni sufficienti per comunicare con quel progetto.
Il service account di esecuzione deve disporre anche delle autorizzazioni per accedere al bucket Cloud Storage.
- Quando il pool di worker e il cluster si trovano in progetti separati
Se il cluster GKE privato si trova in un progetto diverso da il pool di worker privato, il service account di esecuzione richiede autorizzazioni sufficienti per comunicare con il progetto in cui si trova il cluster.
Utilizza le destinazioni dei cluster collegati a GKE e il gateway di connessione
Puoi configurare una destinazione per eseguire il deployment in un cluster GKE privato con destinazioni che utilizzano i cluster collegati a GKE e il gateway di connessione.
Questo approccio non richiede l'utilizzo di connessioni Virtual Private Cloud o VPN.
Passaggi successivi
Prova la guida rapida: esegui il deployment di un'applicazione in GKE
Richiama la pipeline di distribuzione per creare una release
Scopri di più sulla configurazione delle destinazioni di Cloud Deploy
Scopri di più sull'utilizzo di Skaffold con Cloud Deploy
Scopri di più sugli ambienti di esecuzione di Cloud Deploy .
Scopri di più su GKE