Questa pagina mostra come configurare gli upgrade automatici dei nodi in Google Kubernetes Engine (GKE).
Panoramica
Gli upgrade automatici dei nodi ti consentono di mantenere aggiornati i nodi nel tuo cluster con la versione del piano di controllo del cluster quando quest'ultimo viene aggiornato per tuo conto.
Quando crei un nuovo cluster o pool di nodi con la console Google Cloud o il comando gcloud
, l'upgrade automatico dei nodi viene abilitato per impostazione predefinita.
Scopri di più sugli upgrade di cluster e nodi.
Gli upgrade automatici dei nodi offrono diversi vantaggi:
- Minore overhead di gestione: non devi monitorare e aggiornare manualmente i nodi quando viene eseguito l'upgrade del piano di controllo per tuo conto.
- Maggiore sicurezza: a volte vengono rilasciati nuovi programmi binari per risolvere un problema di sicurezza. Con gli upgrade automatici, GKE fa in modo automatico che gli aggiornamenti della sicurezza vengano applicati e aggiornati.
- Facilità d'uso: offre un modo semplice per mantenere i nodi aggiornati con le ultime funzionalità di Kubernetes.
I pool di nodi con upgrade automatici abilitati vengono pianificati per gli upgrade quando soddisfano i criteri di selezione (annunciati nelle note di rilascio). Le implementazioni vengono distribuite in più settimane per garantire la stabilità di cluster e parco risorse. Quando viene eseguito l'upgrade, i nodi vengono svuotati e creati nuovamente in modo da corrispondere alla versione attuale del piano di controllo. Le modifiche al disco di avvio di una VM nodo non vengono mantenute durante le nuove creazioni dei nodi. Per mantenere le modifiche durante la ricreazione dei 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 Upgrade dei pool di nodi di Windows Server prima di abilitare l'upgrade automatico dei nodi.
Controlla lo stato dell'upgrade automatico per un pool di nodi esistente
Puoi verificare se l'upgrade automatico è abilitato o disabilitato per un pool di nodi utilizzando la console Google Cloud o il comando gcloud
.
gcloud
Per controllare lo stato dell'upgrade automatico per un pool di nodi, esegui questo comando:
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 computing per il cluster.
Console
Per controllare lo stato dell'upgrade automatico per un pool di nodi, segui questi passaggi:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Nell'elenco dei cluster, fai clic sul nome del cluster che vuoi visualizzare.
Fai clic sulla scheda Nodi.
In Pool di nodi, fai clic sul nome del pool di nodi che vuoi visualizzare.
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 il comando gcloud
, l'upgrade automatico dei nodi viene abilitato per impostazione predefinita.
Puoi abilitare l'upgrade automatico del nodo se al momento è disabilitato.
gcloud
Per abilitare gli upgrade automatici per un pool di nodi esistente, esegui questo 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 computing per il cluster.
Console
Per abilitare gli upgrade automatici per un pool di nodi esistente, segui questi passaggi:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
Fai clic sulla scheda Nodi.
In Pool di nodi, fai clic sul nome del pool di nodi che vuoi modificare.
Nella pagina Dettagli del pool di nodi, fai clic su edit Modifica.
In Gestione, seleziona la casella di controllo Abilita upgrade automatico.
Fai clic su Salva.
Per un maggiore controllo su quando è possibile eseguire l'upgrade automatico dei nodi, valuta la possibilità di configurare periodi di manutenzione ed esclusioni.
Controlla 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 vengono assegnati un ID operazione, un tipo di operazione, l'ora di inizio e di fine, il cluster di destinazione e lo stato. L'elenco è simile al seguente esempio:
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 ottenere 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
Controlla le impostazioni di upgrade del pool di nodi
Puoi visualizzare i dettagli sulla strategia di upgrade dei nodi utilizzata per i pool di nodi utilizzando il comando gcloud container node-pools
describe
. Per gli upgrade blu/verde, il comando restituisce anche la fase attuale 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 restituirà le impostazioni di upgrade attuali. 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 i dettagli sulle impostazioni di upgrade blu/verde e sulla sua fase intermedia attuale. L'esempio seguente mostra il possibile aspetto:
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
Disabilita gli upgrade automatici dei nodi
Sebbene non sia consigliabile, puoi disabilitare 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 disabilitare gli upgrade automatici dei nodi
Se disabiliti 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 disabilitazione impedisce gli aggiornamenti della versione, ma non tutte le attività di manutenzione
La disabilitazione 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 disabilitati, l'attivazione della rotazione degli indirizzi IP, l'abilitazione del criterio di rete o la migrazione PSC in un cluster ricreano tutti i nodi nella stessa versione del piano di controllo, indipendentemente dalla versione selezionata per il pool di nodi. Per controllare le tempistiche della manutenzione, utilizza Finestre di manutenzione ed esclusioni.
La disabilitazione indica la responsabilità della compatibilità dei nodi del piano di controllo
Se disabiliti l'upgrade automatico dei nodi, hai la responsabilità di assicurarti che i nodi del cluster eseguano una versione compatibile con la versione del cluster e che la versione rispetti i criteri di supporto per il disallineamento delle versioni e delle versioni di Kubernetes. A partire dalla versione 1.19 di GKE, GKE esegue l'upgrade dei nodi che eseguono una versione non supportata dopo che la versione ha raggiunto la fine del ciclo di vita per garantire l'integrità del cluster e l'allineamento con il criterio di disallineamento delle versioni open source. L'upgrade dei nodi che eseguono versioni non supportate potrebbe non essere eseguito immediatamente al fine del ciclo di vita della versione; inoltre, le tempistiche effettive possono variare a discrezione di Google.
La disabilitazione non interrompe le operazioni in corso
La disabilitazione degli upgrade automatici dei nodi non arresta o annulla eventuali upgrade in corso ai nodi nei pool di nodi. Per annullare o interrompere gli upgrade in corso, vedi Annullare l'upgrade di un nodo. L'annullamento dell'upgrade di un nodo può essere utile nelle situazioni in cui riscontri che 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 è completamente completato per l'intero pool di nodi, non è possibile eseguirne il rollback o annullarlo. Per eseguire il downgrade del pool di nodi, consulta Eseguire il downgrade dei pool di nodi.
Disabilita gli upgrade automatici dei nodi per un pool di nodi esistente
gcloud
Per disabilitare gli upgrade automatici per un pool di nodi esistente, esegui questo comando:
gcloud container node-pools update NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--zone COMPUTE_ZONE \
--no-enable-autoupgrade
Console
Per disabilitare gli upgrade automatici per un pool di nodi esistente, segui questi passaggi:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
Fai clic sulla scheda Nodi.
In Pool di nodi, fai clic sul nome del pool di nodi che vuoi modificare.
Nella pagina Dettagli del pool di nodi, fai clic su edit Modifica.
In Gestione, deseleziona la casella di controllo Abilita l'upgrade automatico.
Fai clic su Salva per modificare il cluster.
Crea un cluster o un pool di nodi con upgrade automatici dei nodi abilitati
gcloud
Per creare un cluster con 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 upgrade automatico abilitato, specifica il flag --enable-autoupgrade
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. Per le istruzioni sulla creazione di cluster e pool di nodi, consulta Creazione di un cluster o Aggiunta e gestione dei pool di nodi.
Puoi disabilitare gli upgrade automatici per i nuovi pool di nodi. Nella pagina di creazione del cluster, fai clic sul nome del pool di nodi che vuoi modificare, quindi deseleziona Abilita upgrade automatico.
Ricevere notifiche relative agli 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 delle notifiche di upgrade del cluster.
Modifica i parametri di upgrade di picco
Per saperne di più sulla modifica dei parametri di upgrade di Surge, consulta Configurare gli upgrade di Sorge.
Esercita il controllo durante l'upgrade di un pool di nodi
Durante gli upgrade automatici e gli upgrade del pool di nodi avviati manualmente, puoi eseguire le seguenti azioni.
Annulla l'upgrade di un pool di nodi
Puoi annullare un upgrade in qualsiasi momento. Per saperne di più su cosa succede quando annulli un upgrade di incremento, consulta Annullare un upgrade di incremento. Per scoprire di più su cosa succede quando annulli un upgrade blu/verde, consulta Annullare un upgrade blu/verde.
Ottieni l'ID operazione dell'upgrade:
gcloud container operations list
Annulla l'upgrade:
gcloud container operations cancel OPERATION_ID
Consulta la documentazione di gcloud container operations cancel
.
Riprendi l'upgrade di un pool di nodi
Puoi riprendere un upgrade riavviando manualmente l'upgrade, specificando la versione di destinazione dell'upgrade originale.
Ad esempio, se hai messo in pausa un upgrade continuo alla versione 1.23.1-gke.100, potresti riprendere l'upgrade annullato avviando di nuovo lo stesso upgrade sul pool di nodi con il targeting della versione 1.23.1-gke.100.
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 comando seguente:
gcloud container clusters upgrade CLUSTER_NAME \
--node-pool=NODE_POOL_NAME \
--cluster-version VERSION
Sostituisci quanto segue:
NODE_POOL_NAME
: nome del pool di nodi per il quale vuoi riprendere l'upgrade del pool di nodi.CLUSTER_NAME
: il nome del cluster del pool di nodi per cui vuoi riprendere l'upgrade.VERSION
: la versione di destinazione dell'upgrade del pool di nodi annullato.
Per saperne di più, consulta la documentazione di gcloud container clusters upgrade
.
Esegui il rollback di un upgrade di un pool di nodi
Puoi eseguire il rollback di un pool di nodi per eseguire il downgrade dei nodi di cui è stato eseguito l'upgrade al loro stato originale prima dell'avvio dell'upgrade del pool di nodi.
Utilizza il comando rollback
se un upgrade in corso è stato annullato,
l'upgrade non è riuscito o è incompleto a causa di un
periodo di manutenzione
in scadenza. In alternativa, se vuoi specificare la versione, segui le istruzioni per eseguire il downgrade del pool di nodi.
Per scoprire di più su cosa succede quando esegui il rollback di un upgrade di un pool di nodi, consulta Eseguire il rollback di un upgrade di picco o Eseguire il rollback di un upgrade blu/verde.
Per eseguire il rollback di un upgrade, esegui questo comando:
gcloud container node-pools rollback NODE_POOL_NAME \
--cluster CLUSTER_NAME
Sostituisci quanto segue:
NODE_POOL_NAME
: nome del pool di nodi per cui eseguire il rollback dell'upgrade del pool di nodi.CLUSTER_NAME
: nome del cluster del pool di nodi per cui eseguire il rollback dell'upgrade.
Consulta la documentazione di gcloud container node-pools rollback
.
Completa l'upgrade di un pool di nodi
Se utilizzi la strategia di upgrade blu/verde, puoi completare l'upgrade di un pool di nodi durante la fase di soak, ignorando il resto del tempo di soak.
Per informazioni su come funziona il completamento dell'upgrade di un pool di nodi, vedi Eseguire l'upgrade del pool di nodi.
Per completare un upgrade quando utilizzi la strategia di upgrade blu/verde, esegui questo 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 il quale vuoi completare l'upgrade.CLUSTER_NAME
: nome del cluster del pool di nodi per il quale vuoi completare l'upgrade.
Consulta la documentazione di gcloud container node-pools complete-upgrade
.
Passaggi successivi
- Scopri di più sui pool di nodi.
- Scopri di più sugli upgrade di cluster e pool di nodi.
- Esegui l'upgrade manuale di un cluster o di un pool di nodi.