Reimposta i nodi ed elimina i cluster

Quando è in corso l'installazione di un cluster Anthos on bare metal, i programmi binari e i servizi di sistema vengono installati sui nodi che ospitano il cluster e i servizi iniziano ad ascoltare le porte sui nodi.

Tuttavia, se l'installazione di un cluster non riesce, tutti i programmi binari e i servizi dovranno essere eliminati. In altre parole, è necessario ripristinare o cancellare i dati dei nodi per ritentare l'installazione del cluster. Se i nodi non vengono reimpostati in questo modo, il tentativo successivo di installarvi un cluster non riesce.

Questa pagina descrive come eseguire la pulizia di nodi specifici e come eliminare un cluster.

Scegli un metodo di eliminazione

Il metodo utilizzato per eliminare un cluster dipende da:

  • Il tipo di cluster.
  • Se vuoi ripulire solo nodi specifici e non eliminare l'intero cluster.
  • Come è stato creato il cluster.

Anthos clusters on bare metal offre i seguenti metodi di eliminazione:

  • La console Google Cloud o Google Cloud CLI:

    • Utilizza la console o gcloud CLI per eliminare i cluster utente gestiti dall'API Anthos On-Prem. Un cluster utente è gestito dall'API Anthos On-Prem se si verifica una delle seguenti condizioni:

  • bmctl:

    • Usa bmctl reset nodes per reimpostare nodi specifici.
    • Utilizza bmctl reset per eliminare cluster amministrativi, ibridi e autonomi e cluster utente non gestiti dall'API Anthos On-Prem.

    Se utilizzi bmctl per reimpostare i nodi o per eliminare un cluster, il comando 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 utilizzarlo per specificare la directory di lavoro durante il ripristino del cluster.

  • kubectl:

    • Usa kubectl delete cluster per eliminare solo i cluster utente non gestiti dai cluster API Anthos On-Prem. Non eseguire il comando su altri tipi di cluster.
    • Tieni presente che se utilizzi kubectl delete cluster, devi eliminare anche lo spazio dei nomi in cui si trova il cluster dopo aver eliminato il cluster.

Dopo aver eliminato un cluster, puoi reinstallarlo dopo aver apportato eventuali modifiche alla configurazione necessarie.

Elimina i cluster autogestiti

Per eliminare un cluster amministrativo, ibrido o autonomo, esegui questo comando:

bmctl reset --cluster CLUSTER_NAME

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

L'output del comando bmctl cluster reset è simile a questo esempio:

Please check the logs at bmctl-workspace/example-cluster-1/log/reset-20221025-184705/reset.log
[2022-10-25 18:47:11+0000] Creating bootstrap cluster... OK
[2022-10-25 18:48:18+0000] Loading images... OK
[2022-10-25 18:48:18+0000] Waiting for reset jobs to finish...
[2022-10-25 18:48:28+0000] Operation reset in progress: 1       Completed: 0    Failed: 0
...
[2022-10-25 18:50:08+0000] Operation reset in progress: 0       Completed: 1    Failed: 0
[2022-10-25 18:50:08+0000] Flushing logs... OK
[2022-10-25 18:50:08+0000] Deleting GKE Hub member example-cluster-1 in project example-project-12345...
[2022-10-25 18:50:11+0000] Successfully deleted GKE Hub member example-cluster-1 in project example-project-12345
[2022-10-25 18:50:11+0000] Deleting bootstrap cluster... OK

Al termine dell'eliminazione del cluster, puoi creare un nuovo cluster. Per i dettagli, consulta la panoramica della creazione del cluster.

Elimina cluster utente

bmctl

Puoi utilizzare bmctl per eliminare i cluster utente creati con bmctl o kubectl.

Esegui questo comando per eliminare un cluster utente con bmctl:

bmctl reset --cluster USER_CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG_PATH

Nel comando, sostituisci le voci seguenti con informazioni specifiche per l'ambiente:

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

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

L'output del comando bmctl cluster reset è simile a questo esempio:

Please check the logs at bmctl-workspace/example-cluster-1/log/reset-20221025-184705/reset.log
[2022-10-25 18:47:11+0000] Creating bootstrap cluster... OK
[2022-10-25 18:48:18+0000] Loading images... OK
[2022-10-25 18:48:18+0000] Waiting for reset jobs to finish...
[2022-10-25 18:48:28+0000] Operation reset in progress: 1       Completed: 0    Failed: 0
...
[2022-10-25 18:50:08+0000] Operation reset in progress: 0       Completed: 1    Failed: 0
[2022-10-25 18:50:08+0000] Flushing logs... OK
[2022-10-25 18:50:08+0000] Deleting GKE Hub member example-cluster-1 in project example-project-12345...
[2022-10-25 18:50:11+0000] Successfully deleted GKE Hub member example-cluster-1 in project example-project-12345
[2022-10-25 18:50:11+0000] Deleting bootstrap cluster... OK

kubectl

Puoi utilizzare kubectl per eliminare i cluster utente creati con bmctl o kubectl. Per utilizzare kubectl per eliminare un cluster utente, devi prima eliminare l'oggetto cluster e poi lo spazio dei nomi. In caso contrario, non è possibile creare i job di reset delle macchine e il processo di eliminazione potrebbe essere bloccato a tempo indeterminato.

Per eliminare un cluster utente con un kubectl:

  1. Esegui questo comando per eliminare l'oggetto del cluster:

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

    Nel comando, sostituisci le voci seguenti con informazioni specifiche per l'ambiente:

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

    • USER_CLUSTER_NAMESPACE: lo spazio dei nomi per il cluster. Per impostazione predefinita, gli spazi dei nomi dei cluster per Anthos clusters on bare metal sono i nomi dei cluster preceduti da cluster-. Ad esempio, se assegni al tuo cluster il nome test, lo spazio dei nomi ha un nome simile a 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 USER_CLUSTER_NAMESPACE --kubeconfig ADMIN_KUBECONFIG_PATH

Console

Se il cluster utente è gestito dall'API Anthos On-Prem, segui questi passaggi per eliminare il cluster:

  1. Nella console, vai alla pagina Cluster Anthos.

    Vai a Cluster Anthos di Anthos

  2. Seleziona il progetto Google Cloud in cui si trova il cluster utente.

  3. Nell'elenco dei cluster, fai clic sul cluster che vuoi eliminare.

  4. Nel riquadro Dettagli, se il Tipo è Anthos (Utente Bare Metal) per eliminare il cluster:

    1. Nel riquadro Dettagli, fai clic su Visualizza dettagli.

    2. Nella parte superiore della finestra, fai clic su Elimina.

    3. Quando ti viene chiesto di confermare, fai di nuovo clic su Elimina.

    Se il Type è external, significa che il cluster è stato creato utilizzando uno strumento a riga di comando e che non è gestito dall'API Anthos On-Prem. In questo caso, utilizza bmctl o kubectl per eliminare il cluster.

Interfaccia a riga di comando gcloud

Se il cluster utente è gestito dall'API Anthos On-Prem, segui questi passaggi per eliminare il cluster su un computer su cui è installato gcloud CLI:

  1. Accedi con il tuo Account Google:

    gcloud auth login
    
  2. Aggiorna i componenti:

    gcloud components update
    
  3. Ottieni un elenco di cluster per assicurarti di specificare il nome del cluster corretto nel comando delete:

    gcloud beta container bare-metal clusters list \
      --project=FLEET_HOST_PROJECT_ID \
      --location=LOCATION
    

    Sostituisci quanto segue:

    • FLEET_HOST_PROJECT_ID: l'ID del progetto in cui è stato creato il cluster.

    • LOCATION: la località di Google Cloud associata al cluster utente.

    L'output è simile al seguente:

    NAME                      LOCATION    VERSION         ADMIN_CLUSTER            STATE
    example-user-cluster-1a   us-west1    1.13.10          example-admin-cluster-1  RUNNING
    
  4. Esegui questo comando per eliminare il cluster:

    gcloud beta container bare-metal clusters delete USER_CLUSTER_NAME \
      --project=FLEET_HOST_PROJECT_ID \
      --location=LOCATION \
      --force \
      --allow-missing
    

    Sostituisci quanto segue:

    • USER_CLUSTER_NAME: il nome del cluster utente da eliminare.

    • FLEET_HOST_PROJECT_ID: l'ID del progetto in cui è stato creato il cluster.

    • LOCATION: la località di Google Cloud associata al cluster utente.

    Il flag --force consente di eliminare un cluster con pool di nodi. Senza il flag --force, devi prima eliminare i pool di nodi e quindi eliminare il cluster.

    Il flag --allow-missing è un flag standard delle API di Google. Quando includi questo flag, il comando restituisce esito positivo se il cluster non viene trovato.

    Se il comando restituisce un errore contenente il testo failed connecting to the cluster's control plane, significa che i problemi di connettività con il cluster di amministrazione, l'agente di connessione o l'ambiente on-premise.

    • Se ritieni che il problema di connettività sia temporaneo, ad esempio a causa di problemi di rete, attendi e riprova il comando.

    • Se riprovare a eseguire il comando continua a non riuscire, consulta Raccogliere i log dell'agente Connect per risolvere i problemi con l'agente Connect.

    • Se sai che il cluster di amministrazione è stato eliminato, se le macchine nodo dell'amministratore o del cluster utente sono state arrestate o rimosse offline, includi il flag --ignore-errors e riprova a eseguire il comando.

Per informazioni sugli altri flag, consulta il riferimento per l'interfaccia a riga di comando gcloud.

Reimposta nodi cluster specifici

Ti consigliamo di reimpostare nodi specifici di un cluster, ad esempio, se un cluster di amministrazione è stato eliminato, ma i cluster utente gestiti dal cluster di amministrazione rimangono invariati. In questo caso, non è possibile eliminare i cluster utente nel loro insieme perché il cluster di amministrazione è stato eliminato. Di conseguenza, i nodi dei cluster utente devono essere ripristinati singolarmente.

Per reimpostare i nodi, devi avere un account di servizio con accesso in lettura a Google Container Registry (GCR). Il comando bmctl prevede che venga utilizzato il file della chiave JSON per questo account di servizio. Per reimpostare i singoli nodi di un cluster, esegui questo comando:

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

Nel comando, sostituisci le voci seguenti con informazioni specifiche per l'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 alla chiave privata SSH. Questa è la chiave che verrà utilizzata per stabilire le connessioni SSH con i nodi durante il ripristino.

  • SERVICE_ACCOUNT_KEY_PATH: percorso al file JSON contenente la chiave dell'account di servizio. Questa chiave concede a bmctl l'autorizzazione per eseguire il pull delle immagini da Google Container Registry. Puoi creare una chiave dell'account di servizio utilizzando la console o gcloud CLI. Per maggiori dettagli, consulta Creazione e gestione delle chiavi degli account di servizio. Un altro modo per creare un file di chiave dell'account di servizio è eseguire il comando create config con il flag --create-service-accounts. Per maggiori dettagli sul comando, vedi Creare e gestire la configurazione del cluster con bmctl.

Dettagli sull'eliminazione dei cluster

Durante l'eliminazione, vengono eliminati la registrazione dell'appartenenza al parco risorse, il montaggio di archiviazione e i dati di anthos-system StorageClass.

Per tutti i nodi, vengono rimosse le interfacce dei tunnel utilizzate per il networking del cluster e vengono eliminate le seguenti directory:

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

Per i nodi del bilanciatore del carico:

  • I servizi keepalived e haproxy vengono eliminati.
  • I file di configurazione per keepalived e haproxy sono stati eliminati.