Reimposta nodi cluster

Durante l'installazione di un cluster, i programmi binari e i servizi di sistema vengono installati sui nodi che ospitano il cluster e i servizi iniziano a essere ascoltati sulle porte dei nodi.

Tuttavia, se l'installazione di un cluster non va a buon fine, tutti i programmi binari e i servizi devono essere eliminati. In altre parole, i nodi devono essere reimpostati o cancellati i dati per prepararli a un nuovo tentativo di installazione del cluster. Se i nodi non vengono reimpostati in questo modo, il tentativo successivo di installazione di un cluster non riesce.

Il comando bmctl reset esegue questa operazione di pulizia dei nodi. Puoi eseguire il comando bmctl reset su un intero cluster o su nodi specifici di un cluster. Questo documento spiega come eseguire il comando in entrambe le modalità.

È importante notare che quando il comando bmctl reset viene applicato a un cluster, quest'ultimo viene eliminato perché cancella i nodi da tutti i programmi binari e i servizi del cluster.

Reimposta cluster con bmctl reset cluster

Il ripristino di un cluster ne comporta l'eliminazione. Dopo aver eliminato il cluster, puoi reinstallarlo dopo aver apportato eventuali modifiche alla configurazione necessarie.

Reimposta cluster autogestiti

Per reimpostare i cluster di amministrazione, ibridi o autonomi, esegui questo comando:

bmctl reset --cluster CLUSTER_NAME

Nel comando, sostituisci CLUSTER_NAME con il nome del cluster che vuoi reimpostare.

Al termine del reset del cluster, potrai crearne uno nuovo. Per maggiori dettagli, consulta la Panoramica della creazione del cluster.

Reimposta cluster utente

Puoi reimpostare o eliminare i cluster utente con il comando bmctl reset o con il comando kubectl delete. In entrambi i casi, il cluster viene eliminato. Ti consigliamo di utilizzare bmctl reset.

Utilizzo di bmctl per reimpostazione/eliminazione di un cluster utente

Esegui questo comando per reimpostare/eliminare un cluster utente con bmctl:

bmctl reset --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG_PATH

Nel comando sostituisci le seguenti voci con informazioni specifiche per il tuo ambiente:

  • CLUSTER_NAME: il nome del cluster utente che stai reimpostiando.

  • ADMIN_KUBECONFIG_PATH: il percorso del file kubeconfig del cluster di amministrazione associato. bmctl supporta l'utilizzo di --kubeconfig come alias del flag --admin-kubeconfig.

Utilizzo di kubectl per eliminare un cluster utente

Per utilizzare kubectl per eliminare un cluster utente, devi prima eliminare l'oggetto cluster e poi lo spazio dei nomi. In caso contrario, i job per reimpostare le macchine non possono essere creati e il processo di eliminazione potrebbe essere bloccato a tempo indeterminato.

Per eliminare un cluster utente con kubectl:

  1. Esegui il comando seguente per eliminare l'oggetto cluster:

    kubectl delete cluster CLUSTER_NAME -n CLUSTER_NAMESPACE \
        --kubeconfig ADMIN_KUBECONFIG_PATH

    Nel comando sostituisci le seguenti voci con informazioni specifiche per il tuo ambiente:

    • CLUSTER_NAME: il nome del cluster utente che stai eliminando.

    • CLUSTER_NAMESPACE: lo spazio dei nomi per il cluster. Per impostazione predefinita, gli spazi dei nomi dei cluster Anthos su Bare Metal sono il nome del cluster preceduto da cluster-. Ad esempio, se al tuo cluster viene assegnato il nome test, lo spazio dei nomi ha un nome cluster-test.

    • ADMIN_KUBECONFIG_PATH: il percorso del file kubeconfig del cluster di amministrazione associato.

  2. Dopo aver eliminato correttamente il cluster, esegui il comando seguente per eliminare lo spazio dei nomi:

    kubectl delete namespace CLUSTER_NAMESPACE --kubeconfig ADMIN_KUBECONFIG_PATH

Reimposta nodi cluster specifici

Potresti voler reimpostare nodi specifici di un cluster se, ad esempio, un cluster di amministrazione è stato eliminato, ma i cluster utente gestiti da quel cluster rimangono in uso. In questo caso, il cluster utente nel suo insieme non può essere eliminato poiché il cluster di amministrazione è stato eliminato. Di conseguenza, i nodi dei cluster utente devono essere reimpostati singolarmente.

Reimposta nodi utilizzando la chiave JSON dell'account di servizio GCR

Per reimpostare i singoli nodi di un cluster, esegui questo comando:

bmctl reset nodes --addresses NODE_1_IP_ADDRESS,NODE_2_IP_ADDRESS \
    --ssh-key-private-path SSH_KEY_PATH \
    --gcr-service-account-key SERVICE_ACCOUNT_KEY_PATH \
    --login-user root

Nel comando sostituisci le seguenti voci con informazioni specifiche per il tuo ambiente:

  • NODE_1_IP_ADDRESS , NODE_2_IP_ADDRESS: elenco separato da virgole di indirizzi IP dei nodi che vuoi eliminare.

  • SSH_KEY_PATH: percorso della chiave privata SSH.

  • SERVICE_ACCOUNT_KEY_PATH: percorso del file JSON contenente la chiave dell'account di servizio. Questa chiave autorizza bmctl a estrarre immagini da Google Container Registry (GCR). Puoi creare una chiave dell'account di servizio utilizzando la console Google Cloud, l'interfaccia a riga di comando gcloud, il metodo serviceAccounts.keys.create() o una delle librerie client. Per maggiori dettagli, consulta la sezione Creare e gestire le chiavi degli account di servizio. Un altro modo per creare il file delle chiavi dell'account di servizio è eseguire il comando create config con il flag --create-service-accounts. Per maggiori dettagli su quel comando, consulta Create and admin cluster config with bmctl.

Reimposta dettagli cluster

L'output del comando bmctl cluster reset è simile al seguente esempio:

bmctl reset --cluster cluster1
Creating bootstrap cluster... OK
Deleting GKE Hub member admin in project my-gcp-project...
Successfully deleted GKE Hub member admin in project my-gcp-project
Loading images... OK
Starting reset jobs...
Resetting: 1    Completed: 0    Failed: 0
...
Resetting: 0    Completed: 1    Failed: 0
Flushing logs... OK

Durante l'operazione di reimpostazione, bmctl tenta di eliminare la registrazione dell'abbonamento all'hub GKE, quindi pulisce i nodi interessati. Durante il ripristino, vengono eliminati anche i supporti di archiviazione e i dati di anthos-system StorageClass.

Per tutti i nodi, bmctl esegue kubeadm reset, rimuove le interfacce del tunnel utilizzate per il networking del cluster ed elimina le seguenti directory:

  • /etc/kubernetes
  • /etc/cni/net.d
  • /root/.kube
  • /var/lib/kubelet

Per i nodi del bilanciatore del carico, bmctl esegue anche le seguenti azioni:

  • Disattiva i servizi keepalived e haproxy.
  • Elimina i file di configurazione per keepalived e haproxy.

Il comando bmctl reset prevede che il file di configurazione del cluster si trovi nella directory di lavoro attuale. Per impostazione predefinita, il percorso è il seguente: bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME.yaml

Se hai utilizzato il flag --workspace-dir per specificare una directory diversa durante la creazione del cluster, devi utilizzare il flag per specificare la directory di lavoro durante il ripristino del cluster.