Aggiunta o rimozione di nodi in un cluster

Nei cluster Anthos su Bare Metal, puoi aggiungere o rimuovere i nodi in un cluster modificando le definizioni dei pool di nodi del cluster. Puoi usare il comando kubectl per modificare queste definizioni.

Esistono tre diversi tipi di pool di nodi nei cluster Anthos su Bare Metal: piano di controllo, bilanciatore del carico e pool di nodi worker. Puoi modificare i nodi del piano di controllo e del bilanciatore del carico tramite le definizioni delle risorse del cluster associate, mentre modifichi direttamente le definizioni dei pool di nodi worker.

Visualizzazione dello stato dei nodi

Puoi visualizzare lo stato dei nodi e dei rispettivi pool di nodi con il comando kubectl get.

Ad esempio, il seguente comando mostra lo stato dei pool di nodi nello spazio dei nomi del cluster my-cluster:

  kubectl -n my-cluster get nodepools.baremetal.cluster.gke.io
  

Il sistema restituisce risultati simili ai seguenti:

  NAME                    READY   RECONCILING   STALLED   UNDERMAINTENANCE   UNKNOWN
  my-cluster              3       0             0         0                  0
  my-cluster-lb           2       0             0         0                  0
  np1                     3       0             0         0                  0

Se hai bisogno di ulteriori informazioni su come diagnosticare i tuoi cluster, vedi Diagnosi e reimpostazione dei cluster.

Modifica dei nodi

La maggior parte delle modifiche ai nodi è specificata nel file di configurazione del cluster, che viene quindi applicato al cluster. Ti consigliamo di utilizzare il file di configurazione del cluster come origine principale per l'aggiornamento del cluster. Ti consigliamo di archiviare il file di configurazione in un sistema di controllo della versione per tenere traccia delle modifiche apportate ai fini della risoluzione dei problemi. Tieni presente che il comando bmctl update è supportato solo per i cluster autonomi. Per cluster di amministrazione, utente e ibridi, utilizza kubectl apply per aggiornare il cluster con le modifiche al pool di nodi.

Il file di configurazione dei cluster Anthos su Bare Metal Cluster include una sezione di intestazione con le informazioni sulle credenziali. Le voci delle credenziali e il resto del file di configurazione sono YAML validi, ma le voci delle credenziali non sono valide per la risorsa del cluster. Rimuovi le voci del percorso della chiave delle credenziali, come gcrKeyPath e sshPrivateKeyPath, prima di utilizzare kubectl apply. Utilizza bmctl update credentials per gli aggiornamenti delle credenziali.

In alternativa, puoi utilizzare kubectl edit per modificare direttamente la risorsa cluster. Ad esempio:

  kubectl edit cluster -n CLUSTER_NAMESPACE CLUSTER_NAME

Le seguenti sezioni descrivono alcune importanti differenze per l'aggiornamento di tipi di nodi specifici.

Nodi del piano di controllo e bilanciatore del carico

Le specifiche del pool di nodi del piano di controllo e del bilanciatore del carico per i cluster Anthos su Bare Metal sono speciali. Queste specifiche dichiarano e controllano le risorse del cluster critiche. L'origine canonica di queste risorse è la loro rispettiva sezione nel file di configurazione del cluster:

  • spec.controlPlane.nodePoolSpec
  • spec.LoadBalancer.nodePoolSpec

Puoi aggiungere o rimuovere i nodi del piano di controllo o del bilanciatore del carico modificando l'array di indirizzi in nodes nella sezione corrispondente del file di configurazione del cluster.

In una configurazione ad alta disponibilità (HA), è richiesto un numero dispari di pool di nodi del piano di controllo (tre o più) per stabilire un quorum per garantire che, in caso di errore di un piano di controllo, altri prenderanno il controllo. Se temporaneamente hai un numero pari di nodi durante l'aggiunta o la rimozione di nodi per la manutenzione o la sostituzione, il deployment mantiene alta disponibilità purché tu abbia un quorum sufficiente.

Nodi worker

Puoi aggiungere o rimuovere i nodi worker direttamente con il comando kubectl. I pool di nodi worker devono avere almeno un nodo desiderato.

Nell'esempio seguente, il comando elimina un pool di nodi denominato np1, dove la variabile per lo spazio dei nomi del cluster è my-cluster:

  kubectl -n my-cluster delete nodepool np1
  

Analogamente, è possibile ridimensionare i pool di nodi modificando l'array di indirizzi spec.nodes.

Tieni presente che quando rimuovi i nodi da un cluster, questi vengono innanzitutto svuotati di qualsiasi pod. I nodi non verranno rimossi dal cluster se non è possibile riprogrammare i pod su altri nodi. La rimozione dei nodi ne determina la rimozione solo dal piano di controllo; i contenuti del nodo non vengono reimpostati.

Il seguente comando kubectl edit consente di modificare e quindi eseguire il commit delle modifiche per lo spazio dei nomi del cluster my-cluster e il pool di nodi np1:

  kubectl -n my-cluster edit nodepool np1