Knoten zurücksetzen und Cluster löschen

Wenn ein Anthos on Bare Metal-Cluster installiert wird, werden Binärprogramme und systemd-Dienste auf den Knoten installiert, die diesen Cluster hosten, und Dienste beginnen, Ports auf den Knoten zu überwachen.

Wenn jedoch die Clusterinstallation fehlschlägt, müssen alle diese Binärdateien und Dienste gelöscht werden. Mit anderen Worten, die Knoten müssen zurückgesetzt oder gelöscht werden, um sie für einen erneuten Installationsversuch des Clusters vorzubereiten. Wenn Knoten nicht auf diese Weise zurückgesetzt werden, schlägt der nächste Versuch fehl, einen Cluster zu installieren.

Auf dieser Seite wird beschrieben, wie Sie dabei einen bestimmten Knoten bereinigen und einen Cluster löschen.

Löschmethode auswählen

Welche Methode Sie zum Löschen eines Clusters verwenden, hängt von folgenden Faktoren ab:

  • Der Clustertyp.
  • Wenn Sie nur bestimmte Knoten bereinigen und nicht den gesamten Cluster löschen möchten.
  • Wie der Cluster erstellt wurde.

Anthos-Cluster auf Bare Metal bieten die folgenden Löschmethoden:

  • In der Google Cloud Console oder der Google Cloud CLI:

    • Verwenden Sie die Console oder die gcloud CLI, um Nutzercluster zu löschen, die von der Anthos On-Prem API verwaltet werden. Ein Nutzercluster wird von der Anthos On-Prem API verwaltet, wenn eine der folgenden Bedingungen zutrifft:

      • Der Cluster wurde in der Google Cloud Console oder mithilfe der gcloud CLI erstellt, die die Anthos On-Prem API automatisch zur Verwaltung des Clusters konfiguriert.

      • Der Cluster wurde mit bmctl erstellt, aber für die Verwaltung durch die Anthos On-Prem API konfiguriert.

  • bmctl:

    • Verwenden Sie bmctl reset nodes, um bestimmte Knoten zurückzusetzen.
    • Verwenden Sie bmctl reset, um Administrator-, Hybrid- und eigenständige Cluster und Nutzercluster zu löschen, die nicht von der Anthos On-Prem API verwaltet werden.

    Wenn Sie bmctl verwenden, um Knoten zurückzusetzen oder einen Cluster zu löschen, erwartet der Befehl, dass sich die Clusterkonfigurationsdatei im aktuellen Arbeitsverzeichnis befindet. Standardmäßig sieht der Pfad so aus:

    bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME.yaml

    Wenn Sie das Flag --workspace-dir verwendet haben, um beim Erstellen des Clusters ein anderes Verzeichnis anzugeben, müssen Sie damit das Arbeitsverzeichnis beim Zurücksetzen des Clusters angeben.

  • kubectl:

    • Verwenden Sie kubectl delete cluster, um nur Nutzercluster zu löschen, die nicht von den Anthos On-Prem API-Clustern verwaltet werden. Führen Sie den Befehl nicht auf anderen Clustertypen aus.
    • Wenn Sie kubectl delete cluster verwenden, müssen Sie auch den Namespace löschen, in dem sich der Cluster befindet, nachdem Sie den Cluster gelöscht haben.

Nachdem Sie einen Cluster gelöscht haben, können Sie ihn nach erforderlichen Konfigurationsänderungen neu installieren.

Selbstverwaltete Cluster löschen

Führen Sie den folgenden Befehl aus, um einen Administrator-, Hybrid- oder eigenständigen Cluster zu löschen:

bmctl reset --cluster CLUSTER_NAME

Ersetzen Sie im Befehl CLUSTER_NAME durch den Namen des Clusters, den Sie zurücksetzen möchten.

Die Ausgabe des Befehls bmctl cluster reset sieht in etwa so aus:

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

Nachdem der Cluster gelöscht wurde, können Sie einen neuen Cluster erstellen. Weitere Informationen finden Sie unter Clustererstellung.

Nutzercluster löschen

bmctl

Sie können bmctl verwenden, um Nutzercluster zu löschen, die mit bmctl oder kubectl erstellt wurden.

Führen Sie den folgenden Befehl aus, um einen Nutzercluster mit bmctl zu löschen:

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

Ersetzen Sie im Befehl die folgenden Einträge durch Informationen, die für Ihre Clusterumgebung spezifisch sind:

  • CLUSTER_NAME: der Name des Nutzerclusters, den Sie löschen möchten.

  • ADMIN_KUBECONFIG_PATH: der Pfad zur kubeconfig-Datei des zugehörigen Administratorclusters. bmctl unterstützt die Verwendung von --kubeconfig als Alias für das Flag --admin-kubeconfig.

Die Ausgabe des Befehls bmctl cluster reset sieht in etwa so aus:

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

Sie können kubectl verwenden, um Nutzercluster zu löschen, die mit bmctl oder kubectl erstellt wurden. Wenn Sie einen Nutzercluster mit kubectl löschen möchten, müssen Sie zuerst das Clusterobjekt und dann seinen Namespace löschen. Andernfalls können die Jobs zum Zurücksetzen von Maschinen nicht erstellt werden und der Löschvorgang kann möglicherweise nicht abgeschlossen werden.

So löschen Sie einen Nutzercluster mit kubectl:

  1. Führen Sie den folgenden Befehl aus, um das Clusterobjekt zu löschen:

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

    Ersetzen Sie im Befehl die folgenden Einträge durch Informationen, die für Ihre Clusterumgebung spezifisch sind:

    • CLUSTER_NAME: der Name des Nutzerclusters, den Sie löschen möchten.

    • CLUSTER_NAMESPACE: der Namespace für den Cluster. Standardmäßig sind die Cluster-Namespaces für Anthos-Cluster auf Bare-Metal der Name des Clusters, dem cluster- vorangestellt ist. Wenn Sie Ihren Cluster beispielsweise test nennen, hat der Namespace einen Namen wie cluster-test.

    • ADMIN_KUBECONFIG_PATH: der Pfad zur kubeconfig-Datei des zugehörigen Administratorclusters.

  2. Führen Sie nach dem erfolgreichen Löschen des Clusters den folgenden Befehl aus, um den Namespace zu löschen:

    kubectl delete namespace CLUSTER_NAMESPACE --kubeconfig ADMIN_KUBECONFIG_PATH
    

Console

Wenn der Nutzercluster in der Console erstellt wurde oder für die Verwaltung durch die Anthos On-Prem API konfiguriert ist, führen Sie die folgenden Schritte aus, um den Cluster zu löschen. Wenn Sie nicht sicher sind, wie der Cluster erstellt wurde, gehen Sie so vor, um festzustellen, ob Sie den Cluster mit einem Befehlszeilentool löschen müssen.

  1. Rufen Sie in der Console die Seite "Anthos-Cluster" auf.

    Zur Seite "Anthos-Cluster"

  2. Wählen Sie das Cloud-Projekt aus, in dem sich der Nutzercluster befindet.

  3. Klicken Sie in der Liste der Cluster auf den Cluster, den Sie löschen möchten.

  4. Wenn im Bereich Details der Typ Anthos (Bare Metal User) ist, gehen Sie so vor, um den Cluster zu löschen:

    1. Klicken Sie im Bereich Details auf Details ansehen.

    2. Klicken Sie oben im Fenster auf Löschen.

    3. Wenn Sie zur Bestätigung des Vorgangs aufgefordert werden, klicken Sie noch einmal auf Löschen.

    Wenn der Typ external lautet, bedeutet dies, dass der Cluster mit einem Befehlszeilentool erstellt wurde und nicht von der Anthos On-Prem API verwaltet wird. Verwenden Sie in diesem Fall eines der Befehlszeilentools, um den Cluster zu löschen.

gcloud-CLI

Führen Sie auf einem Computer, auf dem die gcloud CLI installiert ist, folgende Schritte aus:

  1. Melden Sie sich mit Ihrem Google-Konto an:

    gcloud auth login
    
  2. Aktualisieren Sie die Komponenten:

    gcloud components update
    
  3. Rufen Sie optional eine Liste von Clustern ab, um den Namen des Clusters zu erhalten, den Sie löschen möchten.

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

    Dabei gilt:

    • FLEET_HOST_PROJECT_ID: Die ID des Projekts, in dem der Cluster erstellt wurde.

    • LOCATION: Der Google Cloud-Standort, der dem Nutzercluster zugeordnet ist.

  4. Führen Sie den folgenden Befehl aus, um den Cluster zu löschen:

    gcloud alpha container bare-metal clusters delete USER_CLUSTER_NAME \
      --project=FLEET_HOST_PROJECT_ID \
      --location=LOCATION \
      --force
    

    Dabei gilt:

    • USER_CLUSTER_NAME: Der Name des zu löschenden Nutzerclusters.

    • FLEET_HOST_PROJECT_ID: Die ID des Projekts, in dem der Cluster erstellt wurde.

    • LOCATION: Der Google Cloud-Standort, der dem Nutzercluster zugeordnet ist.

    Wenn der Cluster Knotenpools enthält, müssen Sie --force angeben oder alle Knotenpools löschen, bevor Sie den Cluster löschen.

Weitere Informationen finden Sie in der Referenz zur gcloud CLI.

Bestimmte Clusterknoten zurücksetzen

Möglicherweise möchten Sie bestimmte Knoten eines Clusters zurücksetzen, wenn beispielsweise ein Administratorcluster gelöscht wurde, aber die Nutzercluster, die von diesem Administratorcluster verwaltet werden, bestehen bleiben. In diesem Fall können die Nutzercluster als Ganzes nicht gelöscht werden, da der Administratorcluster gelöscht wurde. Daher müssen die Knoten der Nutzercluster einzeln zurückgesetzt werden.

Zum Zurücksetzen von Knoten benötigen Sie ein Dienstkonto mit Lesezugriff auf Google Container Registry (GCR). Der Befehl bmctl erwartet die JSON-Schlüsseldatei für dieses Dienstkonto als Argument. Führen Sie den folgenden Befehl aus, um einzelne Knoten eines Clusters zurückzusetzen:

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

Ersetzen Sie im Befehl die folgenden Einträge durch Informationen, die für Ihre Clusterumgebung spezifisch sind:

  • NODE_1_IP_ADDRESS , NODE_2_IP_ADDRESS: eine durch Kommas getrennte Liste von IP-Adressen der Knoten, die Sie löschen möchten.

  • SSH_KEY_PATH: Pfad zum privaten SSH-Schlüssel. Dies ist der Schlüssel, der während des Zurücksetzens für eine SSH-Verbindung zu den Knoten verwendet wird.

  • SERVICE_ACCOUNT_KEY_PATH: Pfad zur JSON-Datei, die den Dienstkontoschlüssel enthält. Dieser Schlüssel gewährt bmctl die Berechtigung, Images aus der Google Container Registry abzurufen. Sie können einen Dienstkontoschlüssel mit der Console oder der gcloud CLI erstellen. Weitere Informationen finden Sie unter Dienstkontoschlüssel erstellen und verwalten. Eine weitere Möglichkeit, die Schlüsseldatei des Dienstkontos zu erstellen, besteht darin, den Befehl create config mit dem Flag --create-service-accounts auszuführen. Weitere Informationen zu diesem Befehl finden Sie unter Clusterkonfiguration mit bmctl erstellen und verwalten.

Details zum Löschen von Clustern

Während des Löschvorgangs werden die Registrierung der Flottenmitgliedschaft, die Speicherbereitstellungen und die Daten aus dem anthos-system StorageClass gelöscht.

Für alle Knoten werden die für Clusternetzwerke verwendeten Tunnelschnittstellen entfernt und die folgenden Verzeichnisse gelöscht:

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

Für Load-Balancer-Knoten:

  • Die Dienste keepalived und haproxy werden gelöscht.
  • Die Konfigurationsdateien für keepalived und haproxy werden gelöscht.