Saltar al contenido

¿Cómo resuelvo los problemas relacionados con la elección de líderes con el controlador del equilibrador de carga de AWS en Amazon EKS?

2 minutos de lectura
0

Mis pods del controlador del equilibrador de carga de AWS fallan y se muestra el error «Forbidden» en Amazon Elastic Kubernetes Service (Amazon EKS). O bien, se muestra el error «problem running manager: error leader election lost» en los registros del pod del controlador del equilibrador de carga.

Resolución

Se muestra el error «Forbidden» cuando fallan los pods del controlador del equilibrador de carga de AWS

El error Forbidden se produce cuando el rol de clúster aws-load-balancer-controller-role de Amazon EKS no tiene permiso para arrendar recursos de coordination.k8s.io apiGroups. El nuevo recurso de entrada no funciona según lo esperado y las modificaciones de los recursos de entrada existentes no surten efecto.

Se muestra el siguiente error:

«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"»

El error se escribe continuamente en los registros del pod del controlador y no existe ningún otro error. Reiniciar el pod del controlador no resuelve el problema.

Nota: Actualiza el controlador del equilibrador de carga de AWS a la versión 2.5.x. Además, asegúrate de que los pods del controlador estén en estado activo.

Para resolver este problema, sigue estos pasos:

  1. Agrega las siguientes entradas a aws-load-balancer-controller-role:

    ...
    ...
    - apiGroups: ["coordination.k8s.io"]
      resources: [leases]
      verbs: [get, list, watch, create, patch, update]
  2. Reinicia el pod del controlador.

Para agregar recursos, ejecuta el siguiente comando:

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

Para crear el despliegue, ejecuta el siguiente comando:

kubectl rollout restart deployment  -n

Se muestra el mensaje «problem running manager: error leader election lost» en el registro del pod del controlador

Aparece el mensaje de error problem running manager cuando hay varias instancias del mismo controlador activas en el clúster. El proceso de elección de líderes determinó que una de las instancias perdió su estado de líder. Cuando hay varias instancias activas, se espera que una instancia pierda su estado de líder. El mecanismo de elección de líderes se asegura de que solo una instancia realice operaciones críticas específicas. No es necesario que tomes medidas.

Para asegurarte de que siempre haya un pod líder elegido, establece el recuento de réplicas de 2 a 3 u otro número impar.

OFICIAL DE AWSActualizada hace un año