Solucionar problemas del gestor de controladores de Kubernetes

En esta página se muestra cómo resolver problemas con el gestor de controladores de Kubernetes (kube-controller-manager) de Google Distributed Cloud.

Se ha perdido la elección del líder

Este error puede producirse en un clúster regional o en un plano de control replicado cuando kube-controller-manager (KCM) se reinicia inesperadamente. Este reinicio puede implicar que se cierre solo o que kubelet lo reinicie. Los registros de KCM pueden incluir mensajes leaderelection lost.

Este caso se puede dar cuando el líder comprueba si sigue liderando activamente como parte de la comprobación del estado de KCM.

Si el líder ya no está liderando o la comprobación de la concesión falla, la comprobación del estado informa de que no está en buen estado y se reinicia el líder.

El estado de la elección del líder se puede obtener consultando los recursos Lease del grupo coordination.k8s.io:

  1. Para ver todos los arrendamientos, ejecuta el siguiente comando kubectl:

    kubectl -n kube-system get lease
    
  2. Para comprobar el estado de un arrendamiento concreto, como lease/kube-controller-manager, utiliza el siguiente comando kubectl describe:

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

    En la sección Events, busque eventos LeaderElection. Revisa quién toma la iniciativa y cuándo ocurre. El siguiente ejemplo de salida muestra que, cuando el primer nodo se cerró manualmente, el segundo asumió el liderazgo al instante:

    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
    

    También puedes observar el proceso de pérdida y ganancia de liderazgo mediante la métrica kubernetes.io/anthos/leader_election_master_status agrupada por name.

El proceso de elección del líder solo se lleva a cabo si el líder actual falla. Para confirmar el error, consulta las métricas kubernetes.io/anthos/container/uptime y kubernetes.io/anthos/container/restart_count filtradas por un container_name de kube-controller-manager.

Si el proceso de elección del líder se ejecuta o falla repetidamente, consulta las siguientes consideraciones para solucionar el problema:

  • Si KCM se reinicia cada pocos minutos o menos, consulta los registros de KCM para ver si hay solicitudes fallidas al servidor de la API. Las solicitudes fallidas indican problemas de conectividad entre los componentes o que parte del servicio está sobrecargada.
  • Si el gestor de controladores no puede comunicarse con el servidor de la API durante demasiado tiempo, la renovación falla y la instancia de KCM pierde su liderazgo, aunque se restaure la conexión más adelante.
  • Si el plano de control se replica, el nuevo líder debería tomar el control sin problemas y sin tiempo de inactividad. No tienes que hacer nada. El plano de control de un clúster multicloud o regional siempre se replica. No intentes inhabilitar la elección de líder en un plano de control replicado. No puedes volver a habilitar la elección de líder sin tiempo de inactividad.

Siguientes pasos

Si necesitas más ayuda, ponte en contacto con el servicio de atención al cliente de Cloud.

También puedes consultar la sección Obtener asistencia para obtener más información sobre los recursos de asistencia, incluidos los siguientes: