Fehlgeschlagenen Knoten in GKE on Bare Metal zurücksetzen

Wenn Knoten in GKE on Bare Metal ausfallen, z. B. aufgrund einer Fehlkonfiguration des Speichers, Netzwerks oder Betriebssystems, möchten Sie den Clusterzustand effizient wiederherstellen. Nachdem Sie den Clusterzustand wiederhergestellt haben, können Sie den Knotenfehler beheben.

In diesem Dokument wird beschrieben, wie Sie nach einem Knotenfehler wiederherstellen, indem Sie einen Knoten zurücksetzen und den Knoten bei Bedarf zwangsweise entfernen.

Wenn Sie Knoten unter normalen Umständen und ohne Fehler einem Cluster hinzufügen oder daraus entfernen möchten, finden Sie weitere Informationen unter Cluster aktualisieren.

Überblick

Wenn ein Knotenfehler auftritt, können Sie manchmal keine Befehle zum Zurücksetzen auf den Knoten ausführen, da der Knoten möglicherweise nicht erreichbar ist. Möglicherweise müssen Sie das Entfernen des Knotens aus dem Cluster erzwingen.

Wenn Sie einen Knoten ordnungsgemäß zurücksetzen und den Cluster aktualisieren, werden die folgenden Aktionen ausgeführt:

  1. Der Knoten wird ähnlich wie bei kubeadm reset zurückgesetzt und die Maschine wird in 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 sauber 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: 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 Fehlkonfigurationen beheben, die den anfänglichen 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. Bei dieser erzwungenen Entfernung wird der vorherige Schritt zum Zurücksetzen von Befehlen übersprungen und nur der Schritt zum Entfernen der zugehörigen Verweise auf den Knoten aus dem Knotenpool und den benutzerdefinierten Clusterressourcen wird ausgeführt:

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

    Sie können jetzt den Knoten diagnostizieren und Fehlkonfigurationen beheben, die den anfänglichen Fehler verursacht haben.

  3. Wenn Sie im vorherigen Schritt das Entfernen des Knotens aus dem Knotencluster erzwungen 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 Knotens der Steuerungsebene

Der Vorgang entspricht dem für Worker-Knoten. Bei Knoten der Steuerungsebene bereinigt bmctl auch die Mitgliedschaft etcd.

Wenn Sie einen Knoten aus einem Cluster entfernen möchten, versuchen Sie zuerst, ihn sauber 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: 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 Fehlkonfigurationen beheben, die den anfänglichen 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. Bei dieser erzwungenen Entfernung wird der vorherige Schritt zum Zurücksetzen von Befehlen übersprungen und nur der Schritt zum Entfernen der zugehörigen Verweise auf den Knoten aus dem Knotenpool und den benutzerdefinierten Clusterressourcen wird ausgeführt:

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

    Sie können jetzt den Knoten diagnostizieren und Fehlkonfigurationen beheben, die den anfänglichen Fehler verursacht haben.

  3. Wenn Sie im vorherigen Schritt das Entfernen des Knotens aus dem Knotencluster erzwungen 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
    

In Hochverfügbarkeits-Steuerungsebene verlorenes Quorum

Wenn zu viele Knoten der Steuerungsebene in einem Cluster mit Hochverfügbarkeit einen Fehlerstatus erreichen, 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 als Teil des Clusters verbleibt
    • CLUSTER_NAME: der Name des Zielclusters, der die fehlgeschlagenen Knoten enthält.
    • KUBECONFIG_FILE: bei der Wiederherstellung eines Nutzerclusters der Pfad zur kubeconfig-Datei des Nutzerclusters.
  2. Nachdem Sie die fehlgeschlagenen Knoten wiederhergestellt haben, führen Sie 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: der Name des Zielclusters, der die fehlgeschlagenen Knoten enthält.
    • KUBECONFIG_FILE: der Pfad zur kubeconfig-Datei des Administratorclusters.

    Wenn die fehlerhaften Knoten Teil der Load-Balancer-Knotenpools wären, können 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 für die fehlgeschlagenen Knoten so schnell wie möglich nach der Wiederherstellung der Knoten aus.

Nächste Schritte

Weitere Informationen dazu, wie Sie Knoten zu einem Cluster hinzufügen oder daraus entfernen, wenn kein Fehler auftritt, und den Knotenstatus prüfen, finden Sie unter Cluster aktualisieren.