Esegui il deployment in un cluster Google Kubernetes Engine

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 le destinazioni GKE.

Prima di iniziare

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 file manifest che utilizzi per questa applicazione elencati di seguito.

Crea la tua configurazione target

Ogni destinazione può essere configurata nella pipeline di distribuzione YAML oppure può essere in file separato. Inoltre, puoi configurare più di un target nello stesso file, ma devono trovarsi in stanze kind: Target diverse.

Nella definizione della destinazione, crea una stanza gke che indichi il 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 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 nella console Google Cloud.

    elenco dei cluster nella console Google Cloud

Di seguito è riportato un esempio di configurazione di destinazione, che punta a un cluster GKE cluster:

      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 configurazione Skaffold semplice da utilizzare durante il deployment in un cluster GKE.

Di seguito è riportato un esempio di file skaffold.yaml per il deployment in una 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 eseguiti 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 usare Kustomize o Helm se le tue sono basati su modelli e devono essere sottoposti a rendering.

Riepilogo

Ora che hai i manifest Kubernetes, la configurazione di skaffold.yaml, e le definizioni della destinazione di Cloud Deploy, hanno registrato i tuoi target come risorse di Cloud Deploy, ora puoi richiamare la pipeline di distribuzione per creare una release e farla avanzare lungo i target definiti nella pipeline.

Esegui il deployment utilizzando un proxy

Puoi specificare un proxy per il cluster GKE di destinazione. Questo articolo è 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 della tua 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:

  1. Crea il tuo cluster privato

    Un cluster privato è un cluster nativo della 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 su true in gke nella configurazione del target.

  2. In Cloud Build, crea un pool di worker privato che puoi utilizzare per il deployment in questo cluster privato.

  3. Configura l'ambiente di esecuzione in modo che utilizzi il pool privato.

    Devi utilizzare questo pool per RENDER. Puoi utilizzarlo anche per DEPLOY e per VERIFY. Ecco un esempio che utilizza RENDER e DEPLOY:

    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 una destinazione in modo che utilizzi un pool di worker privato di cui è possibile eseguire il deployment 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 il pool di worker privato, 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 una destinazione per il deployment cluster GKE privato utilizzando i target Anthos e connetti il gateway.

Questo approccio non richiede l'utilizzo di un Virtual Private Cloud o di connessioni di reti private virtuali.

Passaggi successivi