Questo documento descrive come eseguire il deployment delle applicazioni nei cluster di Google Kubernetes Engine.
Cloud Deploy ti consente di eseguire il deployment dei tuoi carichi di lavoro basati su container in qualsiasi cluster di Google Kubernetes Engine. Tutte le funzionalità di Cloud Deploy sono supportate quando esegui il deployment nelle destinazioni GKE.
Prima di iniziare
Hai 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 account di servizio di esecuzione disponga dei ruoli e delle autorizzazioni necessari.
In questo file skaffold.yaml
, la stanza deploy
include kubectl
, che
indica che Skaffold esegue il rendering e il deployment in Kubernetes
(GKE). I file manifest utilizzati per l'applicazione
sono elencati più in basso.
Crea la configurazione di destinazione.
Ogni destinazione può essere configurata nel file YAML della pipeline di distribuzione oppure in un file separato. Inoltre, puoi configurare più destinazioni nello stesso file, ma devono trovarsi in kind: Target
stanze diverse.
Nella definizione della destinazione, crea una stanza gke
per puntare al cluster GKE:
La sintassi per specificare un cluster GKE è la seguente:
gke:
cluster: projects/[project_name]/locations/[location]/clusters/[cluster_name]
Questo identificatore di risorsa GKE utilizza i seguenti elementi:
[
project_name
] è il nome del progetto Google Cloud in cui esegui il cluster.Il cluster in cui stai eseguendo il deployment non deve necessariamente 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 per il tuo progetto, nella console Google Cloud.
Di seguito è riportata una configurazione di destinazione di esempio, 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 Skaffold
Questa sezione fornisce e spiega un esempio di configurazione Skaffold semplice da utilizzare per il deployment in un cluster GKE.
Di seguito è riportato un file skaffold.yaml
di esempio per il deployment in un cluster GKE:
apiVersion: skaffold/v4beta7
kind: Config
metadata:
name: gke-application
manifests:
rawYaml:
- deployment.yaml
deploy:
kubectl: {}
Using Skaffold with Cloud Deploy descrive in modo più dettagliato come utilizzare Skaffold con la tua pipeline di distribuzione.
Prepara i manifest di Kubernetes
Per eseguire il deployment della tua applicazione in GKE, devi fornire a Cloud Deploy uno o più manifest Kubernetes, che vengono renderizzati e poi applicati al cluster o ai cluster di destinazione per eseguire il deployment dell'applicazione.
Se non disponi di questi manifest, creali prima di provare a eseguire il deployment utilizzando una pipeline di distribuzione di Cloud Deploy.
Puoi utilizzare Kustomize o Helm per la creazione di manifest. Puoi anche utilizzare Kustomize o Helm se i manifest sono basati su modelli e devono essere visualizzati.
Riepilogo
Ora che hai i manifest Kubernetes, la configurazione skaffold.yaml
e le definizioni delle destinazioni di Cloud Deploy e hai
registrato i target
come risorse Cloud Deploy, ora puoi
richiamare la tua pipeline di distribuzione
per creare una release e avanzare nel progresso dei target definiti
nella pipeline.
Esegui il deployment in un cluster privato
Puoi eseguire il deployment dell'applicazione in un cluster GKE privato utilizzando una delle due opzioni seguenti:
Usa 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
internalIp
sutrue
ingke
nella configurazione della destinazione. In Cloud Build, crea un pool di worker privato da utilizzare per il deployment in questo cluster privato.
Configura l'ambiente di esecuzione per l'utilizzo del pool privato.
Devi utilizzare questo pool per
RENDER
. Puoi usarla anche perDEPLOY
e perVERIFY
. Ecco un esempio che utilizzaRENDER
eDEPLOY
: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 per ulteriori informazioni.
Considerazioni su progetto e autorizzazioni
Puoi configurare una destinazione in modo da utilizzare un pool di worker privato di cui può essere eseguito il deployment in un cluster privato. Tuttavia, ci sono alcuni aspetti da considerare 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 dal tuo target, l'agente di servizio Cloud Deploy deve avere autorizzazioni sufficienti per comunicare con quel progetto.
L'account di servizio di esecuzione deve anche avere le 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 dal pool di worker privato, l'account di servizio di esecuzione richiede autorizzazioni sufficienti per comunicare con il progetto in cui si trova il cluster.
Usa destinazioni GKE Enterprise e connetti il gateway
Puoi configurare una destinazione per il deployment su un cluster GKE privato utilizzando i target Anthos e connettere il gateway.
Questo approccio non richiede l'utilizzo di un virtual private cloud o di connessioni di rete privata virtuale.
Passaggi successivi
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