Questa pagina spiega come funziona la riparazione automatica dei nodi e come utilizzare la funzionalità per i cluster Standard Google Kubernetes Engine (GKE).
La riparazione automatica dei nodi mantiene integri e in esecuzione i nodi nel tuo cluster GKE. Quando è abilitata, GKE esegue controlli periodici sullo stato di integrità di ogni nodo nel cluster. Se un nodo non supera i controlli di integrità consecutivi per un periodo di tempo prolungato, GKE avvia una procedura 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 node pool. Sebbene tu possa 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 report di stato non integri consecutivi per una determinata soglia di tempo.
Uno stato non integro può significare:
- Un nodo segnala lo stato
NotReadyin 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.
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 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 la procedura di riparazione, le riparazioni in corso non vengono annullate e continuano per qualsiasi nodo in riparazione.
Riparazione automatica dei nodi nei nodi della sezione 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
La riparazione automatica dei nodi viene abilitata per node pool.
Se la riparazione automatica è disabilitata in un pool di nodi esistente in un cluster Standard, segui queste istruzioni per abilitarla:
Console
Vai alla pagina Google Kubernetes Engine nella Google Cloud console.
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
Fai clic sulla scheda Nodi.
In Node pool, fai clic sul nome del pool di nodi che vuoi modificare.
Nella pagina Dettagli del node pool, 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 località Compute Engine del piano di controllo del cluster. Specifica una regione per i cluster regionali o una zona per i cluster a livello di zona.
Verificare che la riparazione automatica dei nodi sia abilitata per un pool di nodi Standard
La riparazione automatica dei nodi viene 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
Vai alla pagina Google Kubernetes Engine nella Google Cloud console.
Nella pagina Google Kubernetes Engine, fai clic sul nome del cluster del pool di nodi che vuoi ispezionare.
Fai clic sulla scheda Nodi.
In Node pool, fai clic sul nome del pool di nodi che vuoi ispezionare.
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
Vai alla pagina Google Kubernetes Engine nella Google Cloud console.
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
Fai clic sulla scheda Nodi.
In Node pool, fai clic sul nome del pool di nodi che vuoi modificare.
Nella pagina Dettagli del node pool, 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 località Compute Engine del piano di controllo del cluster. Specifica una regione per i cluster regionali o una zona per i cluster a livello di zona.
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:
Elenca le operazioni:
gcloud container operations list --location=CONTROL_PLANE_LOCATIONSostituisci
CONTROL_PLANE_LOCATIONcon la località Compute Engine del piano di controllo del cluster. Specifica una regione per i cluster regionali o una zona per i cluster a livello di zona.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_LOCATIONSostituisci
OPERATION_NAMEcon 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.