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:
-
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]
-
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.