Questo documento descrive come eseguire il deployment delle applicazioni nei cluster Google Kubernetes Engine.
Cloud Deploy ti consente di eseguire il deployment dei carichi di lavoro basati su container in qualsiasi cluster Google Kubernetes Engine. Tutte le funzionalità di Cloud Deploy sono supportate quando esegui il deployment nei target GKE.
Prima di iniziare
Avere uno o più cluster GKE su cui eseguire il deployment.
Se non hai cluster GKE su cui eseguire il deployment, puoi crearli.
Assicurati che il tuo account di servizio di esecuzione disponga dei ruoli e delle autorizzazioni di cui ha bisogno.
In questo file skaffold.yaml
, la stanza deploy
include kubectl
, che indica che Skaffold esegue il rendering per Kubernetes (GKE) ed esegue il deployment in questo ambiente. I manifest che utilizzi per questa applicazione sono elencati qui.
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 un target nello stesso file, ma devono trovarsi in stanze kind: Target
diverse.
I target devono essere definiti nello stesso progetto e nella stessa regione della pipeline di importazione. Tuttavia, i cluster in cui viene eseguito il deployment dei target possono trovarsi in progetti e regioni diversi, purché l'account di servizio abbia accesso a questi progetti.
Nella definizione della destinazione, crea una stanza gke
che indichi il
cluster GKE:
gke:
cluster: projects/[project_name]/locations/[location]/clusters/[cluster_name]
Questo identificatore della risorsa GKE utilizza i seguenti elementi:
[
project_name
] è il nome del progetto Google Cloud in cui stai eseguendo 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 per il tuo progetto nella console Google Cloud.
Di seguito è riportato un esempio di configurazione della destinazione che rimanda 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 illustra un esempio di una semplice configurazione di Skaffold da utilizzare per 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: {}
Utilizzare 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, che vengono rendered 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 importazione 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 visualizzati.
In sintesi
Ora che hai i manifest di Kubernetes, la configurazione skaffold.yaml
e le definizioni dei target di Cloud Deploy e hai registrato i target come risorse Cloud Deploy, puoi richiamare la pipeline di distribuzione per creare una release e farla avanzare attraverso la progressione dei target definiti nella pipeline.
Esegui il deployment utilizzando un proxy
Puoi specificare un proxy per il cluster GKE di destinazione. È rivolto alle organizzazioni configurate per accedere ai propri cluster solo tramite un proxy.
A tale scopo, aggiungi una proprietà proxyUrl
alla stanza gke
nella configurazione target:
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 due opzioni:
Utilizza una rete Virtual Private Cloud
Puoi configurare un target per eseguire il deployment in un cluster GKE privato collegato 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 del target del cluster privato, imposta
internalIp
sutrue
ingke
nella configurazione del target. 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 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 per GKE e Accedere ai cluster GKE privati con i pool privati di Cloud Build.
Considerazioni su progetti e autorizzazioni
Puoi configurare un target in modo che utilizzi un pool di worker privato che può essere implementato in un cluster privato. Tuttavia, ci sono alcune cose da tenere presente 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 si trova in un progetto diverso da quello di destinazione, l'agente di servizio Cloud Deploy deve disporre di autorizzazioni sufficienti per comunicare con quel progetto.
Anche l'account di servizio di esecuzione necessita 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 quello del pool di worker privato, l'account di servizio di esecuzione richiede autorizzazioni sufficienti per comunicare con il progetto in cui si trova il cluster.
Utilizza i target GKE Enterprise e connetti il gateway
Puoi configurare un target per eseguire il deployment in un cluster GKE privato utilizzando i target Anthos e Connect Gateway.
Questo approccio non richiede l'utilizzo di un Virtual Private Cloud o di connessioni di reti private virtuali.
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 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