Questa pagina mostra come risolvere i problemi relativi al controller manager di Kubernetes (kube-controller-manager) per Google Distributed Cloud.
Elezione del leader persa
Questo errore potrebbe essere osservato in un cluster regionale o in un control plane replicato quando kube-controller-manager (KCM) viene riavviato in modo imprevisto. Questo riavvio potrebbe comportare l'uscita automatica o il riavvio da parte di kubelet. I log di KCM potrebbero includere messaggi leaderelection lost.
Questo scenario può verificarsi quando il leader verifica se è ancora attivamente leader nell'ambito del controllo di integrità di KCM.
Se il leader non è più leader o il controllo del lease non va a buon fine, il controllo di integrità segnala che non è integro e il leader viene riavviato.
Lo stato dell'elezione del leader può essere recuperato ottenendo le risorse Lease del gruppo coordination.k8s.io:
Per visualizzare tutti i lease, esegui il seguente comando
kubectl:kubectl -n kube-system get leasePer controllare lo stato di un determinato lease, ad esempio
lease/kube-controller-manager, utilizza il seguente comandokubectl describe:kubectl -n kube-system describe lease/kube-controller-managerNella sezione
Events, controlla gli eventiLeaderElection. Esamina chi assume la leadership e quando. Il seguente output di esempio mostra che quando il primo nodo è stato arrestato manualmente, il secondo assume immediatamente la leadership: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 leaderPuoi anche osservare il processo di perdita e acquisizione della leadership utilizzando la metrica
kubernetes.io/anthos/leader_election_master_statusraggruppata pername.
Il processo di elezione del leader si verifica solo se il leader attuale non funziona. Puoi confermare l'errore esaminando le metriche kubernetes.io/anthos/container/uptime e kubernetes.io/anthos/container/restart_count filtrate in base a un container_name di kube-controller-manager.
Se riscontri problemi con l'esecuzione o l'errore ripetuti del processo di elezione del leader, esamina le seguenti considerazioni sulla correzione:
- Se KCM viene riavviato ogni pochi minuti o meno, controlla i log di KCM per le richieste non riuscite al server API. Le richieste non riuscite indicano problemi di connettività tra i componenti o che una parte del servizio è sovraccarica.
- Se il controller manager non riesce a comunicare con il server API per un periodo di tempo troppo lungo, il rinnovo non va a buon fine e l'istanza KCM perde la leadership, anche se la connessione viene ripristinata in un secondo momento.
- Se il control plane è replicato, il nuovo leader dovrebbe assumere il controllo senza tempi di inattività. Non è richiesto alcun intervento da parte tua. Il control plane di un cluster multicloud o regionale è sempre replicato. Non tentare di disattivare l'elezione del leader per un control plane replicato. Non puoi riattivare l'elezione del leader senza tempi di inattività.
Passaggi successivi
Se hai bisogno di ulteriore assistenza, contatta l'assistenza clienti Google Cloud. Puoi anche consultare la pagina Richiedere assistenza per ulteriori informazioni sulle risorse di assistenza, tra cui:
- Requisiti per l'apertura di una richiesta di assistenza.
- Strumenti per la risoluzione dei problemi, come la configurazione dell'ambiente, i log e le metriche.
- Componenti supportati.