Quando è necessario riparare o gestire i nodi, devi prima attivare i nodi in 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à manutenzione, puoi lavorare sui nodi senza correre il rischio di interrompere il traffico dei pod.
I cluster Anthos su Bare Metal consentono di attivare i nodi in modalità di manutenzione. Questo approccio consente ad 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 ulteriori pod e i pod esistenti vengono arrestati.
Anziché utilizzare la modalità di manutenzione, puoi utilizzare manualmente i comandi di Kubernetes, come kubectl cordon
e kubectl drain
, su un nodo specifico. Se esegui i cluster Anthos su Bare Metal versione 1.12.0 (anthosBareMetalVersion: 1.12.0
) o precedente, consulta il problema noto su Nodi non contrassegnati se non utilizzi la procedura della modalità di manutenzione.
Scegli i nodi che vuoi attivare in modalità di manutenzione specificando gli intervalli IP per i nodi selezionati in maintenanceBlocks
nel file di configurazione del cluster. I nodi che scegli devono essere in uno stato pronto e funzionanti nel cluster.
Per attivare la modalità di manutenzione per i 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 che vuoi mettere in modalità di manutenzione.Il seguente esempio 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.
I cluster Anthos su Bare Metal avviano la modalità di manutenzione dei nodi.
Esegui il comando seguente per ottenere lo stato dei nodi nel cluster:
kubectl get nodes -n CLUSTER_NAME
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,SchedulingDisabled <none> 2d22h v1.17.8-gke.16 user-anthos-baremetal-06 Ready <none> 2d22h v1.17.8-gke.16
Lo stato
SchedulingDisabled
indica che un nodo è in modalità di manutenzione.Esegui il comando seguente per ottenere il numero di nodi in modalità di manutenzione:
kubectl get nodepools
La risposta dovrebbe essere simile al seguente output:
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
Per rimuovere i nodi dalla modalità di manutenzione:
Modifica il file di configurazione del cluster per cancellare i nodi che vuoi 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 tutte le operazioni dalla modalità di manutenzione.Salva e applica la configurazione del cluster aggiornata.
Utilizza i comandi
kubectl
per controllare lo stato dei nodi.