Aggiorna i carichi di lavoro stateless

Questa pagina spiega come aggiornare i carichi di lavoro stateless esistenti in esecuzione in un cluster Kubernetes air-gap di Google Distributed Cloud (GDC). 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 al carico di lavoro.

Questa pagina è rivolta agli sviluppatori del gruppo di operatori delle applicazioni, che sono responsabili dell'aggiornamento dei carichi di lavoro delle applicazioni per la loro organizzazione. Per saperne di più, consulta la documentazione sulle audience per GDC air-gapped.

Prima di iniziare

Per eseguire comandi su un cluster Kubernetes, assicurati di disporre delle seguenti risorse:

  1. Individua il nome del cluster Kubernetes o chiedi all'amministratore della piattaforma qual è il nome del cluster.

  2. Accedi e genera il file kubeconfig per il cluster Kubernetes se non ne hai uno.

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

Per ottenere le autorizzazioni necessarie per aggiornare i carichi di lavoro stateless, chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Amministratore spazio dei nomi (namespace-admin) nello spazio dei nomi del progetto.

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 del progetto.

  • 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 della tua implementazione.

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 del progetto.

  • 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 selettori o le risorse, 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 la CLI kubectl. La cronologia di implementazione di un oggetto Deployment viene conservata nel sistema, in modo che tu possa 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 del progetto.

  • DEPLOYMENT_NAME: il nome dell'oggetto Deployment da 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 del progetto.

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

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