Fehlgeschlagenen Knoten in Anthos-Clustern auf Bare Metal zurücksetzen

Wenn Knoten in Anthos-Clustern auf Bare Metal fehlschlagen, z. B. aufgrund von Speicher-, Netzwerk- oder Betriebssystemfehlern, sollten Sie den Clusterzustand effizient wiederherstellen. Nachdem Sie den Clusterzustand wiederhergestellt haben, können Sie den Knotenfehler beheben.

In diesem Dokument erfahren Sie, wie Sie nach einem Ausfall eines Knotens das Knoten wiederherstellen und den Knoten bei Bedarf erzwingen.

Wenn Sie einem Cluster unter normalen Umständen Knoten hinzufügen oder daraus entfernen möchten, wenn ein Knoten nicht fehlgeschlagen ist, finden Sie weitere Informationen unter Cluster aktualisieren.

Übersicht

Bei einem Knotenfehler können Sie auf den Knoten manchmal keine Reset-Befehle ausführen, da der Knoten möglicherweise nicht erreichbar ist. Möglicherweise müssen Sie den Knoten zwangsweise aus dem Cluster entfernen.

Wenn Sie einen Knoten ordnungsgemäß zurücksetzen und den Cluster aktualisieren, geschieht Folgendes:

  1. Der Knoten wird ähnlich wie kubeadm reset zurückgesetzt und der Computer wird auf den vorinstallierten Zustand zurückgesetzt.
  2. Die zugehörigen Verweise auf den Knoten werden aus dem Knotenpool und den benutzerdefinierten Clusterressourcen entfernt.

Worker-Knoten

Wenn Sie einen Knoten aus einem Cluster entfernen möchten, versuchen Sie zuerst, ihn ordnungsgemäß zu entfernen:

  1. Versuchen Sie, den Knoten ordnungsgemäß zurückzusetzen. Nachdem der Knoten zurückgesetzt wurde, wird er aus dem Cluster entfernt:

    bmctl reset nodes \
      --addresses COMMA_SEPARATED_IPS \
      --cluster CLUSTER_NAME \
      --kubeconfig ADMIN_KUBECONFIG
    

    Ersetzen Sie die folgenden Werte:

    • COMMA_SEPARATED_IP: Die IP-Adressen der zurückzusetzenden Knoten, z. B. 10.200.0.8,10.200.0.9.
    • CLUSTER_NAME ist der Name des Zielclusters, der die fehlgeschlagenen Knoten enthält.
    • ADMIN_KUBECONFIG: der Pfad zur kubeconfig-Datei des Administratorclusters.

    Sie können jetzt den Knoten diagnostizieren und Fehlerkonfigurationen beheben, die den ersten Fehler verursacht haben. Überspringen Sie die restlichen Schritte in diesem Abschnitt.

  2. Wenn der vorherige Schritt zum Zurücksetzen des Knotens fehlschlägt, können Sie den Knoten zwangsweise aus dem Cluster entfernen. Durch das erzwungene Entfernen wird der vorherige Schritt zum Zurücksetzen der Befehle übersprungen. Es wird nur der Schritt zum Entfernen der zugehörigen Verweise auf den Knoten aus dem Knotenpool und den benutzerdefinierten Clusterressourcen ausgeführt:

    bmctl reset nodes \
     --addresses COMMA_SEPARATED_IPS \
     --cluster CLUSTER_NAME \
     --kubeconfig ADMIN_KUBECONFIG \
     --force
    

    Sie können jetzt den Knoten diagnostizieren und Fehlerkonfigurationen beheben, die den ersten Fehler verursacht haben.

  3. Wenn Sie den Knoten im vorherigen Schritt dringend aus dem Knotencluster entfernt haben, führen Sie den Befehl bmctl reset noch einmal aus, um die Knoten zurückzusetzen:

    bmctl reset nodes \
      --addresses COMMA_SEPARATED_IPS \
      --cluster CLUSTER_NAME \
      --kubeconfig ADMIN_KUBECONFIG
    

Ausfall eines einzelnen Steuerungsebenenknotens

Der Prozess ist der gleiche wie für Worker-Knoten. Bei Knoten der Steuerungsebene bereinigt bmctl auch die etcd-Mitgliedschaft.

Wenn Sie einen Knoten aus einem Cluster entfernen möchten, versuchen Sie zuerst, ihn ordnungsgemäß zu entfernen:

  1. Versuchen Sie, den Knoten ordnungsgemäß zurückzusetzen. Nachdem der Knoten zurückgesetzt wurde, wird er aus dem Cluster entfernt:

    bmctl reset nodes \
      --addresses COMMA_SEPARATED_IPS \
      --cluster CLUSTER_NAME \
      --kubeconfig ADMIN_KUBECONFIG
    

    Ersetzen Sie die folgenden Werte:

    • COMMA_SEPARATED_IP: Die IP-Adressen der zurückzusetzenden Knoten, z. B. 10.200.0.8,10.200.0.9.
    • CLUSTER_NAME ist der Name des Zielclusters, der die fehlgeschlagenen Knoten enthält.
    • ADMIN_KUBECONFIG: der Pfad zur kubeconfig-Datei des Administratorclusters.

    Sie können jetzt den Knoten diagnostizieren und Fehlerkonfigurationen beheben, die den ersten Fehler verursacht haben. Überspringen Sie die restlichen Schritte in diesem Abschnitt.

  2. Wenn der vorherige Schritt zum Zurücksetzen des Knotens fehlschlägt, können Sie den Knoten zwangsweise aus dem Cluster entfernen. Durch das erzwungene Entfernen wird der vorherige Schritt zum Zurücksetzen der Befehle übersprungen. Es wird nur der Schritt zum Entfernen der zugehörigen Verweise auf den Knoten aus dem Knotenpool und den benutzerdefinierten Clusterressourcen ausgeführt:

    bmctl reset nodes \
      --addresses COMMA_SEPARATED_IPS \
      --cluster CLUSTER_NAME \
      --kubeconfig ADMIN_KUBECONFIG \
      --force
    

    Sie können jetzt den Knoten diagnostizieren und Fehlerkonfigurationen beheben, die den ersten Fehler verursacht haben.

  3. Wenn Sie den Knoten im vorherigen Schritt dringend aus dem Knotencluster entfernt haben, führen Sie den Befehl bmctl reset noch einmal aus, um die Knoten zurückzusetzen:

    bmctl reset nodes \
      --addresses COMMA_SEPARATED_IPS \
      --cluster CLUSTER_NAME \
      --kubeconfig ADMIN_KUBECONFIG
    

Quorum in HA-Steuerungsebene

Wenn zu viele Knoten der Steuerungsebene in einem Hochverfügbarkeitscluster einen fehlgeschlagenen Status aufweisen, verliert der Cluster das Quorum und ist nicht mehr verfügbar.

  1. Führen Sie den folgenden Befehl auf einem verbleibenden fehlerfreien Knoten aus, um einen Cluster wiederherzustellen, der das Quorum verloren hat:

    bmctl restore --control-plane-node CONTROL_PLANE_NODE \
      --cluster CLUSTER_NAME \
      [--kubeconfig KUBECONFIG_FILE]
    

    Ersetzen Sie die folgenden Werte:

    • CONTROL_PLANE_NODE: Die IP-Adressen eines fehlerfreien Knotens, der Teil des Clusters ist.
    • CLUSTER_NAME ist der Name des Zielclusters, der die fehlgeschlagenen Knoten enthält.
    • KUBECONFIG_FILE: Beim Wiederherstellen eines Nutzerclusters der Pfad zur kubeconfig-Datei des Nutzerclusters.
  2. Führen Sie nach dem Wiederherstellen der fehlgeschlagenen Knoten den Befehl bmctl reset aus, um die Knoten zurückzusetzen:

    bmctl reset nodes \
      --addresses COMMA_SEPARATED_IPS \
      --cluster CLUSTER_NAME \
      [--kubeconfig KUBECONFIG_FILE]
    

    Ersetzen Sie die folgenden Werte:

    • COMMA_SEPARATED_IP: Die IP-Adressen der zurückzusetzenden Knoten, z. B. 10.200.0.8,10.200.0.9.
    • CLUSTER_NAME ist der Name des Zielclusters, der die fehlgeschlagenen Knoten enthält.
    • KUBECONFIG_FILE: der Pfad zur kubeconfig-Datei des Administratorclusters.

    Wenn die fehlgeschlagenen Knoten Teil der Load-Balancer-Knotenpools waren, könnten sie nach der Wiederherstellung der Knoten um die virtuelle IP-Adresse der Steuerungsebene konkurrieren und den neuen Cluster instabil machen. Führen Sie die Befehle zum Zurücksetzen so bald wie möglich nach der Wiederherstellung der Knoten aus.

Nächste Schritte

Weitere Informationen zum Hinzufügen oder Entfernen von Knoten in einem Cluster, wenn kein Fehler vorliegt, und zum Prüfen des Knotenstatus finden Sie unter Cluster aktualisieren.