Clusterknoten zurücksetzen

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 zur kubeconfig-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:

  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

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-key-private-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ährt bmctl 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 Methode serviceAccounts.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 Befehl create 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 und haproxy-Dienste
  • Löscht die Konfigurationsdateien für keepalived und haproxy

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.