¿Qué es el AWS Load Balancer Controller? - Amazon EKS

¿Qué es el AWS Load Balancer Controller?

El AWS Load Balancer Controller administra los equilibradores de carga elástica de AWS para un clúster de Kubernetes. Puede usar el controlador para exponer las aplicaciones del clúster a Internet. El controlador aprovisiona los equilibradores de carga de AWS que apuntan a los recursos de Service o Ingress del clúster. En otras palabras, el controlador crea una única dirección IP o nombre de DNS que apunta a varios pods del clúster.

El controlador vigila los recursos para Kubernetes Ingress o Service. En respuesta, crea los recursos adecuados de Elastic Load Balancing de AWS. Es posible configurar el comportamiento específico de los equilibradores de carga mediante la aplicación de anotaciones a los recursos de Kubernetes. Por ejemplo, puede adjuntar grupos de seguridad de AWS a los equilibradores de carga mediante anotaciones.

El controlador aprovisiona los siguientes recursos:

Kubernetes Ingress

El LBC crea un equilibrador de carga de aplicación (application load balancer, ALB) de AWS cuando se crea un Kubernetes Ingress. Revise las anotaciones que puede aplicar a un recurso de Ingress.

Servicio de Kubernetes del tipo LoadBalancer

El LBC crea un equilibrador de carga de red (network load balancer, NLB) de AWScuando se crea un servicio de Kubernetes del tipo LoadBalancer. Revise las anotaciones que puede aplicar a un recurso de Service.

En el pasado, se utilizaba el equilibrador de carga de red de Kubernetes para destinos de la instancia, pero se usaba el LBC para destinos de IP. Con la versión AWS Load Balancer Controller 2.3.0 o posterior, puede crear NLB con cualquiera de los tipos de destino. Para obtener más información acerca de los tipos de destinos del NLB, consulte Tipo de destino en la Guía del usuario para Network Load Balancers.

El controlador es un proyecto de código abierto administrado en GitHub.

Antes de implementar el controlador, recomendamos que consulte los requisitos previos y las consideraciones en Equilibrio de carga de aplicaciones en Amazon EKS y Equilibrio de carga de red en Amazon EKS. En esos temas, implementará una aplicación de muestra que incluye un equilibrador de carga de AWS.

Implemente el controlador de 🚀

Eliminación de versiones obsoletas

  • Si tiene versiones obsoletas del AWS Load Balancer Controller instaladas, obtenga información sobre cómo Migración desde un controlador obsoleto.

  • Las versiones obsoletas no se pueden actualizar. Deben eliminarse y se debe instalar una versión actual del AWS Load Balancer Controller.

  • Las versiones obsoleta incluyen lo siguiente:

    • AWSControlador de Ingress del ALB para Kubernetes («controlador de Ingress»), un predecesor del AWS Load Balancer Controller.

    • Cualquier versión 0.1.x del AWS Load Balancer Controller

Proveedor de nube heredado

Kubernetes incluye un proveedor de nube heredado para AWS. El proveedor de nube heredado es capaz de aprovisionar equilibradores de carga de AWS, similares al AWS Load Balancer Controller. El proveedor de nube heredado crea equilibradores de carga clásicos. Si no instala el AWS Load Balancer Controller, Kubernetes utilizará de forma predeterminada el proveedor de nube heredado. Debe instalar el AWS Load Balancer Controller y evitar utilizar el proveedor de nube heredado.

importante

En las versiones 2.5 y posteriores, el AWS Load Balancer Controller se convierte en el controlador predeterminado para los recursos del servicio de Kubernetes con el type: LoadBalancer y hace un Equilibrador de carga de red (NLB) de AWS para cada servicio. Para ello, crea un webhook mutante para los servicios, que establece el campo spec.loadBalancerClass para service.k8s.aws/nlb para nuevos servicios de type: LoadBalancer. Puede desactivar esta característica y volver a utilizar el proveedor de nube tradicional como controlador predeterminado, estableciendo el valor del gráfico de Helm de enableServiceMutatorWebhook a false. El clúster no aprovisionará nuevos equilibradores de carga clásicos para sus servicios a menos que desactive esta característica. Los equilibradores de carga clásicos existentes seguirán funcionando.