Reimposta un nodo non riuscito in Google Distributed Cloud

In caso di errore dei nodi in Google Distributed Cloud, a causa di problemi di configurazione errata dello spazio di archiviazione, della rete o 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 eseguire il ripristino dagli scenari di errore dei nodi reimpostando un nodo e rimuovendolo forzatamente, se necessario.

Se vuoi aggiungere o rimuovere nodi da un cluster senza errori di un nodo, 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 è possibile eseguire i comandi di reimpostazione sui nodi, dal momento che quest'ultimo potrebbe essere irraggiungibile. Potresti dover rimuovere forzatamente il nodo dal cluster.

Quando reimposti un nodo e aggiorni il cluster in modo pulito, si verificano le seguenti azioni:

  1. Il nodo si reimposta, in modo simile a kubeadm reset, e la macchina torna allo stato preinstallato.
  2. I riferimenti correlati 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 reimpostazione (passaggio 1) devono essere ignorati. Se viene utilizzato il parametro --force, bmctl esegue solo il passaggio della rimozione (passaggio 2) e non i comandi di reimpostazione.

Rimuovi nodo worker

Per rimuovere un nodo worker da un cluster, completa i seguenti passaggi:

  1. 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 esempio 10.200.0.8,10.200.0.9.
    • CLUSTER_NAME: il nome del cluster di destinazione che contiene i nodi non riusciti.
    • ADMIN_KUBECONFIG: percorso del file kubeconfig del cluster di amministrazione.

    Se questo comando ha esito positivo, ora puoi diagnosticare il nodo e correggere eventuali configurazioni errate che hanno causato l'errore iniziale. Saltare i passaggi rimanenti in questa sezione.

  2. Se il passaggio precedente per reimpostare il nodo non va a buon fine, rimuovi forzatamente il nodo dal cluster. Questa rimozione forzata salta il passaggio precedente di reimpostazione dei comandi ed esegue solo il passaggio per rimuovere i riferimenti correlati al nodo dal pool di nodi e dalle risorse personalizzate del cluster:

    bmctl reset nodes \
        --addresses COMMA_SEPARATED_IPS \
        --cluster CLUSTER_NAME \
        --kubeconfig ADMIN_KUBECONFIG \
        --force
    

    Ora puoi diagnosticare il nodo e correggere eventuali configurazioni errate che hanno causato l'errore iniziale.

  3. 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 un singolo nodo del piano di controllo

Il processo è lo stesso dei nodi worker. Per i nodi del piano di controllo, bmctl elimina anche l'appartenenza etcd.

Il cluster smette di essere in uno stato a disponibilità elevata (HA) dopo la rimozione del nodo danneggiato. Per tornare a uno stato ad alta disponibilità, aggiungi un nodo integro al cluster.

Per rimuovere un nodo da un cluster, completa i seguenti passaggi:

  1. 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 esempio 10.200.0.8,10.200.0.9.
    • CLUSTER_NAME: il nome del cluster di destinazione che contiene i nodi non riusciti.
    • ADMIN_KUBECONFIG: percorso del file kubeconfig del cluster di amministrazione.

    Se questo comando ha esito positivo, ora puoi diagnosticare il nodo e correggere eventuali configurazioni errate che hanno causato l'errore iniziale. Saltare i passaggi rimanenti in questa sezione.

  2. Se il passaggio precedente per reimpostare il nodo non va a buon fine, puoi rimuovere forzatamente il nodo dal cluster. Questa rimozione forzata salta il passaggio precedente di esecuzione dei comandi di reimpostazione ed esegue solo il passaggio per rimuovere i riferimenti correlati al nodo dal pool di nodi e dalle risorse personalizzate del cluster:

    bmctl reset nodes \
      --addresses COMMA_SEPARATED_IPS \
      --cluster CLUSTER_NAME \
      --kubeconfig ADMIN_KUBECONFIG \
      --force
    

    Ora puoi diagnosticare il nodo e correggere eventuali configurazioni errate che hanno causato l'errore iniziale.

  3. 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 del piano di controllo in un cluster ad alta disponibilità entrano in uno stato non riuscito, il cluster perde il quorum e non è più disponibile.

Quando devi ripristinare i cluster di gestione, non fornire il file kubeconfig nei comandi di reimpostazione. 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.

  1. 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 rimane all'interno del cluster.
    • CLUSTER_NAME: il nome del cluster di destinazione che contiene i nodi non riusciti.
    • KUBECONFIG_FILE: in caso di recupero di un cluster utente, il percorso al file kubeconfig del cluster utente.
  2. Dopo aver recuperato i nodi con errori, esegui il comando bmctl reset per reimpostarli:

    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 esempio 10.200.0.8,10.200.0.9.
    • CLUSTER_NAME: il nome del cluster di destinazione che contiene i nodi non riusciti.
    • KUBECONFIG_FILE: percorso del file kubeconfig del cluster di amministrazione.

    Se i nodi guasti facevano parte dei pool di nodi del bilanciatore del carico, dopo il recupero potrebbero contendersi l'indirizzo IP virtuale del piano di controllo e rendere instabile il nuovo cluster. Esegui i comandi di reimpostazione sui nodi con errori il prima possibile, dopo aver recuperato i nodi.

Questo processo gestisce solo il ripristino di emergenza per il deployment ad alta disponibilità del piano di controllo a tre nodi. Questo processo non supporta il ripristino per le configurazioni ad alta disponibilità con almeno 5 nodi.

Passaggi successivi