Resolver problemas do Controller Manager do Kubernetes

Nesta página, mostramos como resolver problemas com o controlador do Kubernetes (kube-controller-manager) do Google Distributed Cloud.

Se precisar de mais ajuda, entre em contato com o Cloud Customer Care.

Perda de eleição do líder

Esse erro pode ocorrer em um cluster regional ou no plano de controle replicado quando o kube-controller-manager (KCM) reinicia inesperadamente. Essa reinicialização pode envolver o encerramento ou a reinicialização do kubelet. Os registros do KCM podem incluir mensagens leaderelection lost.

Esse cenário pode ocorrer quando o líder verifica se ainda está liderando como parte da verificação de integridade do KCM.

Se o líder não estiver mais liderando ou a ocorrer um erro na verificação de alocação, a verificação informará falta de integridade e o líder será reiniciado.

O status de eleição do líder pode ser recuperado com os recursos Lease do grupo coordination.k8s.io:

  1. Para conferir todas as alocações, execute o seguinte comando kubectl:

    kubectl -n kube-system get lease
    
  2. Para verificar o status de uma alocação, como lease/kube-controller-manager, use o seguinte comando kubectl describe:

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

    Na seção Events, verifique se há eventos LeaderElection. Analise quem assume a liderança e quando isso acontece. O exemplo de saída a seguir mostra que, quando o primeiro nó é encerrado manualmente, o segundo assume a liderança instantaneamente:

    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
    

    Também é possível observar o processo de perda e ganho de liderança usando a métrica kubernetes.io/anthos/leader_election_master_status agrupada por name.

O processo de eleição do líder só acontece em caso de falha do líder atual. É possível confirmar a falha analisando as métricas kubernetes.io/anthos/container/uptime e kubernetes.io/anthos/container/restart_count filtradas por um container_name de kube-controller-manager.

Se você tiver problemas ou falhas recorrentes no processo de eleição do líder, analise as seguintes considerações de correção:

  • Se o KCM reiniciar a cada intervalo de alguns minutos ou menos, verifique se há solicitações com falha do servidor de API nos registros do KCM. As solicitações com falha indicam problemas de conectividade entre os componentes ou que parte do serviço está sobrecarregada.
  • Se o Controller Manager não se comunicar com o servidor de API por muito tempo, ocorrerá uma falha na renovação e a instância do KCM perderá a liderança, mesmo que a conexão seja restaurada depois.
  • Se o plano de controle for replicado, o novo líder deverá assumir o controle sem inatividade. Nenhuma ação é necessária. O plano de controle de um cluster multicloud ou regional é sempre replicado. Não tente desativar a eleição do líder de um plano de controle replicado. Não é possível reativar a eleição do líder sem inatividade.

A seguir

Se precisar de mais ajuda, entre em contato com o Cloud Customer Care.