Riparazione automatica dei nodi

Questa pagina spiega come funziona la riparazione automatica dei nodi e come utilizzare la funzionalità per i cluster Standard di Google Kubernetes Engine (GKE).

La riparazione automatica dei nodi mantiene integri e in esecuzione i nodi nel tuo cluster GKE. Se abiliti questa funzionalità, GKE esegue controlli periodici dello stato di integrità di ciascun nodo nel tuo cluster. Se un nodo non supera controlli di integrità consecutivi per un periodo di tempo prolungato, GKE avvia un processo di riparazione per quel nodo.

Impostazioni per Autopilot e Standard

I cluster Autopilot riparano sempre automaticamente i nodi. Non puoi disabilitare questa impostazione.

Nei cluster Standard, la riparazione automatica dei nodi è abilitata per impostazione predefinita per i nuovi node pool. Sebbene sia possibile disabilitare la riparazione automatica per un node pool esistente, ti consigliamo di mantenere la configurazione predefinita. La disabilitazione della riparazione automatica può avere conseguenze indesiderate. Ad esempio, se utilizzi kubectl per eliminare un nodo non integro quando la riparazione automatica è disabilitata, l'istanza VM sottostante potrebbe diventare orfana del cluster e continuerai a ricevere addebiti. Se devi rimuovere i nodi, puoi invece ridimensionare il node pool.

Criteri di riparazione

GKE utilizza lo stato di integrità del nodo per determinare se un nodo deve essere riparato. Un nodo che segnala lo stato Ready è considerato integro. GKE attiva un'azione di riparazione se un nodo segnala consecutivamente stati non integri per una determinata soglia di tempo. Uno stato non integro può significare:

  • Un nodo segnala lo stato NotReady in controlli consecutivi per la soglia di tempo specificata (circa 10 minuti).
  • Un nodo non segnala alcun stato per la soglia di tempo specificata (circa 10 minuti).
  • Il disco di avvio di un nodo è senza spazio su disco per un periodo di tempo prolungato (circa 30 minuti).
  • Un nodo in un cluster Autopilot è isolato per un periodo di tempo superiore alla soglia di tempo specificata (circa 10 minuti).

Puoi controllare manualmente i segnali di integrità del nodo in qualsiasi momento utilizzando il comando kubectl get nodes.

Processo di riparazione dei nodi

Se GKE rileva che un nodo richiede una riparazione, il nodo viene svuotato e ricreato. Questo processo mantiene il nome originale del nodo. GKE attende un'ora per il completamento dello svuotamento. Se lo svuotamento non viene completato, il nodo viene arrestato e viene creato un nuovo nodo.

Se più nodi richiedono una riparazione, GKE potrebbe ripararli in parallelo. GKE bilancia il numero di riparazioni in base alle dimensioni del cluster e al numero di nodi danneggiati. GKE riparerà più nodi in parallelo su un cluster più grande, ma meno nodi man mano che aumenta il numero di nodi non integri.

Se disabiliti la riparazione automatica dei nodi in qualsiasi momento durante il processo di riparazione, le riparazioni in corso non vengono annullate e continuano per qualsiasi nodo in riparazione.

Riparazione automatica dei nodi nelle sezioni TPU

Se un nodo della sezione TPU in un node pool della sezione TPU multi-host non è integro e richiede la riparazione automatica, viene ricreato l'intero pool di nodi. Per saperne di più sulle condizioni dei nodi della sezione TPU, consulta Riparazione automatica dei nodi della sezione TPU.

Abilitare la riparazione automatica per un pool di nodi Standard esistente

Puoi abilitare la riparazione automatica dei nodi per node pool.

Se la riparazione automatica è disabilitata in un pool di nodi esistente in un cluster Standard, segui queste istruzioni per abilitarla:

Console

  1. Vai alla pagina Google Kubernetes Engine nella Google Cloud console.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.

  3. Fai clic sulla scheda Nodi.

  4. In Node pool, fai clic sul nome del pool di nodi che vuoi modificare.

  5. Nella pagina Dettagli del node pool, fai clic su Modifica.

  6. In Gestione, seleziona la casella di controllo Abilita riparazione automatica.

  7. Fai clic su Salva.

gcloud

gcloud container node-pools update POOL_NAME \
    --cluster CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --enable-autorepair

Sostituisci quanto segue:

  • POOL_NAME: il nome del tuo pool di nodi.
  • CLUSTER_NAME: il nome del tuo cluster Standard.
  • 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.

Verificare che la riparazione automatica dei nodi sia abilitata per un pool di nodi Standard

La riparazione automatica dei nodi è abilitata per node pool. Puoi verificare che un pool di nodi nel tuo cluster abbia la riparazione automatica dei nodi abilitata con Google Cloud CLI o la Google Cloud console.

Console

  1. Vai alla pagina Google Kubernetes Engine nella Google Cloud console.

    Vai a Google Kubernetes Engine

  2. Nella pagina Google Kubernetes Engine, fai clic sul nome del cluster del pool di nodi che vuoi controllare.

  3. Fai clic sulla scheda Nodi.

  4. In Node pool, fai clic sul nome del pool di nodi che vuoi controllare.

  5. In Gestione, nel campo Riparazione automatica, verifica che la riparazione automatica sia abilitata.

gcloud

Descrivi il pool di nodi:

gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAME

Se la riparazione automatica dei nodi è abilitata, l'output del comando include queste righe:

management:
  ...
  autoRepair: true

Disabilitare la riparazione automatica dei nodi

Puoi disabilitare la riparazione automatica dei nodi per un pool di nodi esistente in un cluster Standard utilizzando gcloud CLI o la Google Cloud console.

Console

  1. Vai alla pagina Google Kubernetes Engine nella Google Cloud console.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.

  3. Fai clic sulla scheda Nodi.

  4. In Node pool, fai clic sul nome del pool di nodi che vuoi modificare.

  5. Nella pagina Dettagli del node pool, fai clic su Modifica.

  6. In Gestione, deseleziona la casella di controllo Abilita riparazione automatica.

  7. Fai clic su Salva.

gcloud

gcloud container node-pools update POOL_NAME \
    --cluster CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --no-enable-autorepair

Sostituisci quanto segue:

  • POOL_NAME: il nome del tuo pool di nodi.
  • CLUSTER_NAME: il nome del tuo cluster Standard.
  • 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.

Ottenere informazioni sugli eventi di riparazione automatica recenti

GKE genera una voce di log per gli eventi di riparazione automatica. Puoi controllare i log eseguendo questi comandi:

  1. Elenca le operazioni:

    gcloud container operations list --location=CONTROL_PLANE_LOCATION
    

    Sostituisci CONTROL_PLANE_LOCATION con la località di Compute Engine del piano di controllo del cluster. Fornisci una regione per i cluster regionali o una zona per i cluster zonali.

  2. Trova il motivo per cui l'operazione di riparazione automatica dei nodi è stata attivata eseguendo questo comando:

    gcloud container operations describe OPERATION_NAME --location=CONTROL_PLANE_LOCATION
    

    Sostituisci OPERATION_NAME con il nome di un'operazione elencata nell'output del comando precedente.

Nell'output del comando, controlla operationReason per il motivo per cui è stata attivata l'operazione di riparazione. Ad esempio, AUTO_REPAIR_LONG_UNHEALTHY significa che la riparazione automatica dei nodi è stata attivata perché il nodo non era integro da 10 minuti.

Passaggi successivi