Wenn ein Cluster installiert wird, werden Binärdateien und systemd-Dienste auf den Knoten installiert, die diesen Cluster hosten. Dienste beginnen dann, 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.
Der Befehl bmctl reset
bereinigt die Knoten.
Sie können den Befehl bmctl reset
auf einem gesamten Cluster oder auf bestimmten Knoten eines Clusters ausführen. In diesem Dokument wird erläutert, wie der Befehl in beiden Modi ausgeführt wird.
Wenn der Befehl bmctl reset
auf einen Cluster angewendet wird, wird dieser Cluster gelöscht, da der Befehl alle Knoten in den Binärdateien und Diensten des Clusters bereinigt:
Cluster mit bmctl reset cluster
zurücksetzen
Beim Zurücksetzen eines Clusters wird er gelöscht. Nachdem der Cluster gelöscht wurde, können Sie ihn neu installieren, nachdem Sie die erforderlichen Konfigurationsänderungen vorgenommen haben.
Selbstverwaltete Cluster zurücksetzen
Führen Sie den folgenden Befehl aus, um Administrator-, Hybrid- oder eigenständige Cluster zurückzusetzen:
bmctl reset --cluster CLUSTER_NAME
Ersetzen Sie im Befehl CLUSTER_NAME
durch den Namen des Clusters, den Sie zurücksetzen möchten.
Wenn der Cluster zurückgesetzt wurde, können Sie einen neuen Cluster erstellen. Weitere Informationen finden Sie unter Clustererstellung.
Nutzercluster zurücksetzen
Sie können Nutzercluster mit dem Befehl bmctl reset
oder mit dem Befehl kubectl delete
zurücksetzen oder löschen. In beiden Fällen wird der Cluster gelöscht. Wir empfehlen, bmctl reset
zu nutzen.
Nutzercluster mit bmctl
zurücksetzen/löschen
Führen Sie den folgenden Befehl aus, um einen Nutzercluster mit bmctl
zurückzusetzen/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 zurücksetzen 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
.
Nutzercluster mit kubectl
löschen
Wenn Sie kubectl
verwenden möchten, um einen Nutzercluster zu löschen, 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 unbegrenzt hängen bleiben.
So löschen Sie einen Nutzercluster mit kubectl
:
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, 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 CLUSTER_NAMESPACE --kubeconfig ADMIN_KUBECONFIG_PATH
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.
Knoten mit dem JSON-Schlüssel des GCR-Dienstkontos zurücksetzen
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.SERVICE_ACCOUNT_KEY_PATH
: Pfad zur JSON-Datei, die den Dienstkontoschlüssel enthält. Dieser Schlüssel gewährtbmctl
die Berechtigung zum Abrufen von Images aus der Google Container Registry (GCR). Sie können einen Dienstkontoschlüssel mit der Google Cloud Console, der gcloud CLI, der MethodeserviceAccounts.keys.create()
oder einer der Clientbibliotheken erstellen. Weitere Details finden Sie unter Dienstkontoschlüssel erstellen und verwalten. Eine weitere Möglichkeit zum Erstellen der Dienstkontoschlüsseldatei besteht darin, den Befehlcreate config
mit dem Flag--create-service-accounts
auszuführen. Weitere Informationen zu diesem Befehl finden Sie unter Cluster-Konfiguration mit bmctl erstellen und verwalten.
Clusterdetails zurücksetzen
Die Ausgabe des Befehls bmctl cluster reset
sieht in etwa so aus:
bmctl reset --cluster cluster1
Creating bootstrap cluster... OK
Deleting GKE Hub member admin in project my-gcp-project...
Successfully deleted GKE Hub member admin in project my-gcp-project
Loading images... OK
Starting reset jobs...
Resetting: 1 Completed: 0 Failed: 0
...
Resetting: 0 Completed: 1 Failed: 0
Flushing logs... OK
Beim Zurücksetzen versucht bmctl
, die GKE Hub-Mitgliedschaft zu löschen und die betroffenen Knoten zu bereinigen. Beim Zurücksetzen werden auch Speicher-Deployments und Daten aus anthos-system StorageClass
gelöscht.
Für alle Knoten führt bmctl
kubeadm reset
aus, entfernt die Tunnelschnittstellen, die für Cluster-Netzwerke verwendet werden, und löscht die folgenden Verzeichnisse:
/etc/kubernetes
/etc/cni/net.d
/root/.kube
/var/lib/kubelet
Bei Load-Balancer-Knoten führt bmctl
außerdem die folgenden Aktionen aus:
- Deaktiviert
keepalived
undhaproxy
-Dienste - Löscht die Konfigurationsdateien für
keepalived
undhaproxy
Der Befehl bmctl reset
erwartet, dass sich die Clusterkonfigurationsdatei im aktuellen Arbeitsverzeichnis befindet. Der Pfad sieht standardmäßig so aus: bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME.yaml
Wenn Sie beim Erstellen des Clusters das Flag --workspace-dir
verwendet haben, um ein anderes Verzeichnis anzugeben, müssen Sie das Flag verwenden, um beim Zurücksetzen des Clusters das Arbeitsverzeichnis anzugeben.