Garantisci le risorse per gli upgrade dei nodi

Questa pagina spiega come assicurarti 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 standard di Google Kubernetes Engine (GKE) a seconda della strategia scelta.

Risorse richieste per gli upgrade dei nodi

A seconda della strategia e della configurazione dei nodi scelte, gli upgrade dei nodi potrebbero richiedere a GKE di creare temporaneamente nodi aggiuntivi. Per questo motivo, GKE potrebbe richiedere risorse aggiuntive per un 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 un'affinità di prenotazione specifica.

Ti consigliamo vivamente di verificare di disporre di risorse adeguate se hai requisiti speciali per il tipo di macchina e vincoli di capacità. Potresti dover configurare una strategia che richieda meno risorse per assicurarti di poter eseguire l'upgrade dei nodi o intraprendere altre azioni, ad esempio 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 le operazioni di upgrade e segui le istruzioni per risolvere gli errori di upgrade.

Risorse per gli upgrade di sovraccarico

Gli upgrade di sovraccarico sono la strategia di upgrade dei nodi predefinita. Poiché gli upgrade di sovraccarico creano VM aggiuntive, se maxSurge è impostato su un valore maggiore di zero, prima di svuotare ed eliminare i nodi precedenti, gli upgrade possono 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 è inferiore a maxSurge più maxUnavailable. Se non hai 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 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 tentare 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 un solo 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 ogni 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 temporaneamente bisogno del doppio delle risorse. Se non hai risorse sufficienti disponibili e hai configurato il pool di nodi in modo che utilizzi questa strategia, configura invece gli upgrade di sovraccarico se devi sbloccare gli upgrade. Quando configuri questa strategia, assicurati di configurare i parametri di upgrade di sovraccarico che funzioneranno con le risorse disponibili per i nodi del pool di nodi. Per saperne di più, consulta la sezione precedente, Risorse per gli upgrade di sovraccarico.

Controllare le operazioni di upgrade per gli 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 Google Cloud progetto.
  • COMPUTE_ZONE: la zona di Compute Engine per il tuo cluster.
  • CLUSTER_NAME: il nome del tuo cluster.

Se l'ultimo upgrade 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 il motivo è dovuto a una capacità insufficiente, vedrai 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 la possibilità di utilizzare una strategia di upgrade che richieda meno risorse. Se utilizzi gli upgrade blu/verde, valuta la possibilità di utilizzare gli upgrade di sovraccarico.
  2. Controlla se nel tuo progetto sono presenti 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 le dimensioni della prenotazione specifica.
  4. Se operi in un ambiente con risorse limitate, ad esempio con requisiti speciali per il tipo di macchina e vincoli di capacità, consulta la sezione successiva per i passaggi per sbloccare gli upgrade.

Eseguire l'upgrade in un ambiente con risorse limitate

Se Google Cloud ha una capacità limitata per una risorsa specifica utilizzata dal tuo pool di nodi, ti consigliamo di utilizzare una prenotazione per GPU e TPU. Per i pool di nodi che contengono solo CPU, ti consigliamo di eseguire l'upgrade delle CPU utilizzando la capacità fissa.

Queste due strategie possono aiutarti a garantire di disporre di risorse adeguate per eseguire un upgrade della versione. Se non disponi di risorse adeguate, potresti non essere in grado di eseguire l'upgrade dei nodi finché non potrai accedere a una capacità maggiore.

Se non hai capacità aggiuntiva, non puoi utilizzare gli upgrade blu/verde.

Quando utilizzi gli upgrade di sovraccarico in un ambiente con risorse limitate, tieni presente quanto segue:

Utilizza le seguenti indicazioni, a seconda che tu abbia o meno una prenotazione per il pool di nodi di cui devi eseguire l'upgrade.

Eseguire l'upgrade con capacità fissa

Per le CPU, per eseguire l'upgrade in un ambiente con risorse limitate, utilizza la capacità fissa. Per farlo, utilizza gli upgrade di sovraccarico e imposta l'impostazione maxUnavailable su un valore maggiore di zero. Per i dettagli, consulta maxUnavailable: GKE rende non disponibile un nodo esistente per ricrearlo.

L'upgrade con una capacità fissa ti consente di eseguire gli upgrade quando non puoi ottenere capacità aggiuntiva e ti aiuta a evitare di perdere la capacità esistente durante l'upgrade.

Eseguire l'upgrade con capacità limitata con una prenotazione

Per GPU e TPU, per eseguire l'upgrade in un ambiente con capacità limitata, utilizza una prenotazione e ottimizza le impostazioni di upgrade di sovraccarico per velocità e affidabilità.

Se hai capacità aggiuntiva nella prenotazione, puoi utilizzare maxSurge per creare nodi di sovraccarico. Imposta maxSurge a seconda del numero di nodi che vuoi interrompere contemporaneamente e della capacità aggiuntiva di cui disponi. Ad esempio, imposta maxSurge=1;maxUnavailable=0 se vuoi interrompere un solo nodo alla volta o 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à è riservata. Questa configurazione interrompe un nodo alla volta, ricreandolo per aggiornarlo. Ti consigliamo questo approccio per eseguire la manutenzione dell'host per i nodi che eseguono carichi di lavoro di addestramento e inferenza.

Passaggi successivi