Fehler im Kubernetes-Controller-Manager beheben

Auf dieser Seite wird beschrieben, wie Sie Probleme mit dem Kubernetes Controller Manager (kube-controller-manager) für Google Distributed Cloud Virtual for Bare Metal beheben.

Wenn Sie weitere Unterstützung benötigen, wenden Sie sich an den Cloud Customer Care.

Leader-Wahl verloren

Dieser Fehler kann in einem regionalen Cluster oder einer replizierten Steuerungsebene auftreten, wenn kube-controller-manager (KCM) unerwartet neu gestartet wird. Dieser Neustart kann dazu führen, dass sich der Browser selbst beendet oder durch kubelet neu gestartet wird. Die KCM-Logs können leaderelection lost-Nachrichten enthalten.

Dieses Szenario kann eintreten, wenn der Leader prüft, ob er im Rahmen der KCM-Systemdiagnose noch aktiv voranschreitet.

Wenn der Leader nicht mehr anleitet oder die Freigabeprüfung fehlschlägt, meldet die Systemdiagnose als fehlerhaft und der Leader wird neu gestartet.

Der Status der Leader-Auswahl kann durch Abrufen der Lease-Ressourcen der Gruppe coordination.k8s.io abgerufen werden:

  1. Führen Sie den folgenden kubectl-Befehl aus, um alle Freigaben aufzurufen:

    kubectl -n kube-system get lease
    
  2. Verwenden Sie den folgenden kubectl describe-Befehl, um den Status einer bestimmten Freigabe, z. B. lease/kube-controller-manager, zu prüfen:

    kubectl -n kube-system describe lease/kube-controller-manager
    

    Suchen Sie im Bereich Events nach Ereignissen vom Typ LeaderElection. Sehen Sie sich an, wer die Führung übernimmt und wann. Die folgende Beispielausgabe zeigt, dass bei einem manuellen Herunterfahren des ersten Knotens sofort der zweite Knoten die Führung übernimmt:

    Events:
      Type    Reason          Age    From                     Message
      ----    ------          ----   ----                     -------
      Normal  LeaderElection  26m    kube-controller-manager  control-plane_056a86ec-84c5-48b8-b58d-86f3fde2ecdd became leader
      Normal  LeaderElection  5m20s  kube-controller-manager  control-plane2_b0475d49-7010-4f03-8a9d-34f82ed60cd4 became leader
    

    Sie können auch den Prozess des Verlierens und Erlangens von Führungsqualitäten mithilfe des Messwerts kubernetes.io/anthos/leader_election_master_status verfolgen, gruppiert nach name.

Die Wahl des Leaders findet nur statt, wenn der aktuelle Leader nicht erfolgreich ist. Sie können den Fehler prüfen, indem Sie sich die Messwerte kubernetes.io/anthos/container/uptime und kubernetes.io/anthos/container/restart_count ansehen, gefiltert nach container_name kube-controller-manager.

Wenn bei der Wahl des Leaders wiederholt Probleme auftreten oder diese nicht bestehen, lesen Sie die folgenden Überlegungen, um das Problem zu beheben:

  • Wenn KCM alle paar Minuten oder weniger neu gestartet wird, prüfen Sie die KCM-Logs auf fehlgeschlagene Anfragen an den API-Server. Fehlgeschlagene Anfragen weisen darauf hin, dass Verbindungsprobleme zwischen den Komponenten oder einem Teil des Dienstes überlastet sind.
  • Wenn der Controller-Manager zu lange nicht mit dem API-Server kommuniziert, schlägt die Verlängerung fehl und die KCM-Instanz verliert die Führungsrolle, auch wenn die Verbindung später wiederhergestellt wird.
  • Wenn die Steuerungsebene repliziert wird, sollte der neue Leader reibungslos und ohne Ausfallzeiten übernehmen. Sie müssen nichts weiter tun. Die Steuerungsebene eines Multi-Cloud- oder regionalen Clusters wird immer repliziert. Versuchen Sie nicht, die Leader-Auswahl für eine replizierte Steuerungsebene zu deaktivieren. Sie können die Leader-Auswahl nicht ohne Ausfallzeit wieder aktivieren.

Nächste Schritte

Wenn Sie weitere Unterstützung benötigen, wenden Sie sich an den Cloud Customer Care.