Instalación del complemento AWS Load Balancer Controller
El AWS Load Balancer Controller administra los equilibradores de carga elástica de AWS para un clúster de Kubernetes. El controlador aprovisiona los siguientes recursos:
-
Un equilibrador de carga de aplicación (ALB) de AWS al crear una Kubernetes de
Ingress
. -
Un equilibrador de carga de red (NLB) de AWS al crear un servicio de Kubernetes de tipo
LoadBalancer
. En el pasado, se utilizaba el equilibrador de carga de red de Kubernetes para destinos de instancia, pero se utilizaba el controlador del equilibrador de carga de AWS para destinos de IP. Con la versión AWS Load Balancer Controller2.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.
Anteriormente, AWS Load Balancer Controller se llamaba Controlador de entrada de ALB de AWS. Es un proyecto de código abierto
Requisitos previos
-
Un clúster de Amazon EKS existente. Para implementar uno, consulte Introducción a Amazon EKS.
-
Un proveedor de AWS Identity and Access Management (IAM) OpenID Connect (OIDC) existente para el clúster. Para determinar si ya tiene un proveedor o para crear uno, consulte Creación de un proveedor de OIDC de IAM para su clúster.
-
Si su clúster es
1.21
o posterior, asegúrese de que sus complementos Amazon VPC CNI plugin for Kubernetes,kube-proxy
y CoreDNS se encuentren en las versiones mínimas enumeradas en los tokens de cuenta de servicio. -
Familiaridad con AWS Elastic Load Balancing. Para obtener más información, consulte la Guía del usuario de Elastic Load Balancing.
-
Familiaridad con el servicio
de Kubernetes y los recursos de entrada .
Implemente una AWS Load Balancer Controller en un clúster de Amazon EKS.
En los pasos siguientes, reemplace
por sus propios valores.example
values
-
Cree una política de IAM.
-
Descargue una política de IAM para el AWS Load Balancer Controller que le permita realizar llamadas a las API de AWS en su nombre.
-
AWS GovCloud (EE. UU. Este) o AWS GovCloud (EE. SS. Oeste) Regiones de AWS
curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.4.7/docs/install/iam_policy_us-gov.json
-
Todas las demás Regiones de AWS
curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.4.7/docs/install/iam_policy.json
-
-
Cree una política de IAM con la política descargada en el paso anterior. Si ha descargado
iam_policy_us-gov.json
, cambieiam_policy.json
aiam_policy_us-gov.json
antes de ejecutar el comando.aws iam create-policy \ --policy-name
AWSLoadBalancerControllerIAMPolicy
\ --policy-document file://iam_policy.jsonnota
Si ve la política en la AWS Management Console, la consola muestra advertencias para el servicio ELB, pero no para el servicio ELB v2. Esto ocurre porque algunas de las acciones de la política existen para ELB v2, pero no para ELB. Puede obviar estas advertencias para ELB.
-
-
Cree un rol de IAM. Cree una cuenta de servicio de Kubernetes denominada
aws-load-balancer-controller
en el espacio de nombreskube-system
para el AWS Load Balancer Controller y anote la cuenta de servicio de Kubernetes con el nombre del rol de IAM.Puede usar
eksctl
o el AWS CLI ykubectl
para crear el rol IAM y la cuenta de servicio de Kubernetes. (Opcional) Configure el tipo de punto de conexión AWS Security Token Service utilizado por su cuenta de servicio de Kubernetes. Para obtener más información, consulte Configuración del punto de conexión de AWS Security Token Service para una cuenta de servicio.
Si no dispone del Controlador de entrada de ALB de AWS para Kubernetes instalado o no dispone de la versión
0.1.x
del AWS Load Balancer Controller instalado con Helm y, vaya directamente al siguiente paso.Desinstale el controlador de entrada de ALB de AWS o de la versión
0.1.x
del AWS Load Balancer Controller (solo si se instala con Helm). Realice el procedimiento utilizando la herramienta con la que la instaló originalmente. El AWS Load Balancer Controller reemplaza la funcionalidad del controlador de entrada de ALB de AWS para Kubernetes.-
Instale el AWS Load Balancer Controller con Helm V3 o posterior o al aplicar un manifiesto de Kubernetes. Si desea implementar el controlador en Fargate, use el procedimiento de Helm. El procedimiento de Helm no depende de
cert-manager
porque genera un certificado autofirmado. -
Verifique que el controlador se encuentre instalado.
kubectl get deployment -n kube-system aws-load-balancer-controller
A continuación, se muestra un ejemplo de resultado.
NAME READY UP-TO-DATE AVAILABLE AGE aws-load-balancer-controller 2/2 2 2 84s
Recibe la salida anterior si ha implementado mediante Helm. Si ha implementado utilizando el manifiesto de Kubernetes, solo tiene una réplica.
-
Antes de utilizar el controlador para aprovisionar el recurso de AWS, el clúster debe cumplir requisitos específicos. Para obtener más información, consulte Equilibrio de carga de aplicaciones en Amazon EKS y Equilibrio de carga de red en Amazon EKS.