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.
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:
Führen Sie den folgenden
kubectl
-Befehl aus, um alle Freigaben aufzurufen:kubectl -n kube-system get lease
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 TypLeaderElection
. 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 nachname
.
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.