Upgrade automatico dei nodi


Questa pagina mostra come configurare gli upgrade automatici dei nodi in Google Kubernetes Engine (GKE).

Panoramica

Gli upgrade automatici dei nodi ti aiutano a mantenere aggiornati i nodi del tuo cluster con la versione del piano di controllo del cluster quando il piano di controllo viene aggiornato per tuo conto. Quando crei un nuovo cluster o pool di nodi con la console Google Cloud o con il comando gcloud, l'upgrade automatico dei nodi è abilitato per impostazione predefinita.

Scopri di più sugli upgrade di cluster e nodi.

Gli upgrade automatici dei nodi offrono diversi vantaggi:

  • Overhead associato alla gestione ridotto: non è necessario monitorare e aggiornare manualmente i nodi quando l'upgrade del piano di controllo viene eseguito per tuo conto.
  • Maggiore sicurezza: a volte vengono rilasciati nuovi programmi binari per risolvere un problema di sicurezza. Con gli upgrade automatici, GKE garantisce automaticamente che gli aggiornamenti della sicurezza vengano applicati e mantenuti.
  • Facilità d'uso:offre un modo semplice per mantenere i nodi aggiornati con le ultime funzionalità di Kubernetes.

Per i node pool con gli upgrade automatici abilitati sono pianificati upgrade quando soddisfano i criteri di selezione (annunciati nelle note di rilascio). Le implementazioni vengono eseguite in più settimane per garantire la stabilità del cluster e del parco risorse. Quando viene eseguito l'upgrade, i nodi vengono svuotati e ricreati in modo da corrispondere alla versione corrente del piano di controllo. Le modifiche al disco di avvio di una VM del nodo non vengono mantenute nelle ricreazioni di nodi. Per mantenere le modifiche durante la ricreazione di nodi, utilizza un DaemonSet.

L'upgrade automatico dei nodi non è disponibile per i cluster alpha. Se utilizzi un cluster con pool di nodi Windows Server, consulta Eseguire l'upgrade dei pool di nodi Windows Server prima di attivare l'upgrade automatico dei nodi.

Controlla lo stato dell'upgrade automatico per un pool di nodi esistente

Puoi controllare se l'upgrade automatico è abilitato o disabilitato per un node pool utilizzando la console Google Cloud o il comando gcloud.

gcloud

Per controllare lo stato dell'upgrade automatico per un pool di nodi, esegui il comando seguente:

gcloud container node-pools describe NODE_POOL_NAME \
  --cluster CLUSTER_NAME \
  --zone COMPUTE_ZONE

Sostituisci quanto segue:

  • NODE_POOL_NAME: il nome del pool di nodi.
  • CLUSTER_NAME: il nome del cluster che contiene il pool di nodi.
  • COMPUTE_ZONE: la zona di calcolo per il cluster.

Console

Per controllare lo stato dell'upgrade automatico per un pool di nodi:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster che vuoi visualizzare.

  3. Fai clic sulla scheda Nodi.

  4. In Pool di nodi, fai clic sul nome del pool di nodi che vuoi visualizzare.

  5. Nella pagina Dettagli del pool di nodi, in Gestione, visualizza il valore del campo Upgrade automatico.

Abilita gli upgrade automatici dei nodi per un pool di nodi esistente

Quando crei un nuovo cluster con la console Google Cloud o con il comando gcloud, l'upgrade automatico dei nodi è abilitato per impostazione predefinita.

Puoi attivare l'upgrade automatico dei nodi se al momento è disattivato.

gcloud

Per abilitare gli upgrade automatici per un pool di nodi esistente, esegui il seguente comando:

gcloud container node-pools update NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --zone COMPUTE_ZONE \
    --enable-autoupgrade

Sostituisci quanto segue:

  • NODE_POOL_NAME: il nome del pool di nodi.
  • CLUSTER_NAME: il nome del cluster che contiene il pool di nodi.
  • COMPUTE_ZONE: la zona di calcolo per il cluster.

Console

Per abilitare gli upgrade automatici per un pool di nodi esistente, svolgi i seguenti passaggi:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.

  3. Fai clic sulla scheda Nodi.

  4. In Pool di nodi, fai clic sul nome del pool di nodi che vuoi modificare.

  5. Nella pagina Dettagli del pool di nodi, fai clic su Modifica.

  6. In Gestione, seleziona la casella di controllo Abilita upgrade automatico.

  7. Fai clic su Salva.

Per un maggiore controllo sul momento in cui è possibile eseguire l'upgrade automatico dei nodi, ti consigliamo di configurare periodi di manutenzione ed esclusioni.

Controllare lo stato degli upgrade dei nodi

Puoi controllare lo stato di un upgrade utilizzando gcloud container operations.

Visualizza un elenco di tutte le operazioni in esecuzione e completate nel cluster:

gcloud container operations list

A ogni operazione viene assegnato un ID operazione e un tipo di operazione, nonché ora di inizio e di fine, cluster di destinazione e stato. L'elenco sarà simile all'esempio seguente:

NAME                              TYPE                ZONE           TARGET              STATUS_MESSAGE  STATUS  START_TIME                      END_TIME
operation-1505407677851-8039e369  CREATE_CLUSTER      us-west1-a     my-cluster                          DONE    20xx-xx-xxT16:47:57.851933021Z  20xx-xx-xxT16:50:52.898305883Z
operation-1505500805136-e7c64af4  UPGRADE_CLUSTER     us-west1-a     my-cluster                          DONE    20xx-xx-xxT18:40:05.136739989Z  20xx-xx-xxT18:41:09.321483832Z
operation-1505500913918-5802c989  DELETE_CLUSTER      us-west1-a     my-cluster                          DONE    20xx-xx-xxT18:41:53.918825764Z  20xx-xx-xxT18:43:48.639506814Z

Per visualizzare ulteriori informazioni su un'operazione specifica, specifica l'ID operazione come mostrato nel seguente comando:

gcloud container operations describe OPERATION_ID

Ad esempio:

gcloud container operations describe operation-1507325726639-981f0ed6
endTime: '20xx-xx-xxT21:40:05.324124385Z'
name: operation-1507325726639-981f0ed6
operationType: UPGRADE_CLUSTER
selfLink: https://container.googleapis.com/v1/projects/.../kubernetes-engine/docs/zones/us-central1-a/operations/operation-1507325726639-981f0ed6
startTime: '20xx-xx-xxT21:35:26.639453776Z'
status: DONE
targetLink: https://container.googleapis.com/v1/projects/.../kubernetes-engine/docs/zones/us-central1-a/clusters/...
zone: us-central1-a

Controllare le impostazioni di upgrade dei node pool

Puoi visualizzare i dettagli sulla strategia di upgrade dei nodi utilizzata per i tuoi node pool utilizzando il comando gcloud container node-pools describe. Per gli upgrade blu/verdi, il comando restituisce anche la fase corrente dell'upgrade.

Esegui questo comando:

gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAME

Sostituisci quanto segue:

  • NODE_POOL_NAME: il nome del pool di nodi da descrivere.
  • CLUSTER_NAME: il nome del cluster del pool di nodi da descrivere.

Questo comando mostrerà le impostazioni di upgrade correnti. L'esempio seguente mostra l'output se utilizzi la strategia di upgrade blu/verde.

upgradeSettings:
  blueGreenSettings:
    nodePoolSoakDuration: 1800s
    standardRolloutPolicy:
      batchNodeCount: 1
      batchSoakDuration: 10s
  strategy: BLUE_GREEN

Se utilizzi la strategia di upgrade blu/verde, l'output include anche dettagli sulle impostazioni dell'upgrade blu/verde e sulla relativa fase intermedia corrente. L'esempio seguente mostra un esempio di come potrebbe essere:

updateInfo:
  blueGreenInfo:
    blueInstanceGroupUrls:
    - https://www.googleapis.com/compute/v1/projects/{PROJECT_ID}/zones/{LOCATION}/instanceGroupManagers/{BLUE_INSTANCE_GROUP_NAME}
    bluePoolDeletionStartTime: {BLUE_POOL_DELETION_TIME}
    greenInstanceGroupUrls:
    - https://www.googleapis.com/compute/v1/projects/{PROJECT_ID}/zones/{LOCATION}/instanceGroupManagers/{GREEN_INSTANCE_GROUP_NAME} 
    greenPoolVersion: {GREEN_POOL_VERSION}
    phase: DRAINING_BLUE_POOL

Disattivare gli upgrade automatici dei nodi

Sebbene non sia consigliabile, puoi disattivare l'upgrade automatico dei nodi per un pool di nodi esistente se il cluster sottostante non è registrato in un canale di rilascio.

Considerazioni da fare prima di disattivare gli upgrade automatici dei nodi

Se disattivi gli upgrade automatici dei nodi per un pool di nodi, GKE non aggiorna la versione dei nodi. La disattivazione degli upgrade automatici dei nodi non impedisce a GKE di eseguire l'upgrade del piano di controllo del cluster.

La disattivazione impedisce gli aggiornamenti della versione, ma non tutte le attività di manutenzione

La disattivazione degli upgrade automatici dei nodi impedisce solo a GKE di aggiornare la versione dei nodi, ma non impedisce a GKE di avviare altre attività di manutenzione. Ad esempio, anche con gli upgrade automatici dei nodi disattivati, se attivi la rotazione degli indirizzi IP, l'abilitazione dei criteri di rete o la migrazione del PSC su un cluster, tutti i nodi vengono ricreati nella stessa versione del control plane, indipendentemente dalla versione selezionata per il pool di nodi. Per controllare la tempistica della manutenzione, utilizza Periodi di manutenzione ed esclusioni.

La disattivazione comporta la responsabilità della compatibilità dei nodi del piano di controllo

Se disattivi l'upgrade automatico dei nodi per un pool di nodi, è tua responsabilità assicurarti che i nodi del cluster eseguano una versione compatibile con la versione del piano di controllo del cluster, nel rispetto delle norme relative al disallineamento delle versioni GKE. La disattivazione degli upgrade automatici dei nodi impedisce l'upgrade dei pool di nodi solo fino alla fine del supporto standard. GKE esegue l'upgrade dei nodi che eseguono una versione non supportata dopo che la versione ha raggiunto il termine del supporto per garantire l'integrità del cluster.

Per informazioni dettagliate sulle tempistiche del ritiro del supporto, consulta la programmazione stimata per i canali di rilascio. Per i nodi che eseguono versioni non supportate, l'upgrade potrebbe non essere eseguito immediatamente al termine del supporto della versione e le tempistiche effettive possono variare a discrezione di Google.

La disattivazione non interrompe le operazioni in corso

La disattivazione degli upgrade automatici dei nodi non interrompe o annulla gli upgrade in corso dei nodi nei pool di nodi. Per annullare o interrompere gli upgrade in corso, segui la procedura descritta in Annullamento di un upgrade del nodo. L'annullamento di un upgrade dei nodi può essere utile in situazioni in cui i carichi di lavoro non vanno a buon fine sui nodi di cui è stato eseguito l'upgrade e vuoi evitare ulteriori interruzioni.

Se l'upgrade è stato completato per l'intero pool di nodi, non è possibile annullarlo o eseguire il rollback. Per eseguire il downgrade del pool di nodi, consulta Eseguire il downgrade dei pool di nodi.

Disattivare gli upgrade automatici dei nodi per un pool di nodi esistente

gcloud

Per disattivare gli upgrade automatici per un pool di nodi esistente, esegui il seguente comando:

gcloud container node-pools update NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --zone COMPUTE_ZONE \
    --no-enable-autoupgrade

Console

Per disattivare gli upgrade automatici per un pool di nodi esistente, svolgi i seguenti passaggi:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.

  3. Fai clic sulla scheda Nodi.

  4. In Pool di nodi, fai clic sul nome del pool di nodi che vuoi modificare.

  5. Nella pagina Dettagli del pool di nodi, fai clic su Modifica.

  6. In Gestione, deseleziona la casella di controllo Abilita upgrade automatico.

  7. Fai clic su Salva per modificare il cluster.

Creare un cluster o un pool di nodi con gli upgrade automatici dei nodi abilitati

gcloud

Per creare un cluster con gli upgrade automatici abilitati per il pool di nodi predefinito, specifica il flag --enable-autoupgrade nel comando gcloud container clusters create:

gcloud container clusters create CLUSTER_NAME \
    --zone COMPUTE_ZONE \
    --enable-autoupgrade

Per creare un pool di nodi con l'upgrade automatico abilitato, specifica il --enable-autoupgrade flag nel comando gcloud container node-pools create:

gcloud container node-pools create NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --zone COMPUTE_ZONE \
    --enable-autoupgrade

Console

Per i cluster e i pool di nodi creati con la console Google Cloud, gli upgrade automatici sono abilitati per impostazione predefinita. Consulta Creare un cluster o Aggiungere e gestire i pool di nodi per istruzioni su come creare cluster e pool di nodi.

Puoi disattivare gli upgrade automatici per i nuovi pool di nodi. Nella pagina di creazione del cluster, fai clic sul nome del pool di nodi da modificare, quindi deseleziona Attiva l'upgrade automatico.

Ricevere notifiche di upgrade

GKE pubblica notifiche di upgrade su Pub/Sub, fornendoti un canale per ricevere informazioni da GKE sui tuoi cluster.

Per ulteriori informazioni, consulta Ricezione di notifiche di upgrade dei cluster.

Modificare i parametri di upgrade di sovraccarico

Per scoprire di più sulla modifica dei parametri di upgrade di sovraccarico, consulta Configurare gli upgrade di sovraccarico.

Esercitare il controllo durante un upgrade del pool di nodi

Durante gli upgrade automatici e quelli dei pool di nodi avviati manualmente, puoi eseguire le seguenti azioni.

Annullare l'upgrade di un pool di nodi

Puoi annullare un upgrade in qualsiasi momento. Per scoprire di più su cosa succede quando annulli un upgrade di sovraccarico, consulta Annullare un upgrade di sovraccarico. Per scoprire di più su cosa succede quando annulli un upgrade blu/verde, consulta Annullare un upgrade blu/verde.

  1. Recupera l'ID operazione dell'upgrade:

    gcloud container operations list
    
  2. Annullare l'upgrade:

    gcloud container operations cancel OPERATION_ID
    

Consulta la documentazione di gcloud container operations cancel.

Riprendi un upgrade del node pool

Puoi riprendere un upgrade avviandolo manualmente nuovamente, specificando la versione di destinazione dell'upgrade originale.

Ad esempio, se un upgrade non è riuscito o se hai messo in pausa un upgrade in corso, puoi riprendere l'upgrade annullato avviando di nuovo lo stesso upgrade nel pool di nodi, specificando la versione di destinazione dell'operazione di upgrade iniziale.

Per scoprire di più su cosa succede quando riprendi un upgrade, consulta Riprendere un upgrade di incremento e Upgrade blu/verde.

Per riprendere un upgrade, utilizza il seguente comando:

    gcloud container clusters upgrade CLUSTER_NAME \
      --node-pool=NODE_POOL_NAME \
      --cluster-version VERSION

Sostituisci quanto segue:

  • NODE_POOL_NAME: il nome del pool di nodi per cui vuoi riprendere l'upgrade.
  • CLUSTER_NAME: il nome del cluster del pool di nodi per cui vuoi riprendere l'upgrade.
  • VERSION: la versione di destinazione dell'upgrade del node pool annullato.

Per saperne di più, consulta la documentazione di gcloud container clusters upgrade.

Esegui il rollback di un upgrade del pool di nodi

Puoi eseguire il rollback di un pool di nodi per eseguire il downgrade dei nodi di cui è stato eseguito l'upgrade allo stato originale precedente all'inizio dell'upgrade del pool di nodi.

Utilizza il comando rollback se un upgrade in corso è stato annullato, se l'upgrade non è riuscito o se è incompleto a causa del timeout di una finestra di manutenzione. In alternativa, se vuoi specificare la versione, segui le istruzioni per il downgrade del pool di nodi.

Per scoprire di più su cosa succede quando esegui il rollback di un upgrade del pool di nodi, consulta Eseguire il rollback di un upgrade di incremento o Eseguire il rollback di un upgrade blu/verde.

Per eseguire il rollback di un upgrade, esegui il seguente comando:

gcloud container node-pools rollback NODE_POOL_NAME \
  --cluster CLUSTER_NAME

Sostituisci quanto segue:

  • NODE_POOL_NAME: il nome del pool di nodi per cui eseguire il rollback dell'upgrade del pool di nodi.
  • CLUSTER_NAME: il nome del cluster del pool di nodi per cui eseguire il rollback dell'upgrade.

Consulta la documentazione di gcloud container node-pools rollback.

Completare un upgrade del node pool

Se utilizzi la strategia di upgrade blu/verde, puoi completare un upgrade del pool di nodi durante la fase di assorbimento, omettendo il resto del tempo di assorbimento.

Per scoprire come funziona il completamento di un upgrade del node pool, consulta Completare un upgrade del node pool.

Per completare un upgrade quando utilizzi la strategia di upgrade blue-green, esegui il seguente comando:

gcloud container node-pools complete-upgrade NODE_POOL_NAME \
  --cluster CLUSTER_NAME

Sostituisci quanto segue:

  • NODE_POOL_NAME: il nome del pool di nodi per cui vuoi completare l'upgrade.
  • CLUSTER_NAME: il nome del cluster del pool di nodi per cui vuoi completare l'upgrade.

Consulta la documentazione di gcloud container node-pools complete-upgrade.

Passaggi successivi