Wenn gerade ein Anthos on Bare Metal-Cluster installiert wird, werden auf den Knoten, die diesen Cluster hosten, Binärprogramme und systemd-Dienste installiert. Außerdem warten Dienste auf die Ports auf den Knoten.
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 bestimmte 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 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 mit der gcloud CLI erstellt, die die Anthos On-Prem API automatisch für die 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. Der Pfad sieht standardmäßig so aus:bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME.yaml
Wenn Sie mit dem Flag
--workspace-dir
während der Clustererstellung ein anderes Verzeichnis angeben, müssen Sie mit dem Flag das Arbeitsverzeichnis beim Zurücksetzen des Clusters angeben.- Verwenden Sie
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 für andere Clustertypen aus. - Wenn Sie
kubectl delete cluster
verwenden, müssen Sie außerdem den Namespace löschen, in dem sich der Cluster befindet.
- Verwenden Sie
Nachdem Sie einen Cluster gelöscht haben, können Sie ihn neu installieren, nachdem Sie die erforderlichen Konfigurationsänderungen vorgenommen haben.
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 USER_CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG_PATH
Ersetzen Sie im Befehl die folgenden Einträge durch Informationen, die für Ihre Clusterumgebung spezifisch sind:
USER_CLUSTER_NAME
: der Name des Nutzerclusters, den Sie löschen möchten.ADMIN_KUBECONFIG_PATH
: der Pfad zurkubeconfig
-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 auf unbestimmte Zeit blockiert werden.
So löschen Sie einen Nutzercluster mit kubectl
:
Führen Sie den folgenden Befehl aus, um das Clusterobjekt zu löschen:
kubectl delete cluster USER_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:
USER_CLUSTER_NAME
: der Name des Nutzerclusters, den Sie löschen möchten.USER_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, demcluster-
vorangestellt ist. Wenn Sie Ihren Cluster beispielsweisetest
nennen, hat der Namespace einen Namen wiecluster-test
.ADMIN_KUBECONFIG_PATH
: der Pfad zurkubeconfig
-Datei des zugehörigen Administratorclusters.
Führen Sie nach dem erfolgreichen Löschen des Clusters den folgenden Befehl aus, um den Namespace zu löschen:
kubectl delete namespace USER_CLUSTER_NAMESPACE --kubeconfig ADMIN_KUBECONFIG_PATH
Console
Wenn der Nutzercluster von der Anthos On-Prem API verwaltet wird, führen Sie die folgenden Schritte aus, um den Cluster zu löschen:
Rufen Sie in der Console die Seite "Anthos-Cluster" auf.
Wählen Sie das Google Cloud-Projekt aus, in dem sich der Nutzercluster befindet.
Klicken Sie in der Liste der Cluster auf den Cluster, den Sie löschen möchten.
Wenn im Bereich Details der Typ Anthos (Bare Metal User) ist, führen Sie die folgenden Schritte aus, um den Cluster zu löschen:
Klicken Sie im Bereich Details auf Details ansehen.
Klicken Sie oben im Fenster auf
Löschen.Wenn Sie zur Bestätigung des Vorgangs aufgefordert werden, klicken Sie noch einmal auf Löschen.
Wenn der Typ external ist, bedeutet das, dass der Cluster mit einem Befehlszeilentool erstellt wurde und nicht von der Anthos On-Prem API verwaltet wird. Verwenden Sie in diesem Fall
bmctl
oderkubectl
, um den Cluster zu löschen.
gcloud-CLI
Wenn der Nutzercluster von der Anthos On-Prem API verwaltet wird, führen Sie die folgenden Schritte aus, um den Cluster auf einem Computer zu löschen, auf dem die gcloud CLI installiert ist:
Melde dich mit deinem Google-Konto an:
gcloud auth login
Aktualisieren Sie die Komponenten:
gcloud components update
Rufen Sie eine Liste der Cluster ab, damit Sie den richtigen Clusternamen im Löschbefehl angeben:
gcloud beta container bare-metal clusters list \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION
Ersetzen Sie Folgendes:
FLEET_HOST_PROJECT_ID
: Die ID des Projekts, in dem der Cluster erstellt wurde.LOCATION
: Der Google Cloud-Standort, der dem Nutzercluster zugeordnet ist.
Die Ausgabe sieht in etwa so aus:
NAME LOCATION VERSION ADMIN_CLUSTER STATE example-user-cluster-1a us-west1 1.13.10 example-admin-cluster-1 RUNNING
Führen Sie den folgenden Befehl aus, um den Cluster zu löschen:
gcloud beta container bare-metal clusters delete USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION \ --force \ --allow-missing
Ersetzen Sie Folgendes:
USER_CLUSTER_NAME
ist 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.
Mit dem Flag
--force
können Sie einen Cluster löschen, der Knotenpools hat. Ohne das Flag--force
müssen Sie zuerst die Knotenpools löschen und dann den Cluster löschen.Das Flag
--allow-missing
ist ein Google API-Standard-Flag. Wenn Sie dieses Flag angeben, wird der Befehl zurückgegeben, wenn der Cluster nicht gefunden wird.Wenn der Befehl einen Fehler zurückgibt, der den Text
failed connecting to the cluster's control plane
enthält, weist dies auf Verbindungsprobleme mit dem Administratorcluster, dem Connect-Agent oder der lokalen Umgebung hin.Wenn Sie der Meinung sind, dass das Verbindungsproblem vorübergehend ist, z. B. aufgrund von Netzwerkproblemen, warten Sie und versuchen Sie es noch einmal.
Wenn das Wiederholen des Befehls weiterhin fehlschlägt, finden Sie unter Connect-Agent-Logs erfassen Informationen dazu, wie Sie Probleme mit dem Connect-Agent beheben.
Wenn Sie wissen, dass der Administratorcluster gelöscht wurde, nachdem Sie den Knotencomputer für den Administrator oder den Nutzercluster heruntergefahren oder offline genommen haben, fügen Sie das Flag
--ignore-errors
hinzu und wiederholen Sie den Befehl.
Informationen zu anderen Flags 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). Für den Befehl bmctl
wird die JSON-Schlüsseldatei für dieses Dienstkonto als Argument erwartet. 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. Das ist der Schlüssel, der beim Herstellen von SSH-Verbindungen zu Knoten beim Zurücksetzen verwendet wird.SERVICE_ACCOUNT_KEY_PATH
: Pfad zur JSON-Datei, die den Dienstkontoschlüssel enthält. Dieser Schlüssel gewährtbmctl
die Berechtigung, Images aus 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 andere Möglichkeit, eine Schlüsseldatei des Dienstkontos zu erstellen, besteht darin, den Befehlcreate 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 Clusterlöschung
Während des Löschvorgangs werden die Flottenmitgliedschaftsregistrierung des Clusters, Speicherbereitstellungen und 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
undhaproxy
werden gelöscht. - Die Konfigurationsdateien für
keepalived
undhaproxy
werden gelöscht.