Questa pagina mostra come risolvere i problemi relativi al gestore del controller Kubernetes (kube-controller-manager
) per Google Distributed Cloud.
Elezioni leader perse
Questo errore potrebbe essere osservato in un cluster a livello di regione o in un piano di controllo replicato quando kube-controller-manager
(KCM) si riavvia inaspettatamente. Questo riavvio potrebbe comportare l'uscita da sé o il riavvio da parte di kubelet
. I log KCM potrebbero
includere messaggi leaderelection lost
.
Questo scenario può verificarsi quando il leader controlla se è ancora attivamente in testa nell'ambito del controllo di integrità KCM.
Se la leader non è più in testa o il controllo di leasing non va a buon fine, il controllo di integrità segnala uno stato non integro e la leader viene riavviata.
Lo stato di elezione dei leader può essere recuperato recuperando le risorse Lease
del
gruppo coordination.k8s.io
:
Per visualizzare tutti i lease, esegui questo comando
kubectl
:kubectl -n kube-system get lease
Per 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-manager
Nella sezione
Events
, cerca gli eventiLeaderElection
. Rivedi chi prende la leadership e quando succede. L'output di esempio seguente 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 leader
Puoi anche osservare il processo per perdere e acquisire una leadership utilizzando la metrica
kubernetes.io/anthos/leader_election_master_status
raggruppata pername
.
Il processo di elezione dei leader si verifica solo se quello attuale non va a buon fine. Puoi
confermare l'errore esaminando le metriche kubernetes.io/anthos/container/uptime
e
kubernetes.io/anthos/container/restart_count
filtrate in base a un valore
container_name
pari a kube-controller-manager
.
Se riscontri problemi durante il processo elettorale dei leader, se ripetutamente in corso o non va a buon fine, esamina le seguenti considerazioni per risolvere il problema:
- Se KCM si riavvia a intervalli di pochi minuti o meno, controlla i log KCM per verificare la presenza di richieste non riuscite al server API. Le richieste non riuscite indicano problemi di connettività tra i componenti o una parte del servizio sovraccaricata.
- Se il gestore del controller non riesce a comunicare con il server API per troppo tempo, il rinnovo non va a buon fine e l'istanza KCM perde la propria leadership, anche se la connessione viene ripristinata in un secondo momento.
- Se il piano di controllo viene replicato, il nuovo leader dovrebbe assumere il controllo senza tempi di inattività. Non è richiesto alcun intervento da parte tua. Il piano di controllo di un cluster multi-cloud o a livello di regione è sempre replicato. Non tentare di disattivare l'elezione leader per un piano di controllo replicato. Non puoi riattivare le elezioni dei leader senza tempi di inattività.