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 i nodi nel tuo cluster aggiornati con
la versione del piano di controllo del cluster quando il piano di controllo viene
aggiornato per conto tuo.
Quando crei un nuovo cluster o pool di nodi con la Google Cloud console o il gcloud comando, 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 si assicura automaticamente che gli aggiornamenti della sicurezza vengano applicati e mantenuti aggiornati.
- Facilità d'uso: offre un modo automatico per mantenere i nodi aggiornati con le ultime funzionalità di Kubernetes.
I pool di nodi con upgrade automatici abilitati sono pianificati per gli upgrade quando soddisfano i criteri di selezione (annunciati nelle note di rilascio). I rollout vengono eseguiti 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 che corrispondano alla versione corrente del control plane. 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 abilitare l'upgrade automatico dei nodi.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
- Abilita l'API Google Kubernetes Engine. Abilita l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
installala e poi
inizializza gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima
versione eseguendo il
gcloud components updatecomando. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.
- Assicurati di avere un cluster Standard esistente. Quando crei un nuovo cluster con la Google Cloud console o con il comando Google Cloud CLI, l'upgrade automatico dei nodi è abilitato per impostazione predefinita. Per creare un cluster Standard, consulta Crea un cluster a livello di regione.
Controlla lo stato dell'upgrade automatico per un pool di nodi esistente
Per impostazione predefinita, gli upgrade automatici dei nodi sono abilitati per i pool di nodi.
Come impostato dalle esclusioni dalla manutenzione
Puoi disabilitare gli upgrade automatici dei nodi per tutti i pool di nodi in un cluster utilizzando un' esclusione dalla manutenzione del cluster con l'ambito "Nessun upgrade secondario o di nodi". In alternativa, se hai un cluster in cui vuoi disabilitare gli upgrade automatici per alcuni, ma non tutti, i pool di nodi, utilizza un'esclusione dalla manutenzione del pool di nodi. Puoi utilizzare uno di questi tipi di esclusioni se il cluster è registrato in un canale di rilascio. Per verificare se hai già configurato queste esclusioni, visualizza i criteri di manutenzione di un cluster.
Come impostato dal campo degli upgrade automatici dei nodi
Sebbene si tratti di una configurazione legacy e non consigliata, puoi anche disabilitare gli upgrade automatici dei nodi configurando il campo autoUpgrade per i singoli pool di nodi. Puoi verificare se l'upgrade automatico è abilitato o disabilitato per un pool di nodi con questo campo utilizzando la Google Cloud console o il gcloud comando.
gcloud
Per controllare lo stato dell'upgrade automatico per un pool di nodi, esegui il seguente comando:
gcloud container node-pools describe NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION
Sostituisci quanto segue:
NODE_POOL_NAME: il nome del pool di nodi.CLUSTER_NAME: il nome del cluster che contiene il pool di nodi.CONTROL_PLANE_LOCATION: la località di Compute Engine del piano di controllo del tuo cluster. Fornisci una regione per i cluster regionali o una zona per i cluster zonali.
Cerca il campo autoUpgrade nell'output per verificare se gli upgrade automatici sono abilitati o disabilitati per il pool di nodi.
management:
autoUpgrade: true
Console
Per controllare lo stato dell'upgrade automatico per un pool di nodi:
Vai alla pagina Google Kubernetes Engine nella Google Cloud console.
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 Google Cloud console o con il gcloud comando,
l'upgrade automatico dei nodi è abilitato per impostazione predefinita.
Puoi abilitare l'upgrade automatico dei nodi se è disabilitato. Tieni presente che questa operazione non influisce sulla configurazione delle esclusioni dalla manutenzione, che è il modo consigliato per impedire a GKE di eseguire automaticamente l'upgrade dei nodi. Per un maggiore controllo sulla tempistica degli upgrade automatici dei nodi, valuta la possibilità di configurare periodi di manutenzione ed esclusioni.
Per abilitare gli upgrade automatici dei nodi:
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 \
--location CONTROL_PLANE_LOCATION \
--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.CONTROL_PLANE_LOCATION: la località di Compute Engine del piano di controllo del tuo cluster. Fornisci una regione per i cluster regionali o una zona per i cluster zonali.
Console
Per abilitare gli upgrade automatici per un pool di nodi esistente:
Vai alla pagina Google Kubernetes Engine nella Google Cloud console.
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.
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 negli ultimi 12 giorni se sono meno di 5000 o le ultime 5000 operazioni:
gcloud container operations list \
--location=CONTROL_PLANE_LOCATION
A ogni operazione vengono assegnati un ID operazione e un tipo di operazione, nonché orari di inizio e fine, cluster di destinazione e 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 maggiori informazioni su un'operazione specifica, specifica l'ID operazione come mostrato nel seguente comando:
gcloud container operations describe OPERATION_ID \
--location=CONTROL_PLANE_LOCATION
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
Se l'upgrade è stato annullato o non è riuscito ed è stato completato parzialmente, puoi riprenderlo o eseguirne il rollback.
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 gcloud container node-pools
describe comando. Per
gli upgrade blu/verde, il comando restituisce anche la fase
corrente
dell'upgrade.
Esegui questo comando:
gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION
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.CONTROL_PLANE_LOCATION: la località (regione o zona) del piano di controllo, ad esempious-central1ous-central1-a.
Questo comando restituirà 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 i dettagli sulle impostazioni di upgrade blu/verde e sulla fase intermedia corrente. L'esempio seguente mostra un possibile output:
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
Puoi disabilitare l'upgrade automatico dei nodi per un pool di nodi esistente, se devi gestire manualmente gli upgrade dei nodi per quel pool di nodi. Se vuoi disabilitare gli upgrade automatici dei nodi per tutti i pool di nodi in un cluster, ti consigliamo di utilizzare un' esclusione dalla manutenzione del cluster con l'ambito "Nessun upgrade secondario o di nodi". Se hai un cluster in cui vuoi disabilitare gli upgrade automatici per alcuni, ma non tutti, i pool di nodi, utilizza un'esclusione dalla manutenzione del pool di nodi. Puoi utilizzare uno di questi tipi di esclusioni se il cluster è registrato in un canale di rilascio.
Sebbene non sia consigliato, puoi anche seguire le istruzioni riportate in questa sezione per disabilitare gli upgrade automatici dei nodi per un singolo pool di nodi.
Prima di disabilitare gli upgrade automatici dei nodi, tieni presente le seguenti considerazioni.
Considerazioni prima di disabilitare gli upgrade automatici dei nodi
Se disabiliti gli upgrade automatici dei nodi per un pool di nodi utilizzando uno dei metodi disponibili , GKE non aggiorna la versione dei nodi, tranne che per l'aggiornamento alla versione secondaria successiva alla fine del supporto. 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 di versione, ma non tutte le attività di manutenzione
La disabilitazione degli upgrade automatici dei nodi impedisce 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, Cloud DNS, l'abilitazione dei criteri di rete o la migrazione PSC su un cluster ricrea tutti i nodi alla 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 disabilitazione implica la responsabilità della compatibilità tra piano di controllo e nodi
Se disabiliti l'upgrade automatico dei nodi per un pool di nodi, sei responsabile di assicurarti che i nodi del cluster eseguano una versione compatibile con la versione del control plane del cluster, rispettando i criteri di asimmetria delle versioni di GKE policy. La disabilitazione degli upgrade automatici dei nodi impedisce l'upgrade dei pool di nodi solo fino a la fine del supporto standard. GKE esegue l'upgrade dei nodi che eseguono una versione non supportata dopo che la versione ha raggiunto la fine del supporto per garantire l'integrità del cluster.
Per informazioni dettagliate sulla tempistica della fine del supporto, consulta la sezione Programma stimato per i canali di rilascio. L'upgrade dei nodi che eseguono versioni non supportate potrebbe non essere eseguito immediatamente al termine del supporto della versione e la tempistica effettiva può variare a discrezione di Google.
La disabilitazione non interrompe le operazioni in corso
La disabilitazione degli upgrade automatici dei nodi non interrompe né annulla gli upgrade in corso dei nodi nei pool di nodi. Per annullare o interrompere gli upgrade in corso, segui la procedura descritta in Annullare un upgrade dei nodi. L'annullamento di un upgrade dei nodi può essere utile in situazioni in cui i carichi di lavoro non riescono a essere eseguiti sui nodi sottoposti ad upgrade e vuoi evitare ulteriori interruzioni.
Se l'upgrade è stato 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
Se devi disabilitare gli upgrade automatici dei nodi per un pool di nodi esistente, ti consigliamo di utilizzare un'esclusione dalla manutenzione del pool di nodi. Per istruzioni, consulta Aggiungere un'esclusione dalla manutenzione del pool di nodi per un pool di nodi esistente. Se devi disabilitare gli upgrade automatici dei nodi per tutti i pool di nodi in un cluster, utilizza un'esclusione dalla manutenzione del cluster con l'ambito "Nessun upgrade secondario o di nodi".
Puoi anche utilizzare le seguenti istruzioni, anche se non è consigliabile, per disabilitare gli upgrade automatici dei nodi per un pool di nodi esistente.
gcloud
Per disabilitare gli upgrade automatici per un pool di nodi esistente, esegui il seguente comando:
gcloud container node-pools update NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION \
--no-enable-autoupgrade
Console
Per disabilitare gli upgrade automatici per un pool di nodi esistente:
Vai alla pagina Google Kubernetes Engine nella Google Cloud console.
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 upgrade automatico.
Fai clic su Salva per modificare il cluster.
Crea un pool di nodi con gli upgrade automatici dei nodi abilitati
Per impostazione predefinita, i pool di nodi GKE hanno gli upgrade automatici abilitati. Tuttavia, se vuoi specificare esplicitamente questa impostazione predefinita, segui queste istruzioni:
gcloud
Per creare un pool di nodi con l'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 \
--location CONTROL_PLANE_LOCATION \
--enable-autoupgrade
Console
Per istruzioni su come creare cluster e pool di nodi, consulta Creare un cluster o Aggiungere e gestire pool di nodi.
Ricevi 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 Ricevere notifiche di upgrade del cluster.
Modifica i parametri di upgrade di sovraccarico
Per scoprire di più su come modificare i parametri di upgrade di sovraccarico, consulta Configurare gli upgrade di sovraccarico.
Esercita il controllo durante l'upgrade di un pool di nodi
Durante gli upgrade automatici e gli upgrade dei pool di nodi avviati manualmente, puoi eseguire le seguenti azioni.
Configura gli upgrade simultanei dei pool di nodi
Per impostazione predefinita, GKE esegue automaticamente l'upgrade di un pool di nodi alla volta. Per i cluster con molti pool di nodi, puoi configurare gli upgrade simultanei dei pool di nodi per ridurre il tempo totale necessario per eseguire l'upgrade del cluster. Per configurare questa opzione, imposta il numero massimo di pool di nodi di cui GKE può eseguire l'upgrade automatico contemporaneamente. Nei cluster Standard, questa impostazione determina la simultaneità degli upgrade dei nodi per i pool di nodi Standard e i pool di nodi gestiti da Autopilot. Nei cluster Autopilot, questa impostazione determina la simultaneità degli upgrade dei nodi per i gruppi di nodi.
Puoi configurare il limite di simultaneità quando crei un nuovo cluster o aggiorni un cluster esistente utilizzando gcloud CLI. Assicurati che gli upgrade automatici siano abilitati per i pool di nodi di cui vuoi eseguire l'upgrade automatico simultaneamente.
Non puoi abilitare questa funzionalità per un cluster registrato in una sequenza di rollout con fasi personalizzate (anteprima).
Per configurare gli upgrade simultanei dei pool di nodi, esegui uno dei seguenti comandi:
Crea un nuovo cluster con gli upgrade simultanei dei pool di nodi configurati:
gcloud beta container clusters create CLUSTER_NAME \ --project=PROJECT_NAME --location CONTROL_PLANE_LOCATION \ --node-pool-upgrade-concurrency-config=max-count=MAX_COUNTAggiorna un cluster esistente per eseguire l'upgrade simultaneo dei pool di nodi:
gcloud beta container clusters update CLUSTER_NAME \ --project=PROJECT_NAME \ --location=CONTROL_PLANE_LOCATION \ --node-pool-upgrade-concurrency-config=max-count=MAX_COUNT
Sostituisci quanto segue:
CLUSTER_NAME: il nome del cluster.PROJECT_NAME: il nome del progetto.LOCATION: la località di calcolo del cluster.MAX_COUNT: il numero massimo di pool di nodi di cui eseguire l'upgrade simultaneamente. Il valore deve essere un numero intero compreso tra1e100. Per ripristinare il comportamento sequenziale predefinito, imposta questo valore su1.
Annulla 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.
Recupera l'ID operazione dell'upgrade:
gcloud container operations list \ --location=CONTROL_PLANE_LOCATIONAnnulla l'upgrade:
gcloud container operations cancel OPERATION_ID \ --location=CONTROL_PLANE_LOCATION
Consulta la
gcloud container operations cancel
documentazione.
Riprendi l'upgrade di un pool di nodi
Puoi riprendere un upgrade avviandolo di nuovo manualmente e specificando la versione di destinazione dell'upgrade originale.
Se, ad esempio, 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 e 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 sovraccarico e un upgrade blu/verde.
Per riprendere un upgrade, utilizza il seguente comando:
gcloud container clusters upgrade CLUSTER_NAME \
--node-pool=NODE_POOL_NAME \
--location=CONTROL_PLANE_LOCATION \
--cluster-version VERSION
Sostituisci quanto segue:
NODE_POOL_NAME: il nome del pool di nodi per cui vuoi riprendere l'upgrade del pool di nodi.CLUSTER_NAME: il nome del cluster del pool di nodi per cui vuoi riprendere l'upgrade.CONTROL_PLANE_LOCATION: la località (regione o zona) del piano di controllo, ad esempious-central1ous-central1-a.VERSION: la versione di destinazione dell'upgrade del pool di nodi annullato.
Per ulteriori informazioni, consulta la gcloud container clusters upgrade
documentazione.
Esegui il rollback dell'upgrade di un pool di nodi
Puoi eseguire il rollback di un pool di nodi per eseguire il downgrade dei nodi sottoposti ad upgrade allo stato originale precedente all'avvio dell'upgrade del pool di nodi.
Utilizza il comando rollback se un upgrade in corso è stato annullato,
non è riuscito o è incompleto a causa del
timeout di un periodo di manutenzione. 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 dell'upgrade di un pool di nodi, consulta Eseguire il rollback di un upgrade di sovraccarico 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 \
--location=CONTROL_PLANE_LOCATION
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.CONTROL_PLANE_LOCATION: la località (regione o zona) del piano di controllo, ad esempious-central1ous-central1-a.
Consulta la gcloud container node-pools rollback
documentazione.
Completa l'upgrade di un pool di nodi
Per scoprire come funziona il completamento dell'upgrade di un pool di nodi, consulta Completare l'upgrade di un pool di nodi.
Per completare un upgrade quando utilizzi la strategia di upgrade blu/verde, esegui il seguente comando:
gcloud container node-pools complete-upgrade NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION
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.CONTROL_PLANE_LOCATION: la località (regione o zona) del piano di controllo, ad esempious-central1ous-central1-a.
Consulta la gcloud container node-pools complete-upgrade
documentazione.
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.
- Scopri di più sui canali di rilascio.
- Risolvi i problemi relativi agli upgrade dei cluster.