Quando hai bisogno di riparare o mantenere i nodi, devi prima attivare la modalità di manutenzione. Se metti i nodi in modalità di manutenzione, i pod/carico di lavoro vengono svuotati in modo sicuro ed esclusi i nodi dalla pianificazione dei pod. In modalità di manutenzione, puoi lavorare sui nodi senza il rischio di interrompere il traffico dei pod.
Come funziona
Cluster Anthos on bare metal offre un modo per mettere i nodi in modalità di manutenzione. Questo approccio consente agli altri componenti del cluster di sapere correttamente che il nodo è in modalità di manutenzione. Quando metti un nodo in modalità di manutenzione, non puoi pianificare pod aggiuntivi e i pod esistenti vengono arrestati.
Invece di utilizzare la modalità di manutenzione, puoi utilizzare manualmente i comandi Kubernetes come
kubectl cordon
e kubectl drain
su un nodo specifico. Se esegui Cluster Anthos on bare metal versione 1.12.0 (anthosBareMetalVersion: 1.12.0
) o inferiore, consulta il problema noto su Nodi senza indicatori se non utilizzi la procedura della modalità di manutenzione.
Quando utilizzi il processo della modalità di manutenzione, Cluster Anthos on bare metal effettua le seguenti operazioni:
-
vengono aggiunti ai nodi specificati per indicare che non è possibile pianificare o eseguire alcun pod sui nodi.
Viene applicato un timeout di 20 minuti per garantire che i nodi non rimangano bloccati in attesa dell'arresto dei pod. I pod potrebbero non essere arrestati se sono configurati per tollerare tutte le incompatibilità o se hanno finalisti. I cluster Anthos su Bare Metal tentano di arrestare tutti i pod, ma se il timeout viene superato, il nodo viene messo in modalità di manutenzione. Questo timeout impedisce ai pod in esecuzione di bloccare gli upgrade.
Attivare la modalità di manutenzione per un nodo
Scegli i nodi per cui vuoi attivare la modalità di manutenzione specificando gli intervalli IP per i nodi selezionati nella sezione maintenanceBlocks
del file di configurazione del cluster. I nodi scelti devono essere in stato Pronta e funzionare nel cluster.
Per attivare la modalità di manutenzione dei nodi:
Modifica il file di configurazione del cluster per selezionare i nodi che vuoi mettere in modalità di manutenzione.
Puoi modificare il file di configurazione con un editor a tua scelta oppure puoi modificare direttamente la risorsa personalizzata del cluster eseguendo il comando seguente:
kubectl -n CLUSTER_NAMESPACE edit cluster CLUSTER_NAME
Sostituisci quanto segue:
CLUSTER_NAMESPACE
: lo spazio dei nomi del cluster.CLUSTER_NAME
: il nome del cluster.
Aggiungi la sezione
maintenanceBlocks
al file di configurazione del cluster per specificare un singolo indirizzo IP o un intervallo di indirizzi per i nodi da mettere in modalità di manutenzione.L'esempio seguente mostra come selezionare più nodi specificando un intervallo di indirizzi IP:
metadata: name: my-cluster namespace: cluster-my-cluster spec: maintenanceBlocks: cidrBlocks: - 172.16.128.1-172.16.128.64
Salva e applica la configurazione del cluster aggiornata.
Cluster Anthos on bare metal inizia a inserire i nodi in modalità manutenzione.
Esegui questo comando per ottenere lo stato dei nodi nel tuo cluster:
kubectl get nodes --kubeconfig=KUBECONFIG
La risposta è simile alla seguente:
NAME STATUS ROLES AGE VERSION user-anthos-baremetal-01 Ready master 2d22h v1.17.8-gke.16 user-anthos-baremetal-04 Ready <none> 2d22h v1.17.8-gke.16 user-anthos-baremetal-05 Ready <none> 2d22h v1.17.8-gke.16 user-anthos-baremetal-06 Ready <none> 2d22h v1.17.8-gke.16
Tieni presente che i nodi sono ancora pianificabili, ma le incompatibilità impediscono di pianificare eventuali pod (senza una tolleranza appropriata) sul nodo.
Esegui questo comando per ottenere il numero di nodi in modalità manutenzione:
kubectl get nodepools
La risposta dovrebbe essere simile alla seguente:
NAME READY RECONCILING STALLED UNDERMAINTENANCE UNKNOWN np1 3 0 0 1 0
La colonna
UNDERMAINTENANCE
in questo esempio mostra che un nodo è in modalità di manutenzione.I cluster Anthos su Bare Metal aggiungono anche le seguenti incompatibilità ai nodi quando vengono messi in modalità di manutenzione:
baremetal.cluster.gke.io/maintenance:NoExecute
baremetal.cluster.gke.io/maintenance:NoSchedule
Rimuovi un nodo dalla modalità di manutenzione
Per rimuovere i nodi dalla modalità di manutenzione:
Modifica il file di configurazione del cluster per cancellare i nodi da rimuovere dalla modalità di manutenzione.
Puoi modificare il file di configurazione con un editor a tua scelta oppure puoi modificare direttamente la risorsa personalizzata del cluster eseguendo il comando seguente:
kubectl -n CLUSTER_NAMESPACE edit cluster CLUSTER_NAME
Sostituisci quanto segue:
CLUSTER_NAMESPACE
: lo spazio dei nomi del cluster.CLUSTER_NAME
: il nome del cluster.
Modifica gli indirizzi IP per rimuovere nodi specifici dalla modalità di manutenzione o rimuovi la sezione
maintenanceBlocks
per rimuovere tutto dalla modalità di manutenzione.Salva e applica la configurazione del cluster aggiornata.
Usa i comandi
kubectl
per controllare lo stato dei tuoi nodi.