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 aiuta a mantenere i nodi nel cluster GKE in uno stato di integrità e in esecuzione. 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. Puoi disabilitare la riparazione automatica per un pool di nodi esistente, ma ti consigliamo di mantenere la configurazione predefinita.

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 report sullo stato non integro consecutivi 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 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 conserva 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 nei nodi di slice TPU

Se un nodo di slice TPU in un node pool di nodi di slice TPU multi-host non è integro e richiede la riparazione automatica, viene ricreato l'intero node pool. Per saperne di più sulle condizioni dei nodi di slice TPU, consulta Riparazione automatica dei nodi di slice 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à Compute Engine del piano di controllo del cluster. Specifica 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 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à Compute Engine del piano di controllo del cluster. Specifica 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 i seguenti comandi:

  1. Elenca le operazioni:

    gcloud container operations list --location=CONTROL_PLANE_LOCATION
    

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

  2. Per scoprire il motivo per cui è stata attivata l'operazione di riparazione automatica dei nodi, esegui il seguente 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