Direkt zum Inhalt

Wie löse ich Probleme mit der Leader-Auswahl mit dem AWS Load Balancer Controller in Amazon EKS?

Lesedauer: 2 Minute
0

Meine AWS Load Balancer Controller-Pods fallen aus und ich erhalte die Fehlermeldung „Forbidden“ in Amazon Elastic Kubernetes Service (Amazon EKS). Oder ich erhalte in den Pod-Protokollen des Load Balancer-Controllers die Fehlermeldung „problem running manager: error leader election lost“.

Lösung

Du erhältst die Fehlermeldung „Forbidden“, wenn die AWS Load Balancer-Controller-Pods ausfallen

Der Fehler Forbidden (Verboten) tritt auf, wenn die Amazon EKS-Clusterrolle aws-load-balancer-controller-role nicht über die Berechtigung verfügt, Ressourcen von coordination.k8s.io apiGroups zu leasen. Die neue eingehende Ressource funktioniert nicht wie erwartet, und Änderungen an den vorhandenen Ingress-Ressourcen werden nicht wirksam.

Du erhältst die folgende Fehlermeldung:

„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"“

Der Fehler wird kontinuierlich in die Controller-Pod-Protokolle geschrieben, und es liegen keine weiteren Fehler vor. Ein Neustart des Controller-Pads löst das Problem nicht.

Hinweis: Aktualisiere den AWS Load Balancer Controller auf Version 2.5.x. Stelle außerdem sicher, dass sich die Controller-Pods im Zustand Aktiv befinden.

Gehe wie folgt vor, um das Problem zu beheben:

  1. Füge aws-load-balancer-controller-role die folgenden Einträge hinzu:

    ...
    ...
    - apiGroups: ["coordination.k8s.io"]
      resources: [leases]
      verbs: [get, list, watch, create, patch, update]
  2. Starte den Controller-Pod neu.

Führe den folgenden Befehl aus, um Ressourcen hinzuzufügen:

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

Führe den folgenden Befehl aus, um die Bereitstellung neu zu starten:

kubectl rollout restart deployment  -n

Du erhältst im Controller-Pod-Protokoll „problem running manager: error leader election lost“

Du erhältst die Fehlermeldung problem running manager, wenn mehrere Instances desselben Controllers im Cluster aktiv sind. Bei der Leader-Auswahl wurde festgestellt, dass eine der Instances ihren Leader-Status verloren hat. Wenn mehrere Instances aktiv sind, wird erwartet, dass eine Instance ihren Leader-Status verliert. Der Mechanismus zur Leader-Auswahl stellt sicher, dass nur eine Instance bestimmte kritische Operationen durchführt. Du musst keine Maßnahmen ergreifen.

Stelle die Anzahl der Replikate von 2 bis 3 oder auf eine andere ungerade Zahl ein, um sicherzustellen, dass immer ein Leader-Pod ausgewählt wird.

AWS OFFICIALAktualisiert vor einem Jahr