Attivazione della modalità di manutenzione dei nodi

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:

  1. 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.
  2. 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
    
  3. Salva e applica la configurazione del cluster aggiornata.

    I cluster Anthos su Bare Metal avviano la modalità di manutenzione dei nodi.

  4. 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.

  5. 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:

  1. 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.
  2. 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.

  3. Salva e applica la configurazione del cluster aggiornata.

  4. Utilizza i comandi kubectl per controllare lo stato dei nodi.