Nesta página, mostramos como resolver problemas com o controlador do Kubernetes
(kube-controller-manager
) do Google Distributed Cloud.
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
:
Para conferir todas as alocações, execute o seguinte comando
kubectl
:kubectl -n kube-system get lease
Para verificar o status de uma alocação, como
lease/kube-controller-manager
, use o seguinte comandokubectl describe
:kubectl -n kube-system describe lease/kube-controller-manager
Na seção
Events
, verifique se há eventosLeaderElection
. 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 porname
.
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.