Cette page explique comment résoudre les problèmes liés au gestionnaire de contrôleurs Kubernetes (kube-controller-manager
) pour Google Distributed Cloud.
Élection du responsable perdue
Cette erreur peut être observée dans un cluster régional ou un plan de contrôle répliqué lorsque kube-controller-manager
(KCM) redémarre de manière inattendue. Ce redémarrage peut impliquer la fermeture ou le redémarrage de kubelet
. Les journaux KCM peuvent inclure des messages leaderelection lost
.
Ce scénario peut se produire lorsque le responsable vérifie s'il est toujours actif dans le cadre de la vérification de l'état KCM.
Si l'instance principale ne mène plus ou si la vérification du bail échoue, la vérification d'état signale qu'elle n'est plus opérationnelle et l'instance principale est redémarrée.
Le statut d'élection du responsable peut être récupéré en obtenant les ressources Lease
du groupe coordination.k8s.io
:
Pour afficher tous les baux, exécutez la commande
kubectl
suivante:kubectl -n kube-system get lease
Pour vérifier l'état d'un bail donné, tel que
lease/kube-controller-manager
, utilisez la commandekubectl describe
suivante:kubectl -n kube-system describe lease/kube-controller-manager
Dans la section
Events
, recherchez des événementsLeaderElection
. Vérifiez qui prend la direction et à quel moment. L'exemple de résultat suivant montre que lorsque le premier nœud a été arrêté manuellement, le second prend instantanément la place: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
Vous pouvez également observer le processus de perte et de recrutement de leadership en utilisant la métrique
kubernetes.io/anthos/leader_election_master_status
regroupée parname
.
Le processus d'élection du responsable ne se produit que si le responsable actuel échoue. Vous pouvez confirmer l'échec en consultant les métriques kubernetes.io/anthos/container/uptime
et kubernetes.io/anthos/container/restart_count
, filtrées par un opérateur container_name
défini sur kube-controller-manager
.
Si vous rencontrez des problèmes liés au processus d'élection du responsable, qui s'exécute ou échoue de manière répétée, consultez les points à prendre en compte pour résoudre les problèmes suivants:
- Si KCM redémarre toutes les deux ou trois minutes ou moins, consultez les journaux KCM pour détecter les requêtes ayant échoué vers le serveur d'API. Les requêtes ayant échoué indiquent des problèmes de connectivité entre les composants ou une partie du service.
- Si le gestionnaire de contrôleurs ne communique pas trop longtemps avec le serveur d'API, le renouvellement échoue et l'instance KCM perd son leadership, même si la connexion est ensuite restaurée.
- Si le plan de contrôle est répliqué, le nouveau nœud principal devrait prendre le relais sans interruption. Aucune action n'est requise. Le plan de contrôle d'un cluster multicloud ou régional est toujours répliqué. N'essayez pas de désactiver l'élection du responsable pour un plan de contrôle répliqué. Vous ne pouvez pas réactiver l'élection du responsable sans temps d'arrêt.