Aggiornamento di un pool di nodi
Questo argomento spiega come aggiornare i pool di nodi. Puoi aggiornare i pool di nodi per i seguenti motivi:
- Per eseguire l'upgrade della versione del pool di nodi
- a modificare il numero di nodi nel pool di nodi.
- Per modificare le annotazioni del pool di nodi (aggiornabile solo tramite API)
Puoi anche modificare parametri aggiuntivi sui pool di nodi non elencati sopra.
Per un elenco completo dei parametri che puoi aggiornare, consulta la documentazione di gcloud container azure node-pools update
e di projects.locations.azureNodePools.patch
.
Aggiornamento processo
Questa sezione descrive i processi eseguiti da GKE su Azure per aggiornare un pool di nodi. Il processo è diverso a seconda dell'entità delle modifiche necessarie al pool di nodi.
Aggiornamento solo alla configurazione
Se GKE su Azure può aggiornare un pool di nodi senza riavviare o ricreare le risorse, apporterà queste modifiche. Ad esempio, l'aggiornamento delle annotazioni del pool di nodi non comporta il riavvio di alcuna istanza.
aggiornamento in sequenza
Quando una modifica a un pool di nodi richiede il riavvio delle macchine virtuali esistenti, ad esempio in fase di aggiornamento della versione di Kubernetes, GKE su Azure esegue questi passaggi:
- Modifica il set di scalabilità delle macchine virtuali del pool di nodi con la nuova configurazione.
- Scegli l'istanza sottostante di un nodo da aggiornare.
- GKE su Azure contrassegna il nodo e scarica il nodo. A questo punto, non è possibile pianificare nuovi pod sul nodo di destinazione. Gli oggetti pod esistenti sul nodo di destinazione vengono ripianificati su altri nodi. I pod che non possono essere ripianificati su altri nodi esistenti rimangono nella fase In attesa finché non possono essere pianificati.
- Aggiorna l'istanza per utilizzare l'ultima configurazione del set di scalabilità della macchina virtuale.
- Ricrea l'immagine e riavvia l'istanza.
- Attendi finché tutti i nodi in questo pool di nodi diventano integri.
- Se tutti i nodi in questo pool di nodi sono integri, seleziona un altro nodo fino a quando non vengono aggiornati tutti i nodi. Se un nodo non è integro, GKE su Azure pone il pool di nodi nello stato
DEGRADED
. Per ulteriori informazioni, consulta Aggiornamenti non riusciti.
Proteggi i carichi di lavoro durante un aggiornamento in sequenza del pool di nodi
Durante l'aggiornamento in sequenza del pool di nodi, GKE su Azure rispetta la configurazione
di PodDisruptionBudget fino a un'ora dopo l'avvio dello svuotamento di un nodo. Dopo un'ora, GKE su Azure
elimina tutti i pod rimanenti sul nodo.
Ridimensionamento dei pool di nodi
GKE su pool di nodi Azure ha il gestore della scalabilità automatica dei cluster abilitato per impostazione predefinita. Il gestore della scalabilità automatica dei cluster ridimensiona automaticamente il pool di nodi in base alle esigenze dei tuoi carichi di lavoro. Per ulteriori informazioni sul gestore della scalabilità automatica dei cluster, consulta Gestore della scalabilità automatica dei cluster.
Quando modifichi il numero massimo e minimo di nodi nel pool di nodi, GKE su Azure intraprende azioni diverse a seconda della nuova configurazione e del numero attuale di nodi del pool di nodi. Queste azioni includono:
Se il numero attuale di nodi del pool di nodi rientra già nel nuovo intervallo, GKE su Azure non modifica il numero di nodi nel pool.
Se il nuovo numero minimo di nodi è superiore al numero attuale di nodi del pool di nodi, GKE su Azure aggiunge altri nodi fino a quando il pool di nodi non raggiunge la nuova dimensione minima.
Se il nuovo numero massimo di nodi è inferiore al numero attuale di nodi del pool di nodi, GKE su Azure riduce le dimensioni del pool di nodi eseguendo queste azioni:
- Aggiorna la configurazione della scalabilità automatica sulla scalabilità della macchina virtuale impostata nel pool di nodi
- Seleziona un nodo da rimuovere
- Non pianificarlo ed svuotarlo
- Elimina l'istanza della macchina virtuale sottostante
- Attendi che la macchina virtuale eliminata sia stata completamente eliminata
- Esegui il controllo di integrità sull'intero pool di nodi
- Ripeti finché il numero di nodi non raggiunge il numero desiderato
In che modo GKE su Azure protegge i carichi di lavoro durante il ridimensionamento del pool di nodi
Durante il ridimensionamento del pool di nodi, GKE su Azure rispetta la configurazione di PodDisruptionBudget fino a un'ora dopo l'inizio dello svuotamento di un nodo. Dopo un'ora, GKE su Azure elimina tutti gli oggetti pod rimanenti sul nodo.
Durante il ridimensionamento del pool di nodi, GKE su Azure esegue un arresto controllato dei nodi da riavviare o rimuovere e attende fino a due ore. Se dopo due ore sono presenti oggetti pod rimanenti sul nodo, GKE su Azure elimina l'istanza della macchina virtuale sottostante.
Verificare lo stato di un aggiornamento non riuscito
Se GKE su Azure esegue un controllo di integrità dopo un aggiornamento e il controllo di integrità non riesce, il pool di nodi viene contrassegnato come DEGRADED
. Puoi trovare informazioni sullo stato del cluster con il seguente comando dellGoogle Cloud CLI:
gcloud container azure node-pools describe NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION
Sostituisci quanto segue:
NODE_POOL_NAME
: il nome del tuo pool di nodiCLUSTER_NAME
: il nome del clusterGOOGLE_CLOUD_LOCATION
: la regione Google Cloud che gestisce il cluster
L'output include informazioni sullo stato e sulla configurazione del pool di nodi.
Prerequisiti
Per aggiornare un pool di nodi, devi disporre dell'autorizzazione gkemulticloud.googleapis.com/azureNodePools.update
Identity and Access Management.
Aggiornamento di un pool di nodi
Puoi aggiornare un pool di nodi con Google Cloud CLI. Per aggiornare un pool di nodi, esegui:
gcloud container azure node-pools update NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--node-version NODE_POOL_VERSION \
--min-nodes MIN_NODES \
--max-nodes MAX_NODES
Sostituisci quanto segue:
NODE_POOL_NAME
: il nome del pool di nodi da aggiornareCLUSTER_NAME
: il nome del cluster a cui collegare il pool di nodiGOOGLE_CLOUD_LOCATION
: la regione Google Cloud supportata che gestisce il cluster, ad esempious-west1
NODE_POOL_VERSION
: la nuova versione del pool di nodi supportataMIN_NODES
: il nuovo numero minimo di nodi che il pool di nodi può contenere. Deve essere0
o superiore.MAX_NODES
: il nuovo numero massimo di nodi che il pool di nodi può contenere. Deve essere almeno1
e il valore diMIN_NODES
.
Annullamento di un'operazione di aggiornamento
Per annullare un'operazione di aggiornamento del pool di nodi in corso, esegui questo comando:
gcloud container azure operations cancel OPERATION_NAME
Sostituisci OPERATION_NAME
con il nome dell'operazione di aggiornamento.
Tieni presente che l'annullamento di un'operazione di aggiornamento del pool di nodi in corso non comporta il ripristino degli aggiornamenti dei nodi già completati. Ciò può comportare un pool di nodi parzialmente aggiornato.
Passaggi successivi
- Leggi la documentazione di riferimento gcloud container azure node-pools create.
- Eliminare un pool di nodi.