Ayude a mejorar esta página
¿Quiere contribuir a esta guía del usuario? Desplácese hasta el final de esta página y seleccione Editar esta página en GitHub. Sus contribuciones ayudarán a que nuestra guía del usuario sea mejor para todos.
Enrutamiento del tráfico de internet con el controlador del equilibrador de carga de AWS
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
Antes de implementar el controlador, recomendamos que consulte los requisitos previos y las consideraciones en Dirección de la aplicación y el tráfico de HTTP con Application Load Balancers y Dirección del tráfico de TCP y UDP con Network Load Balancers. En esos temas, implementará una aplicación de muestra que incluye un equilibrador de carga de AWS.
Instalación del controlador
Puede utilizar uno de los siguientes procedimientos para instalar AWS Load Balancer Controller:
-
Si es la primera vez que utiliza Amazon EKS, le recomendamos que utilice Helm para la instalación, ya que simplifica la instalación de AWS Load Balancer Controller. Para obtener más información, consulte Instale AWS Load Balancer Controller con Helm.
-
Para configuraciones avanzadas, como clústeres con acceso de red restringido a los registros de contenedores públicos, utilice los manifiestos de Kubernetes. Para obtener más información, consulte Instalación de AWS Load Balancer Controller con manifiestos.
Migración desde versiones de controlador obsoletas
-
Si tiene versiones obsoletas del AWS Load Balancer Controller instaladas, obtenga información sobre cómo Migración de aplicaciones desde el Ingress Controller de AWS 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 tradicionalenableServiceMutatorWebhook
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.