Passer au contenu

Comment résoudre les problèmes liés à l'élection du leader avec le contrôleur de l’équilibreur de charge AWS dans Amazon EKS ?

Lecture de 3 minute(s)
0

Mes pods Contrôleur de l’équilibreur de charge AWS échouent et le message d'erreur « Interdit » s'affiche dans Amazon Elastic Kubernetes Service (Amazon EKS). Ou bien, je reçois une erreur « Problem running manager : error leader election lost » (Problème d’exécution du gestionnaire : erreur de perte d’élection du leader) dans les journaux du pod de contrôleur de l’équilibreur de charge.

Résolution

L'erreur « Interdit » s'affiche lorsque les pods de contrôleur de l’équilibreur de charge AWS échouent

L'erreur Interdit se produit lorsque le rôle de cluster Amazon EKS aws-load-balancer-controller-role n'est pas autorisé à louer des ressources auprès des apiGroups coordination.k8s.io. La nouvelle ressource entrante ne fonctionne pas comme prévu et les modifications apportées aux ressources entrantes existantes ne prennent pas effet.

Vous recevez le message d’erreur suivant :

« E0830 08:37:41.717952 1 leaderelection.go:330] error retrieving resource lock kube-system/aws-load-balancer-controller-leader: leases.coordination.k8s.io "aws-load-balancer-controller-leader" is forbidden: User "system:serviceaccount:kube-system:aws-load-balancer-controller" cannot get resource "leases" in API group "coordination.k8s.io" in the namespace "kube-system" »

L'erreur est enregistrée en continu dans les journaux du pod de contrôleur, et aucune autre erreur n'existe. Le redémarrage du pod de contrôleur ne résout pas le problème.

Remarque : Mettez à jour le contrôleur de l’équilibreur de charge AWS vers la version 2.5.x. Assurez-vous également que les pods de contrôleur sont à l'état Actif.

Pour résoudre le problème, procédez comme suit :

  1. Ajoutez les entrées suivantes à aws-load-balancer-controller-role :

    ...
    ...
    - apiGroups: ["coordination.k8s.io"]
      resources: [leases]
      verbs: [get, list, watch, create, patch, update]
  2. Redémarrez le pod de contrôleur.

Pour ajouter des ressources, exécutez la commande suivante :

kubectl edit clusterrole aws-load-balancer-controller-role

Pour redémarrer le déploiement, exécutez la commande suivante :

kubectl rollout restart deployment  -n

Le message « problem running manager: error leader election lost » (problème d’exécution du gestionnaire : erreur de perte d’élection du leader) s'affiche dans le journal du pod de contrôleur

Le message d'erreur problème d’exécution du gestionnaire s'affiche lorsque plusieurs instances du même contrôleur sont actives dans le cluster. Le processus d'élection du leader a déterminé que l'une des instances avait perdu son statut de leader. Lorsque plusieurs instances sont actives, on s'attend à ce qu'une instance perde son statut de leader. Le mécanisme d'élection du leader garantit qu'une seule instance effectue des opérations critiques spécifiques. Aucune action de votre part n’est nécessaire.

Pour vous assurer qu'un pod leader est toujours élu, définissez le nombre de réplicas de 2 à 3 ou sur un autre nombre impair.

AWS OFFICIELA mis à jour il y a 9 mois