Résoudre les problèmes liés au gestionnaire de contrôleurs Kubernetes

Cette page explique comment résoudre les problèmes liés au gestionnaire de contrôleurs Kubernetes (kube-controller-manager) pour Google Distributed Cloud Virtual pour Bare Metal.

Si vous avez besoin d'aide supplémentaire, contactez l'assistance Cloud Customer Care.

Élection du président 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 de l'application ou un redémarrage par kubelet. Les journaux KCM peuvent inclure des messages leaderelection lost.

Ce scénario peut se produire lorsque la variante optimale vérifie si elle est toujours en tête lors de la vérification de l'état d'état KCM.

Si la variante optimale n'est plus en tête ou si la vérification du bail échoue, la vérification de l'état est signalée comme étant non opérationnelle et l'instance dupliquée est redémarrée.

Vous pouvez récupérer l'état d'élection du responsable en récupérant les ressources Lease du groupe coordination.k8s.io:

  1. Pour afficher tous les baux, exécutez la commande kubectl suivante:

    kubectl -n kube-system get lease
    
  2. Pour vérifier l'état d'un bail donné, tel que lease/kube-controller-manager, utilisez la commande kubectl describe suivante:

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

    Dans la section Events, recherchez les événements LeaderElection. Examinez qui prend le leadership et quand cela se produit. L'exemple de résultat suivant montre que lorsque le premier nœud a été arrêté manuellement, le second prend instantanément le contrôle:

    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 prise de position en tête en utilisant la métrique kubernetes.io/anthos/leader_election_master_status regroupée par name.

Le processus d'élection du responsable actuel ne se déroule 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 en fonction du champ container_name défini sur kube-controller-manager.

Si vous rencontrez des problèmes liés à l'exécution ou à l'échec de la procédure d'élection du dirigeant à plusieurs reprises, consultez les recommandations suivantes pour y remédier:

  • Si KCM redémarre toutes les quelques minutes ou moins, recherchez les requêtes envoyées au serveur d'API ayant échoué dans les journaux KCM. Les requêtes ayant échoué indiquent que des problèmes de connectivité entre les composants ou une partie du service sont surchargés.
  • Si le gestionnaire de contrôleurs ne parvient pas à communiquer avec le serveur d'API pendant trop longtemps, le renouvellement échoue et l'instance KCM perd sa direction, même si la connexion est restaurée ultérieurement.
  • Si le plan de contrôle est répliqué, la nouvelle instance principale doit prendre le relais de manière fluide sans temps d'arrêt. 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 leader pour un plan de contrôle répliqué. Vous ne pouvez pas réactiver l'élection du responsable sans temps d'arrêt.

Étapes suivantes

Si vous avez besoin d'une aide supplémentaire, contactez Cloud Customer Care.