Questa pagina spiega come funziona la riparazione automatica dei nodi e come utilizzare la funzionalità per i cluster Google Kubernetes Engine (GKE) standard.
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 disattivare questa impostazione.
Nei cluster Standard, la riparazione automatica dei nodi è abilitata per impostazione predefinita per i nuovi pool di nodi. 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 consecutivamente
report sullo stato non integro per una determinata soglia di tempo.
Uno stato non integro può significare:
- Un nodo segnala lo stato
NotReady
in controlli consecutivi per il periodo di tempo soglia specificato (circa 10 minuti). - Un nodo non segnala alcuno stato per un determinato periodo di tempo (circa 10 minuti).
- Lo spazio su disco del disco di avvio di un nodo è esaurito per un periodo di tempo prolungato (circa 30 minuti).
- Un nodo in un cluster Autopilot viene isolato per un periodo di tempo superiore alla soglia di tempo specificata (circa 10 minuti).
Puoi controllare manualmente gli indicatori di integrità del nodo in qualsiasi momento utilizzando il comando kubectl get nodes
.
Procedura di riparazione dei nodi
Se GKE rileva che un nodo richiede una riparazione, il nodo viene svuotato e ricreato. Questa procedura 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 ne viene creato uno nuovo.
Se più nodi richiedono la 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 disattivi la riparazione automatica dei nodi in qualsiasi momento durante il processo di riparazione, le riparazioni in corso non vengono annullate e continuano per tutti i nodi in riparazione.
Cronologia delle riparazioni dei nodi
GKE genera una voce di log per gli eventi di riparazione automatica. Puoi controllare i log eseguendo questo comando:
gcloud container operations list
Riparazione automatica dei nodi nei nodi slice TPU
Se un nodo di sezione TPU in un node pool di sezioni 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.
Abilita la riparazione automatica per un pool di nodi Standard esistente
Abiliti la riparazione automatica dei nodi per pool di nodi.
Se la riparazione automatica è disabilitata in un pool di nodi esistente in un cluster Standard, utilizza le seguenti istruzioni per abilitarla:
Console
Vai alla pagina Google Kubernetes Engine nella console Google Cloud .
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
Fai clic sulla scheda Nodi.
Nella sezione Pool di nodi, fai clic sul nome del pool di nodi che vuoi modificare.
Nella pagina Dettagli del pool di nodi, fai clic su edit Modifica.
In Gestione, seleziona la casella di controllo Abilita riparazione automatica.
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 posizione di Compute Engine del control plane del tuo cluster. Fornisci una regione per i cluster regionali o una zona per i cluster zonali.
Verifica 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 con la console Google Cloud .
Console
Vai alla pagina Google Kubernetes Engine nella console Google Cloud .
Nella pagina Google Kubernetes Engine, fai clic sul nome del cluster del pool di nodi che vuoi controllare.
Fai clic sulla scheda Nodi.
Nella sezione Pool di nodi, fai clic sul nome del pool di nodi che vuoi esaminare.
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
Disabilita riparazione automatica dei nodi
Puoi disattivare la riparazione automatica dei nodi per un pool di nodi esistente in un cluster Standard utilizzando gcloud CLI o la console Google Cloud .
Console
Vai alla pagina Google Kubernetes Engine nella console Google Cloud .
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
Fai clic sulla scheda Nodi.
Nella sezione Pool di nodi, fai clic sul nome del pool di nodi che vuoi modificare.
Nella pagina Dettagli del pool di nodi, fai clic su edit Modifica.
In Gestione, deseleziona la casella di controllo Abilita riparazione automatica.
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 posizione di Compute Engine del control plane del tuo cluster. Fornisci una regione per i cluster regionali o una zona per i cluster zonali.