Resolva problemas do gestor do controlador do Kubernetes

Estas páginas mostram como resolver problemas com o gestor do controlador do Kubernetes (kube-controller-manager) para o Google Distributed Cloud.

Eleição de líder perdida

Este erro pode ser observado num cluster regional ou num plano de controlo replicado quando o kube-controller-manager (KCM) é reiniciado inesperadamente. Este reinício pode envolver o encerramento automático ou o reinício por parte de kubelet. Os registos do KCM podem incluir mensagens leaderelection lost.

Este cenário pode ocorrer quando o líder verifica se ainda está a liderar ativamente como parte da verificação do estado do KCM.

Se o líder deixar de liderar ou a verificação de concessão falhar, a verificação de estado comunica que o estado não é bom e o líder é reiniciado.

Pode obter o estado da eleição de líder através dos recursos Lease do grupo coordination.k8s.io:

  1. Para ver todas as concessões, execute o seguinte comando kubectl:

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

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

    Na secção Events, verifique se existem eventos LeaderElection. Reveja quem assume a liderança e quando isso acontece. O exemplo de saída seguinte mostra que, quando o primeiro nó foi encerrado manualmente, o segundo assume instantaneamente a liderança:

    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 pode observar o processo de perda e ganho de liderança através da métrica kubernetes.io/anthos/leader_election_master_status agrupada por name.

O processo de eleição do líder só ocorre se o líder atual falhar. Pode confirmar a falha consultando 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 tiver problemas com o processo de eleição do líder a ser executado repetidamente ou a falhar, reveja as seguintes considerações de remediação:

  • Se o KCM for reiniciado a cada poucos minutos ou menos, verifique os registos do KCM quanto a pedidos falhados ao servidor da API. Os pedidos com falhas indicam problemas de conetividade entre os componentes ou que parte do serviço está sobrecarregada.
  • Se o gestor do controlador não conseguir comunicar com o servidor da API durante demasiado tempo, a renovação falha e a instância do KCM perde a respetiva liderança, mesmo que a ligação seja restaurada posteriormente.
  • Se o plano de controlo for replicado, o novo líder deve assumir o controlo sem problemas e sem tempo de inatividade. Não é necessária qualquer ação da sua parte. O plano de controlo de um cluster multinuvem ou regional é sempre replicado. Não tente desativar a eleição de líder para um plano de controlo replicado. Não pode voltar a ativar a eleição de líder sem tempo de inatividade.

O que se segue?

Se precisar de assistência adicional, contacte o apoio ao cliente do Google Cloud.

Também pode consultar o artigo Receber apoio técnico para mais informações sobre recursos de apoio técnico, incluindo o seguinte: