Reimpostare i nodi ed eliminare i cluster

Quando un cluster Google Distributed Cloud è in fase di installazione, i file binari e i servizi systemd 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 questi file binari e servizi devono essere eliminati. In altre parole, i nodi devono essere reimpostati o cancellati completamente per prepararli a un nuovo tentativo di installazione del cluster. Se i nodi non vengono reimpostati in questo modo, il tentativo successivo di installare un cluster su di essi non riesce.

Questa pagina descrive come liberare spazio su nodi specifici e come eliminare un cluster.

Questa pagina è rivolta ad amministratori, architetti e operatori che gestiscono il ciclo di vita dell'infrastruttura tecnologica sottostante. Per saperne di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei Google Cloud contenuti, consulta Ruoli e attività comuni degli utenti GKE.

Scegliere un metodo di eliminazione

Il metodo utilizzato per eliminare un cluster dipende da:

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

Google Distributed Cloud fornisce i seguenti metodi di eliminazione:

  • La Google Cloud console o Google Cloud CLI:

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

      • Il cluster è stato creato nella Google Cloud console o utilizzando la gcloud CLI, che configura automaticamente l'API GKE On-Prem per gestire il cluster.

      • Il cluster è stato creato utilizzando bmctl, ma è stato configurato per essere gestito dall'API GKE On-Prem.

  • bmctl:

    • Utilizza bmctl reset nodes per reimpostare nodi specifici.
    • Utilizza bmctl reset per eliminare i seguenti tipi di cluster:

      • Cluster di amministrazione, ibridi e autonomi (denominati cluster autogestiti). Sono inclusi i cluster di amministrazione gestiti dall'API GKE On-Prem.
      • Cluster utente non gestiti dall'API GKE On-Prem.

    Se utilizzi bmctl per reimpostare i nodi o eliminare un cluster, il comando prevede che il file di configurazione del cluster si trovi nella directory di lavoro corrente. Per impostazione predefinita, il percorso è simile al 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 la reimpostazione del cluster.

  • kubectl:

    • Utilizza kubectl delete cluster per eliminare solo i cluster utente non gestiti dai cluster dell'API GKE 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 averlo eliminato.

Dopo aver eliminato un cluster, puoi reinstallarlo dopo aver apportato le modifiche di configurazione necessarie.

Eliminare i cluster autogestiti

Per eliminare un cluster di amministrazione, ibrido o autonomo, esegui il comando seguente:

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

Oltre a eliminare il cluster, il comando elimina l'appartenenza del cluster dal parco risorse.

Per i cluster di amministrazione gestiti dall'API GKE On-Prem, devi anche eliminare le risorse API in Google Cloud. In caso contrario, il cluster verrà visualizzato nella pagina dei cluster GKE nella Google Cloud console. Utilizza il comando seguente per eliminare le risorse dell'API GKE On-Prem per un cluster di amministrazione:

gcloud container bare-metal admin-clusters unenroll CLUSTER_NAME \
    --project=FLEET_HOST_PROJECT_ID \
    --location=REGION \
    --ignore-errors

Sostituisci quanto segue:

  • FLEET_HOST_PROJECT_ID: l'ID progetto del parco risorse di cui il cluster di amministrazione era membro.

  • REGION: La Google Cloud regione in cui l'API GKE On-Prem archivia i metadati del cluster.

Il flag --ignore-errors garantisce che l'annullamento della registrazione di una risorsa del cluster di amministrazione bare metal vada a buon fine anche se si verificano errori durante l'annullamento della registrazione.

Al termine dell'eliminazione del cluster, puoi crearne uno nuovo. Per maggiori dettagli, consulta la panoramica sulla creazione dei cluster.

Eliminare i cluster utente

Se il cluster utente è gestito dall'API GKE On-Prem, eliminalo utilizzando la console o gcloud CLI. In caso contrario, utilizza bmctl o kubectl per eliminare il cluster.

bmctl

Puoi utilizzare bmctl per eliminare i cluster utente creati con bmctl o kubectl e non registrati nell'API GKE On-Prem.

Esegui il comando seguente per eliminare un cluster utente con bmctl:

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

Nel comando, sostituisci le seguenti voci con informazioni specifiche per il tuo 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'utilizzo 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 e non registrati nell'API GKE On-Prem. Per utilizzare kubectl per eliminare un cluster utente, devi prima eliminare l'oggetto cluster, quindi il relativo spazio dei nomi. In caso contrario, i job per reimpostare le macchine non possono essere creati e il processo di eliminazione potrebbe bloccarsi a tempo indeterminato.

Per eliminare un cluster utente con kubectl:

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

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

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

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

    • USER_CLUSTER_NAMESPACE: lo spazio dei nomi del cluster. Per impostazione predefinita, gli spazi dei nomi dei cluster per Google Distributed Cloud sono il nome del cluster preceduto da cluster-. Ad esempio, se assegni al cluster il nome test, lo spazio dei nomi ha un nome come 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 GKE On-Prem, segui questi passaggi per eliminare il cluster:

  1. Nella console, vai alla pagina Panoramica dei cluster Google Kubernetes Engine.

    Vai ai cluster GKE

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

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

  4. Nell'elenco dei cluster, individua il cluster che vuoi eliminare. Se il Tipo è esterno, significa che il cluster è stato creato utilizzando bmctl e non è stato registrato nell'API GKE On-Prem. In questo caso, segui i passaggi nella scheda bmctl o kubectl per eliminare il cluster.

    Se l'icona nella colonna Stato indica un problema, segui i passaggi nella scheda gcloud CLI per eliminare il cluster. Dovrai aggiungere il flag --ignore-errors al comando di eliminazione.

  5. Fai clic sul nome del cluster che vuoi eliminare.

  6. Nel riquadro Dettagli, nella parte superiore della finestra, fai clic su Elimina.

  7. Quando ti viene chiesto di confermare, inserisci il nome del cluster e fai clic su Rimuovi.

gcloud CLI

Se il cluster utente è gestito dall'API GKE 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. Recupera un elenco di cluster per assicurarti di specificare il nome del cluster corretto nel comando di eliminazione:

    gcloud 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 Google Cloud località associata a l cluster utente.

    L'output è simile al seguente:

    NAME                      LOCATION    VERSION         ADMIN_CLUSTER            STATE
    example-user-cluster-1a   us-west1    1.35.100-gke.72          example-admin-cluster-1  RUNNING
    
  4. Esegui il comando seguente per eliminare il cluster:

    gcloud 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 Google Cloud località associata a l cluster utente.

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

    Il flag --allow-missing è un flag standard dell'API Google. Quando includi questo flag, il comando restituisce un 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 si sono verificati problemi di connettività con il cluster di amministrazione, l' agente Connect, o l'ambiente on-premise. Per risolvere i problemi relativi all' agente Connect, consulta Raccogliere i log dell'agente Connect.

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

    • Se sai che il cluster di amministrazione è stato eliminato o se le macchine dei nodi per il cluster di amministrazione o utente sono state arrestate o messe offline, includi il flag --ignore-errors e riprova a eseguire il comando.

      Devi includere anche --ignore-errors se il cluster è stato eliminato utilizzando bmctl o kubectl, che lascia le risorse dell'API GKE On-Prem in Google Cloud. Un sintomo di questo problema è che il cluster viene ancora visualizzato nella pagina dei cluster GKE nella console in uno stato non integro.

Per informazioni su altri flag, consulta la documentazione di riferimento di gcloud CLI.

Reimpostare nodi di 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 di amministrazione rimangono. In questo caso, i cluster utente nel loro complesso non possono essere eliminati perché il cluster di amministrazione è stato eliminato. Di conseguenza, i nodi dei cluster utente devono essere reimpostati singolarmente.

Per reimpostare i nodi, devi disporre di un account di servizio con accesso in lettura ad Artifact Registry. Il comando bmctl prevede il file della chiave JSON per questo account di servizio come argomento. Per reimpostare i singoli nodi di un cluster, esegui il comando seguente:

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 seguenti voci con informazioni specifiche per il tuo ambiente:

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

  • SSH_KEY_PATH: percorso della chiave privata SSH. Questa è la chiave che verrà utilizzata per stabilire connessioni SSH con i nodi durante la reimpostazione.

  • SERVICE_ACCOUNT_KEY_PATH: percorso del file JSON che contiene la chiave del account di servizio. Questa chiave concede a bmctl l'autorizzazione a estrarre le immagini da Artifact Registry. Puoi creare una chiave del service account utilizzando la console o gcloud CLI. Per maggiori dettagli, consulta Creare e gestire le account di servizio account. Un altro modo per creare il file della chiave del account di servizio è eseguire il create config comando con il --create-service-accounts flag. Per maggiori dettagli su questo comando, consulta Creare una configurazione del cluster di amministrazione con bmctl.

Dettagli sull'eliminazione del cluster

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

Per tutti i nodi, le interfacce tunnel utilizzate per la rete del cluster vengono rimosse 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 vengono eliminati.