Risolvi i problemi del gestore del controller Kubernetes

Questa pagina mostra come risolvere i problemi relativi al gestore del controller Kubernetes (kube-controller-manager) per Google Distributed Cloud.

Se hai bisogno di ulteriore aiuto, contatta l'assistenza clienti Google 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:

  1. Per visualizzare tutti i lease, esegui questo comando kubectl:

    kubectl -n kube-system get lease
    
  2. Per controllare lo stato di un determinato lease, ad esempio lease/kube-controller-manager, utilizza il seguente comando kubectl describe:

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

    Nella sezione Events, cerca gli eventi LeaderElection. 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 per name.

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à.

Passaggi successivi

Se hai bisogno di ulteriore aiuto, contatta l'assistenza clienti Google Cloud.