Aggiorna i carichi di lavoro stateless

Questo documento spiega come aggiornare i workload stateless esistenti in esecuzione in un cluster Kubernetes Google Distributed Cloud (GDC) con air gap. Man mano che l'applicazione si evolve in base all'utilizzo delle risorse e alle ottimizzazioni della configurazione, devi aggiornare la specifica del pod sottostante nel cluster Kubernetes per riflettere le modifiche del workload.

Questo documento è rivolto agli sviluppatori del gruppo di operatori di applicazioni, responsabili dell'aggiornamento dei workload delle applicazioni per la propria organizzazione. Per saperne di più, consulta la documentazione relativa ai segmenti di pubblico per GDC con air gap.

Prima di iniziare

Per completare le attività descritte in questo documento, devi richiedere le autorizzazioni necessarie e preparare l'ambiente.

Richiedi ruoli IAM

Per ottenere le autorizzazioni necessarie per aggiornare i workload stateless, devi disporre di ruoli specifici. I ruoli necessari dipendono dal fatto che tu stia lavorando all'interno di un cluster condiviso con ambito a livello di organizzazione o di un cluster standard con ambito a livello di progetto. Per saperne di più, consulta Configurazioni dei cluster Kubernetes.

Ruoli cluster condivisi

Per creare, eliminare, modificare o visualizzare i workload in un cluster condiviso, chiedi all'amministratore del progetto IAM di concederti il ruolo Namespace Admin (namespace-admin). Questo ruolo è associato allo spazio dei nomi del progetto.

Ruoli cluster standard

Per creare, eliminare, modificare o visualizzare i workload in un cluster standard, chiedi all'amministratore IAM del progetto di concederti il ruolo Sviluppatore cluster (cluster-developer). Questo ruolo è associato allo spazio dei nomi del progetto.

prepara l'ambiente

Per eseguire comandi su un cluster Kubernetes utilizzando l'API, assicurati di disporre delle seguenti risorse:

  • Individua il nome del cluster Kubernetes o chiedi a un membro del gruppo di amministratori della piattaforma qual è il nome del cluster.

  • Accedi e genera il file kubeconfig per il cluster Kubernetes.

  • Utilizza il percorso kubeconfig del cluster Kubernetes per sostituire KUBERNETES_CLUSTER_KUBECONFIG in queste istruzioni.

Aggiorna il deployment

Per aggiornare un oggetto Deployment, esegui:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    apply -f DEPLOYMENT_FILE

Sostituisci quanto segue:

  • KUBERNETES_CLUSTER_KUBECONFIG: il file kubeconfig per il cluster che esegue il deployment.

  • NAMESPACE: lo spazio dei nomi. Per i cluster condivisi, deve essere uno spazio dei nomi del progetto. Per i cluster standard, può essere qualsiasi spazio dei nomi.

  • DEPLOYMENT_FILE: il nome del file manifest Deployment da aggiornare.

Il comando kubectl apply applica un file manifest a una risorsa. Se la risorsa specificata non esiste, viene creata dal comando.

Esistono anche diversi altri modi per aggiornare le risorse all'interno del deployment.

Aggiorna un'immagine container

Per modificare l'immagine di un oggetto Deployment, esegui:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    set image deployment DEPLOYMENT_NAME \
    IMAGE=IMAGE:TAG

Sostituisci quanto segue:

  • KUBERNETES_CLUSTER_KUBECONFIG: il file kubeconfig per il cluster che esegue il deployment.

  • NAMESPACE: lo spazio dei nomi. Per i cluster condivisi, deve essere uno spazio dei nomi del progetto. Per i cluster standard, può essere qualsiasi spazio dei nomi.

  • DEPLOYMENT_NAME: il nome dell'oggetto Deployment contenente l'immagine.

  • IMAGE: il nome dell'immagine container.

  • TAG: il tag da aggiornare per l'immagine container.

L'aggiornamento dell'immagine di un deployment è utile per modificare i campi o le risorse del selettore, ad esempio richieste o limiti.

Ad esempio, per aggiornare un oggetto Deployment denominato nginx in modo che utilizzi la versione 1.9.1, esegui:

kubectl --kubeconfig /tmp/kubeconfig.yaml -n my-namespace \
    set image deployment nginx nginx=nginx:1.9.1

Esegui il rollback di un aggiornamento

Se vuoi eseguire il rollback di un aggiornamento, ad esempio quando il deployment diventa instabile, utilizza l'interfaccia a riga di comando kubectl. La cronologia di implementazione di un oggetto Deployment viene conservata nel sistema in modo da poter eseguire il rollback in qualsiasi momento.

Per eseguire il rollback di un aggiornamento in corso o completato alla revisione precedente, esegui:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    rollout undo deployment DEPLOYMENT_NAME

Sostituisci quanto segue:

  • KUBERNETES_CLUSTER_KUBECONFIG: il file kubeconfig per il cluster che esegue il deployment.

  • NAMESPACE: lo spazio dei nomi. Per i cluster condivisi, deve essere uno spazio dei nomi del progetto. Per i cluster standard, può essere qualsiasi spazio dei nomi.

  • DEPLOYMENT_NAME: il nome dell'oggetto Deployment di cui eseguire il rollback.

Per eseguire il rollback a una revisione specifica, esegui:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    rollout undo deployment DEPLOYMENT_NAME \
    --to-revision=REVISION_NUMBER

Sostituisci quanto segue:

  • KUBERNETES_CLUSTER_KUBECONFIG: il file kubeconfig per il cluster che esegue il deployment.

  • NAMESPACE: lo spazio dei nomi. Per i cluster condivisi, deve essere uno spazio dei nomi del progetto. Per i cluster standard, può essere qualsiasi spazio dei nomi.

  • DEPLOYMENT_NAME: il nome dell'oggetto Deployment di cui eseguire il rollback.

  • REVISION_NUMBER: il numero intero che definisce la revisione a cui eseguire il rollback, ad esempio 3.

Passaggi successivi