Reimposta i nodi ed elimina i cluster

Quando un cluster Google Distributed Cloud è in procinto di essere installati, programmi binari systemd vengono installati sui nodi che ospitano quel cluster e iniziano a resta in ascolto delle porte sui nodi.

Tuttavia, se l'installazione di un cluster non va a buon fine, tutti questi programmi binari e servizi avranno bisogno l'eliminazione. In altre parole, i nodi devono essere reimpostati o cancellati a un nuovo tentativo di installazione del cluster. Se i nodi non vengono reimpostati in questo modo, il successivo tentativo di installare un cluster su di essi non va a buon fine.

In questa pagina viene descritto come eseguire questa operazione di pulizia di nodi specifici e per eliminare un cluster.

Scegli un metodo di eliminazione

Il metodo che utilizzi per eliminare un cluster dipende da:

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

Google Distributed Cloud fornisce i seguenti metodi di eliminazione:

  • Console Google Cloud o Google Cloud CLI:

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

      • Il cluster è stato creato nella console Google Cloud o utilizzando 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.
    • Usa bmctl reset per eliminare i seguenti tipi di cluster:

      • Cluster di amministrazione, ibridi e autonomi (indicati come 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 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 del cluster, devi usare il flag per specificare la directory di lavoro durante la reimpostazione del cluster.

  • kubectl:

    • Utilizza kubectl delete cluster per eliminare solo i cluster utente che non sono gestite dai cluster dell'API GKE On-Prem. Non eseguire il comando su altri tipi di cluster Kubernetes.
    • Tieni presente che se utilizzi kubectl delete cluster, devi eliminare anche in cui si trova il cluster dopo che lo hai eliminato.

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

Elimina i cluster autogestiti

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

bmctl reset --cluster CLUSTER_NAME

Nel comando, sostituisci CLUSTER_NAME con il nome del 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 anche membri del flotta.

Per i cluster di amministrazione gestiti dall'API GKE On-Prem, devi eliminare anche di risorse API in Google Cloud. In caso contrario, il cluster verrà visualizzato Cluster GKE nella console Google Cloud. Utilizza il comando seguente per eliminare Risorse 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 era membro il cluster di amministrazione.

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

Il flag --ignore-errors assicura che l'annullamento della registrazione di un amministratore bare metal risorsa cluster riesce anche se si verificano errori durante l'annullamento della registrazione.

Al termine dell'eliminazione del cluster, puoi crearne uno nuovo. Per maggiori dettagli, consulta Panoramica della creazione del cluster.

Elimina cluster utente

Se il cluster utente è gestito dall'API GKE On-Prem, elimina il cluster utilizzando la console o gcloud CLI. Altrimenti, usa bmctl o kubectl per eliminare il cluster.

bmctl

Puoi utilizzare bmctl per eliminare i cluster utente creati con bmctl o kubectl, che non sono registrate nell'API GKE On-Prem.

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 il tuo ambiente:

  • USER_CLUSTER_NAME: il nome del cluster utente che stai l'eliminazione.

  • ADMIN_KUBECONFIG_PATH: il percorso dell'elemento associato kubeconfig del cluster di amministrazione. 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, che non sono registrate 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, non sarà possibile creare job per reimpostare le macchine, e il processo di eliminazione potrebbe essere bloccato a tempo indeterminato.

Per eliminare un cluster utente con kubectl:

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

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

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

    • USER_CLUSTER_NAME: il nome del cluster utente che stai l'eliminazione.

    • USER_CLUSTER_NAMESPACE: lo spazio dei nomi per in un cluster Kubernetes. Per impostazione predefinita, gli spazi dei nomi del cluster per Google Distributed Cloud è il nome del cluster preceduto da cluster-. Ad esempio, se assegni al cluster il nome test, lo spazio dei nomi ha un nome simile cluster-test.

    • ADMIN_KUBECONFIG_PATH: il percorso dell'elemento associato kubeconfig del cluster di amministrazione.

  2. Dopo aver eliminato il cluster, esegui questo comando elimina 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 panoramica dei cluster Google Kubernetes Engine .

    Vai ai cluster GKE

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

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

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

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

  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 richiesta una conferma, inserisci il nome del cluster e fai clic su Rimuovi.

Interfaccia a riga di comando gcloud

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

  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 cluster corretto nome del cluster nel comando delete:

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

    Sostituisci quanto segue:

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

    • LOCATION: la località di Google Cloud associata a per il cluster utente.

    L'output è simile al seguente:

    NAME                      LOCATION    VERSION         ADMIN_CLUSTER            STATE
    example-user-cluster-1a   us-west1    1.29.200-gke.243          example-admin-cluster-1  RUNNING
    
  4. Esegui questo comando 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 che in cui è stato creato il cluster.

    • LOCATION: la località di Google Cloud associata a per il cluster utente.

    Il flag --force consente di eliminare un cluster che ha pool di nodi. Senza il flag --force, devi elimina i pool di nodi per poi eliminare il cluster.

    Il flag --allow-missing è un flag standard dell'API di Google. Quando includi questo flag, il comando restituisce "success" se il cluster non trovato.

    Se il comando restituisce un errore che contiene il testo failed connecting to the cluster's control plane, indica di connettività con il cluster di amministrazione, Agente Connect, o l'ambiente on-premise. Per risolvere i problemi relativi al Connect Agent, consulta Raccolta dei log dell'agente Connect.

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

    • Se sai che il cluster di amministrazione è stato eliminato, o se il nodo Le macchine per l'amministratore o per il cluster utente sono state arrestate o prese 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 e lascia l'API GKE On-Prem risorse in Google Cloud. Un sintomo di questo problema è che l'ammasso viene ancora visualizzata nella Cluster GKE nella console in stato non integro.

Per informazioni su altri flag, consulta Riferimento dell'interfaccia a riga di comando gcloud.

Reimposta nodi cluster specifici

Può essere utile reimpostare nodi specifici di un cluster se, ad esempio, un amministratore cluster è stato eliminato, ma i cluster utente gestiti da quel cluster di amministrazione rimanenti. In questo caso, l'intero cluster utente non può essere eliminato perché Il cluster di amministrazione è stato eliminato. Di conseguenza, i nodi dei cluster utente devono essere reimpostate singolarmente.

Per reimpostare i nodi, devi avere un account di servizio con accesso in lettura al container Google Registry (GCR). Il comando bmctl prevede il file di chiave JSON per questo servizio come argomento. Per reimpostare i singoli nodi di un cluster, esegui seguente 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 il tuo ambiente:

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

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

  • SERVICE_ACCOUNT_KEY_PATH: percorso del file JSON che contiene la chiave dell'account di servizio. Questa chiave autorizza bmctl a eseguire il pull da Google Container Registry. Puoi creare un 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 il file della chiave dell'account di servizio è eseguire Comando create config con il flag --create-service-accounts. Per dettagli sul comando, vedi Crea e amministra la configurazione del cluster con bmctl.

Dettagli eliminazione cluster

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

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

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

Per i nodi del bilanciatore del carico:

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