Se si verifica un errore dei nodi in Google Distributed Cloud, dovuto a problemi relativi a archiviazione, rete o configurazione errata del sistema operativo, vuoi ripristinare in modo efficiente l'integrità del cluster. Dopo aver ripristinato l'integrità del cluster, puoi risolvere l'errore del nodo. Questo documento mostra come ripristinare gli scenari di errore dei nodi ripristinando un nodo e rimuovendolo con forza, se necessario.
Se vuoi aggiungere o rimuovere nodi da un cluster quando non si sono verificati errori, consulta Aggiornare i cluster.
Se hai bisogno di ulteriore aiuto, contatta l'assistenza clienti Google Cloud.Reimposta nodi
In caso di errore del nodo, a volte non puoi eseguire comandi di reimpostazione sui nodi, poiché questi potrebbero non essere raggiungibili. Potrebbe essere necessario rimuovere forzatamente il nodo dal cluster.
Quando reimposti in modo pulito un nodo e aggiorni il cluster, si verificano le seguenti azioni:
- Il nodo viene reimpostato, in modo simile a
kubeadm reset
, e la macchina torna allo stato preinstallato. - I relativi riferimenti al nodo vengono rimossi dal pool di nodi e dalle risorse personalizzate del cluster.
In alcuni dei seguenti comandi bmctl
per reimpostare i nodi, il parametro --force
indica se i comandi di ripristino (passaggio 1) devono essere ignorati. Se
viene utilizzato il parametro --force
, bmctl
esegue soltanto il passaggio di rimozione (passaggio 2) e non i comandi di ripristino.
Rimuovi nodo worker
Per rimuovere un nodo worker da un cluster, completa i seguenti passaggi:
Prova a reimpostare il nodo in modo pulito. Dopo la reimpostazione, il nodo viene rimosso dal cluster:
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Sostituisci quanto segue:
COMMA_SEPARATED_IP
: gli indirizzi IP dei nodi da reimpostare, ad esempio10.200.0.8,10.200.0.9
.CLUSTER_NAME
: il nome del cluster di destinazione che contiene i nodi con errori.ADMIN_KUBECONFIG
: il percorso del filekubeconfig
del cluster di amministrazione.
Se il comando ha esito positivo, ora puoi diagnosticare il nodo e correggere eventuali configurazioni errate che hanno causato l'errore iniziale. Salta i passaggi rimanenti di questa sezione.
Se il passaggio precedente per reimpostare il nodo non va a buon fine, rimuovilo con forza dal cluster. Questa rimozione forzata salta il passaggio precedente che esegue i comandi di reimpostazione ed esegue solo il passaggio per rimuovere i riferimenti correlati al nodo dalle risorse personalizzate del pool di nodi e del cluster:
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG \ --force
Ora puoi eseguire la diagnosi del nodo e correggere eventuali errori di configurazione che hanno causato l'errore iniziale.
Se hai rimosso forzatamente il nodo dal cluster di nodi nel passaggio precedente, esegui di nuovo il comando
bmctl reset
per reimpostare i nodi:bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Rimuovi nodo del piano di controllo singolo
La procedura è la stessa utilizzata per i nodi worker. Per i nodi del piano di controllo, bmctl
pulisce anche l'appartenenza a etcd
.
Dopo la rimozione del nodo in errore, il cluster smette di essere in stato ad alta disponibilità. Per tornare allo stato ad alta disponibilità, aggiungi un nodo integro al cluster.
Per rimuovere un nodo da un cluster, completa i seguenti passaggi:
Prova a reimpostare il nodo in modo pulito. Dopo la reimpostazione, il nodo viene rimosso dal cluster:
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Sostituisci i seguenti valori:
COMMA_SEPARATED_IP
: gli indirizzi IP dei nodi da reimpostare, ad esempio10.200.0.8,10.200.0.9
.CLUSTER_NAME
: il nome del cluster di destinazione che contiene i nodi con errori.ADMIN_KUBECONFIG
: il percorso del filekubeconfig
del cluster di amministrazione.
Se il comando ha esito positivo, ora puoi diagnosticare il nodo e correggere eventuali configurazioni errate che hanno causato l'errore iniziale. Salta i passaggi rimanenti di questa sezione.
Se il passaggio precedente per reimpostare il nodo ha esito negativo, puoi rimuovere con forza il nodo dal cluster. Questa rimozione forzata salta il passaggio precedente che esegue i comandi di reimpostazione ed esegue solo il passaggio per rimuovere i riferimenti correlati al nodo dalle risorse personalizzate del pool di nodi e del cluster:
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG \ --force
Ora puoi eseguire la diagnosi del nodo e correggere eventuali errori di configurazione che hanno causato l'errore iniziale.
Se hai rimosso forzatamente il nodo dal cluster di nodi nel passaggio precedente, esegui di nuovo il comando
bmctl reset
per reimpostare i nodi:bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Quorum perso nel piano di controllo ad alta disponibilità
Se troppi nodi dei piani di controllo in un cluster ad alta disponibilità entrano in uno stato di errore, il cluster perde il quorum e non è più disponibile.
Quando devi ripristinare i cluster di gestione, non fornire il file kubeconfig
nei comandi di ripristino. Se fornisci il file kubeconfig
per un cluster di gestione, questo obbliga un nuovo cluster a eseguire l'operazione di reimpostazione. Quando ripristini un cluster utente, fornisci il percorso del file kubeconfig
.
Per recuperare un cluster che ha perso il quorum, esegui questo comando su un nodo integro rimanente:
bmctl restore --control-plane-node CONTROL_PLANE_NODE \ --cluster CLUSTER_NAME \ [--kubeconfig KUBECONFIG_FILE]
Sostituisci quanto segue:
CONTROL_PLANE_NODE
: gli indirizzi IP di un nodo integro che rimangono parte del cluster.CLUSTER_NAME
: il nome del cluster di destinazione che contiene i nodi con errori.KUBECONFIG_FILE
: in caso di recupero di un cluster utente, il percorso del filekubeconfig
del cluster utente.
Dopo aver recuperato i nodi con errori, esegui il comando
bmctl reset
per reimpostare i nodi:bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ [--kubeconfig KUBECONFIG_FILE]
Sostituisci quanto segue:
COMMA_SEPARATED_IP
: gli indirizzi IP dei nodi da reimpostare, ad esempio10.200.0.8,10.200.0.9
.CLUSTER_NAME
: il nome del cluster di destinazione che contiene i nodi con errori.KUBECONFIG_FILE
: il percorso del filekubeconfig
del cluster di amministrazione.
Se i nodi in errore facevano parte dei pool di nodi del bilanciatore del carico, dopo il recupero potrebbero contendere l'indirizzo IP virtuale del piano di controllo e rendere instabile il nuovo cluster. Esegui i comandi di ripristino sui nodi in errore il prima possibile dopo averli ripristinati.
Questo processo gestisce solo il ripristino di emergenza per il deployment ad alta disponibilità di un piano di controllo a tre nodi. Questo processo non supporta il ripristino per le configurazioni ad alta disponibilità con 5 o più nodi.
Passaggi successivi
Per ulteriori informazioni su come aggiungere o rimuovere nodi da un cluster in assenza di errori e controllare lo stato del nodo, consulta Aggiornare i cluster.
- Se hai bisogno di ulteriore aiuto, contatta l'assistenza clienti Google Cloud.