Assicurati le risorse per gli upgrade dei nodi


Questa pagina spiega come assicurarsi di poter utilizzare l'upgrade dei nodi strategie per modificare i nodi del cluster. Ti consigliamo di verificare se il tuo progetto dispone di risorse sufficienti per aggiornare i pool di nodi standard di Google Kubernetes Engine (GKE) in base alla strategia scelta.

Risorse richieste per gli upgrade dei nodi

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

Tutti i nodi creati da GKE, inclusi quelli utilizzati per gli upgrade, sono soggetti alla quota di 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 tipi di macchine e vincoli di capacità. Potresti dover configurare una strategia che richieda meno risorse per assicurarti di poter eseguire l'upgrade dei tuoi nodi o intraprendere altre azioni, come creare una prenotazione. Per saperne di più, consulta Eseguire l'upgrade in un ambiente con risorse limitate.

Risorse necessarie per le diverse strategie di upgrade

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

Risorse per gli upgrade di sovraccarico

Gli upgrade per picchi sono la strategia di upgrade dei nodi predefinita. Poiché gli upgrade di incremento creano VM aggiuntive (se maxSurge è impostato su un valore maggiore di zero) prima di svuotare ed eliminare i vecchi nodi, è possibile che gli upgrade non riescano 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 è inferiore a maxSurge più maxUnavailable. Se non disponi di capacità aggiuntiva, scopri come eseguire l'upgrade in un con vincoli di risorse.

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 maxUnavailable: 0 5 Esegue l'upgrade di 5 nodi in parallelo.
maxSurge: 5 maxUnavailable: 0 2 Esegue l'upgrade solo di 2 nodi in parallelo.
maxSurge: 5 maxUnavailable: 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 finché l'operazione non va a buon fine.
maxSurge: 5 maxUnavailable: 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 maxUnavailable: 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 maxUnavailable: 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 blue-green doppio temporaneamente il numero di nodi in un pool di nodi, il che significa che il tuo pool di nodi ha temporaneamente bisogno del doppio delle risorse. Se non hai risorse sufficienti disponibili e hai configurato il pool di nodi per utilizzare questa strategia, configura gli upgrade per i picchi se devi sbloccare gli upgrade. Quando configuri questa strategia, assicurati di configurare i parametri di upgrade per l'aumento improvviso che funzionino con le risorse disponibili per i nodi del pool di nodi. Per saperne di più, consulta la sezione precedente Risorse per gli upgrade per picchi di domanda.

Controllare 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 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 comando seguenti:

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 il motivo è dovuto a una capacità insufficiente, la riga resource verrà visualizzata errore di disponibilità messaggi.

Risoluzione degli errori di upgrade

Se l'upgrade non è riuscito a causa di risorse insufficienti, prova a svolgere i seguenti passaggi:

  1. Prendi in considerazione una strategia di upgrade che richiede meno risorse. Se utilizzi gli upgrade blu/verde, valuta la possibilità di eseguire upgrade per picchi di domanda.
  2. Verifica se nel tuo progetto esistono delle risorse di 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 consentono comunque di eseguire l'upgrade, richiedi un incremento della quota oppure aumenta la dimensione della prenotazione specifica.
  4. Se operi in un ambiente con risorse limitate, ad esempio con requisiti speciali per i tipi di macchine e limitazioni di capacità, consulta la sezione successiva per scoprire come sbloccare gli upgrade.

Eseguire l'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 tuo pool di nodi, ti consigliamo di utilizzare una prenotazione per assicurarti di disporre di risorse adeguate. Se non disponi di risorse adeguate, potrebbe non essere in grado di eseguire l'upgrade dei nodi finché non riesci ad accedere a capacità maggiore, se non c'è una prenotazione per la capacità esistente.

Se non puoi ottenere capacità aggiuntiva, non puoi utilizzare gli upgrade blue-green. 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 che seguono, a seconda che tu abbia o meno una prenotazione per il tuo del pool di nodi di cui è necessario eseguire l'upgrade.

Upgrade con capacità limitata senza prenotazione

Se non hai una prenotazione per i nodi del tuo pool di nodi, ti consigliamo di crearne una. Tuttavia, se non puoi, ti consigliamo di utilizzare gli upgrade per i picchi 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 e la capacità di archiviazione è disponibile. Quindi, se non è disponibile capacità, gli upgrade potrebbero richiedere e il pool di nodi potrebbe rimanere in stato di upgrade parziale finché è protetta per eseguire l'upgrade di ciascun nodo.

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

Upgrade con capacità limitata con 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 limitazioni di capacità, ottimizzando le impostazioni di upgrade per il picco per velocità e affidabilità.

Se hai capacità aggiuntiva nella prenotazione, puoi utilizzare maxSurge per creano nodi di picco. Imposta maxSurge in base al numero di nodi che vuoi interrompere contemporaneamente e quanta capacità aggiuntiva hai. Ad esempio, imposta maxSurge=1;maxUnavailable=0 se vuoi interrompere un solo nodo alla volta oppure se hai la capacità di creare un solo 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, ricreandolo in aggiornalo.

Passaggi successivi