

 **Ayude a mejorar esta página** 

Para contribuir a esta guía del usuario, elija el enlace **Edit this page on GitHub** que se encuentra en el panel derecho de cada página.

# Enrutamiento del tráfico de internet con el controlador del equilibrador de carga de AWS
<a name="aws-load-balancer-controller"></a>

**sugerencia**  
 [Regístrese](https://aws-experience.com/emea/smb/events/series/get-hands-on-with-amazon-eks?trk=4a9b4147-2490-4c63-bc9f-f8a84b122c8c&sc_channel=el) en los próximos talleres de Amazon EKS.

El Controlador del equilibrador de carga de AWS administra los Elastic Load Balancer 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.

![Diagrama de arquitectura. Ilustración del tráfico procedente de usuarios de Internet al equilibrador de carga de Amazon. El equilibrador de carga de Amazon distribuye el tráfico a los pods del clúster.](http://docs.aws.amazon.com/es_es/eks/latest/userguide/images/lbc-overview.png)


El controlador observa los recursos de entrada o servicio de Kubernetes. En respuesta, crea los recursos adecuados de Elastic Load Balancing de AWS. Puede 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:

 **de Kubernetes `Ingress` **   
El LBC crea un [equilibrador de carga de aplicación (ALB) de AWS](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) cuando se crea una `Ingress` de Kubernetes. [Revise las anotaciones que puede aplicar a un recurso de Ingress.](https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/ingress/annotations/) 

 **Servicio de Kubernetes del tipo `LoadBalancer`**   
El LBC crea un [equilibrador de carga de red (NLB) de AWS](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) cuando crea un servicio de Kubernetes del tipo `LoadBalancer`. [Revise las anotaciones que puede aplicar a un recurso de Service.](https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/service/annotations/)   
En el pasado, se utilizaba el equilibrador de carga de red de Kubernetes para destinos de *instancia*, pero se usaba el LBC para destinos de *IP*. Con la versión `2.3.0` o posterior del Controlador del equilibrador de carga de AWS, 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](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#target-type) en la Guía del usuario para Network Load Balancers.

El controlador es un [proyecto de código abierto](https://github.com/kubernetes-sigs/aws-load-balancer-controller) administrado en GitHub.

Antes de implementar el controlador, recomendamos que revise los requisitos previos y las consideraciones que figuran en [Enrutamiento de aplicaciones y tráfico HTTP con equilibradores de carga de aplicaciones](alb-ingress.md) y [Dirija el tráfico de TCP y UDP con equilibradores de carga de red](network-load-balancing.md). En esos temas, implementará una aplicación de muestra que incluye un equilibrador de carga de AWS.

 **API de `Gateway` de Kubernetes**   
Con la versión `2.14.0` o posterior del Controlador del equilibrador de carga de AWS, el LBC crea un [Equilibrador de carga de aplicación de AWS (ALB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) al crear una `Gateway` de Kubernetes. La puerta de enlace de Kubernetes estandariza más configuraciones que Entrada, que necesitaba anotaciones personalizadas para muchas de las opciones habituales. [Revise la configuración que puede aplicar a un recurso de puerta de enlace.](https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/gateway/gateway/) Para obtener más información acerca de la API de `Gateway`, consulte [Gateway API](https://kubernetes.io/docs/concepts/services-networking/gateway/) en la documentación de Kubernetes.

## Instalación del controlador
<a name="lbc-overview"></a>

Puede utilizar uno de los siguientes procedimientos para instalar el Controlador del equilibrador de carga de AWS:
+ Si es la primera vez que utiliza Amazon EKS, le recomendamos que utilice Helm para la instalación, ya que simplifica la instalación del Controlador del equilibrador de carga de AWS. Para obtener más información, consulte [Instalación del Controlador del equilibrador de carga de AWS con Helm](lbc-helm.md).
+ 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 del Controlador del equilibrador de carga de AWS con manifiestos](lbc-manifest.md).

## Migración desde versiones de controlador obsoletas
<a name="lbc-deprecated"></a>
+ Si tiene versiones obsoletas del Controlador del equilibrador de carga de AWS instaladas, consulte [Migración de aplicaciones desde el Controlador de entrada de ALB obsoleto](lbc-remove.md).
+ Las versiones obsoletas no se pueden actualizar. Deben eliminarse y se debe instalar una versión actual del Controlador del equilibrador de carga de AWS.
+ Las versiones obsoleta incluyen lo siguiente:
  +  Controlador de entradas de ALB de AWS para Kubernetes (“Controlador de entradas”), un predecesor del Controlador del equilibrador de carga de AWS.
  + Cualquier versión `0.1.{{x}} ` del Controlador del equilibrador de carga de AWS

## Proveedor de nube heredado
<a name="lbc-legacy"></a>

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 Controlador del equilibrador de carga de AWS. El proveedor de nube heredado crea equilibradores de carga clásicos. Si no instala el Controlador del equilibrador de carga de AWS, Kubernetes utilizará de forma predeterminada el proveedor de nube heredado. Debe instalar el Controlador del equilibrador de carga de AWS y evitar utilizar el proveedor de nube heredado.

**importante**  
En las versiones 2.5 y posteriores, el Controlador del equilibrador de carga de AWS 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](https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/service/annotations/#legacy-cloud-provider) 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.