Garantisci le risorse per gli upgrade dei nodi


Questa pagina spiega come assicurarsi di poter utilizzare le strategie di upgrade dei nodi per apportare modifiche ai nodi del cluster. Ti consigliamo di verificare se il tuo progetto dispone di risorse sufficienti per aggiornare i pool di nodi Google Kubernetes Engine (GKE) Standard a seconda della strategia che scegli.

Risorse necessarie per gli upgrade dei nodi

Gli upgrade dei nodi potrebbero richiedere a GKE di creare temporaneamente nodi aggiuntivi, a seconda della strategia e della configurazione dei nodi che hai scelto. Per questo motivo, GKE potrebbe richiedere risorse aggiuntive per l'upgrade di un pool di nodi.

Tutti i nodi creati da GKE, inclusi quelli utilizzati per gli upgrade, sono soggetti alla quota delle risorse del progetto, alla disponibilità delle risorse e alla capacità di prenotazione, per i pool di nodi con affinità di prenotazione specifica.

Ti consigliamo vivamente di verificare di disporre di risorse adeguate se hai requisiti speciali per i tipo di macchina e vincoli di capacità. Potrebbe essere necessario configurare una strategia che richiede meno risorse per assicurarti di poter eseguire l'upgrade dei nodi oppure eseguire altre azioni come creare una prenotazione. Per scoprire di più, consulta Eseguire l'upgrade in un ambiente con risorse limitate.

Risorse necessarie per strategie di upgrade diverse

Le seguenti sezioni descrivono le risorse aggiuntive necessarie per utilizzare le strategie di upgrade disponibili. Se riscontri problemi di upgrade, controlla le operazioni di upgrade e segui le istruzioni per risolvere gli errori di upgrade.

Risorse per gli upgrade di Surge

Gli upgrade di Surge sono la strategia predefinita di upgrade dei nodi. Poiché gli upgrade aggiuntivi creano VM aggiuntive (se il valore di maxSurge è impostato su un valore maggiore di zero) prima di svuotare ed eliminare i vecchi nodi, gli upgrade potrebbero non riuscire se il progetto non dispone di risorse sufficienti.

Se le risorse disponibili sono inferiori al numero di nodi specificato in maxSurge, il numero di upgrade paralleli sarà inferiore a maxSurge più maxUnavailable. Se non hai a disposizione capacità aggiuntiva, scopri come eseguire l'upgrade in un ambiente con risorse limitate.

La tabella seguente contiene alcuni esempi che dimostrano i vari comportamenti degli upgrade:

Impostazioni di upgrade Numero di nodi aggiuntivi consentiti dalle risorse disponibili Risultato
maxSurge: 5 maxavailable: 0 5 Esegue l'upgrade di 5 nodi in parallelo.
maxSurge: 5 maxavailable: 0 2 Esegue l'upgrade solo di 2 nodi in parallelo.
maxSurge: 5 maxavailable: 0 0 L'upgrade non riesce poiché non è possibile attivare altri nodi e il riavvio di quelli esistenti è vietato dalle impostazioni di upgrade. GKE continua a provare a eseguire l'upgrade automatico fino al completamento dell'operazione.
maxSurge: 5 maxavailable: 1 5 Esegue l'upgrade di 6 nodi in parallelo, garantendo che il pool di nodi perda temporaneamente solo 1 nodo a causa dell'upgrade.
maxSurge: 5 maxavailable: 1 2 Esegue l'upgrade solo di 3 nodi in parallelo, garantendo che nel pool di nodi manchi al massimo 1 nodo a causa dell'upgrade.
maxSurge: 5 maxavailable: 1 0 Esegue l'upgrade di un solo nodo alla volta ricreando ciascun nodo con un metodo di upgrade in sequenza.

Risorse per gli upgrade blu/verde

Gli upgrade blu/verde raddoppiano temporaneamente il numero di nodi in un pool di nodi, il che significa che il pool di nodi ha bisogno temporaneamente del doppio delle risorse. Se non disponi di risorse sufficienti e hai configurato il tuo pool di nodi per utilizzare questa strategia, configura gli upgrade di incremento se devi sbloccare gli upgrade. Quando configuri questa strategia, assicurati di configurare i parametri di upgrade di incremento che funzionino con le risorse disponibili per i nodi del pool di nodi. Per scoprire di più, consulta la sezione precedente, Risorse per gli upgrade di picco.

Controlla le operazioni di upgrade per verificare la presenza di errori relativi alle risorse

Controlla gli oggetti delle operazioni di upgrade per ulteriori informazioni sulle operazioni di upgrade e sul motivo dell'eventuale mancata esecuzione degli upgrade. Per elencare gli oggetti delle operazioni di upgrade, esegui questo comando:

gcloud container operations list \
    --filter="STATUS=DONE AND TYPE=UPGRADE_NODES AND targetLink:https://container.googleapis.com/v1/projects/PROJECT_ID/zones/COMPUTE_ZONE/clusters/CLUSTER_NAME"

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud.
  • COMPUTE_ZONE: la zona di Compute Engine per il cluster.
  • CLUSTER_NAME: il nome del tuo cluster.

Se l'upgrade più recente non è riuscito a causa di una quota di risorse insufficiente, l'output è simile al seguente:

gcloud container operations describe operation-1234567891234-1abc2d3e
detail: "Insufficient quota to satisfy the request: waiting on IG: instance https://www.googleapis.com/compute/v1/projects/my-project-123/zones/us-central1-a/instances/gke-my-cluster-default-pool-123ab45c-de67\
  \ is still CREATING. Last attempt errors: [QUOTA_EXCEEDED] Instance 'gke-my-cluster-default-pool-123ab45c-de67'\
  \ creation failed: Quota 'IN_USE_ADDRESSES' exceeded.  Limit: 50.0 in region us-central1.\
...

Se il motivo è dovuto a una prenotazione insufficiente, l'output è simile al seguente:

gcloud container operations describe operation-1234567891234-1abc2d3e
detail: "Reservation does not have enough resources for the request: waiting on IG:\
  \ instance https://www.googleapis.com/compute/v1/projects/my-project-123/zones/us-central1-a/instances/gke-my-cluster-default-pool-123ab45c-de67\
  \ is still CREATING. Last attempt error: [CONDITION_NOT_MET] Instance 'gke-my-cluster-default-pool-123ab45c-de67'\
  \ creation failed: Specified reservation 'foo' does not have available resources\
  \ for the request."

Se la causa è stata insufficiente, verranno visualizzati messaggi di errore relativi alla disponibilità delle risorse.

Risoluzione degli errori di upgrade

Se l'upgrade non è riuscito a causa di risorse insufficienti, prova a seguire questi passaggi:

  1. Valuta una strategia di upgrade con un minor utilizzo di risorse. Se usi upgrade blu/verde, prendi in considerazione gli upgrade di picco.
  2. Controlla se nel progetto esistono risorse Compute Engine che consumano risorse e non sono più necessarie. Se trovi risorse di questo tipo, rimuovile e prova a eseguire di nuovo l'upgrade.
  3. Se i primi due passaggi non riescono a sbloccare l'upgrade, richiedi un aumento della quota o aumenta la dimensione della prenotazione specifica.
  4. Se operi in un ambiente con risorse limitate e, ad esempio, requisiti speciali per il tipo di macchina e vincoli di capacità, consulta la sezione successiva per i passaggi da seguire per sbloccare gli upgrade.

Upgrade in un ambiente con risorse limitate

Se Google Cloud ha una capacità limitata per una risorsa specifica (ad esempio GPU o TPU) utilizzata dal pool di nodi, ti consigliamo di utilizzare una prenotazione per assicurarti di disporre di risorse adeguate. Se non hai risorse adeguate, potresti non essere in grado di eseguire l'upgrade dei nodi fino a quando non riesci ad accedere a più capacità. Se non hai una prenotazione per la capacità esistente.

Se non è possibile ottenere capacità aggiuntiva, non puoi utilizzare gli upgrade blu/verde. Per gli upgrade di sovraccarico, maxSurge richiede nodi aggiuntivi. Con maxUnavailable, se la capacità non proviene da una prenotazione, GKE rilascia temporaneamente la capacità del nodo durante l'upgrade, il che significa che se la capacità è limitata, rischi di perderla.

Segui le indicazioni riportate di seguito, a seconda che tu abbia o meno una prenotazione per il tuo pool di nodi di cui deve essere eseguito l'upgrade.

Esegui l'upgrade con capacità limitata senza prenotazione

Se non hai una prenotazione per i nodi del pool di nodi, ti consigliamo di crearne una. Tuttavia, se non riesci, ti consigliamo di utilizzare upgrade di sovraccarico con la configurazione predefinita di maxSurge=1;maxUnavailable=0. Con questa configurazione, non rischi di perdere la capacità esistente. Tuttavia, gli upgrade di sovraccarico creano un nodo di picco solo se la capacità è disponibile. Quindi, se non è disponibile capacità, gli upgrade potrebbero richiedere più tempo e il pool di nodi potrebbe rimanere in uno stato di upgrade parziale finché non viene assicurata la capacità per eseguire l'upgrade di ciascun nodo.

Ti consigliamo di creare una prenotazione o aumentare le dimensioni di una prenotazione esistente.

Esegui l'upgrade con capacità limitata tramite una prenotazione

Se hai una prenotazione per i nodi del tuo pool di nodi, puoi eseguire l'upgrade dei pool di nodi in un ambiente con limiti di capacità, ottimizzando le impostazioni di upgrade dei picchi di velocità e affidabilità.

Se la prenotazione include capacità aggiuntiva, puoi utilizzare maxSurge per creare nodi di picco. Imposta maxSurge in base al numero di nodi che vuoi interrompere contemporaneamente e alla capacità aggiuntiva di cui disponi. Ad esempio, imposta maxSurge=1;maxUnavailable=0 se vuoi interrompere solo un nodo alla volta o se hai solo la capacità per creare un nodo aggiuntivo.

Se non hai capacità aggiuntiva, puoi utilizzare maxUnavailable con una configurazione come maxSurge=0;maxUnavailable=1, poiché la capacità è prenotata. Questa configurazione interrompe un nodo alla volta, ricreando il nodo per aggiornarlo.

Passaggi successivi