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.

Requisitos previos

Implementación de un AWS Load Balancer Controller en un clúster de Amazon EKS.

  1. 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.

curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.4.4/docs/install/iam_policy.json

Cree una política de IAM con la política descargada en el paso anterior.

aws iam create-policy \
  --policy-name AWSLoadBalancerControllerIAMPolicy \
  --policy-document file://iam_policy.json

2. Cree un rol de IAM. Cree una cuenta de servicio de Kubernetes denominada aws-load-balancer-controller en el espacio de nombres kube-system para el AWS Load Balancer Controller y anote la cuenta de servicio de Kubernetes con el nombre del rol de IAM.

eksctl create iamserviceaccount \ 
 --cluster=<<Nombre del Cluster>> \ 
 --namespace=kube-system \ 
 --name=aws-load-balancer-controller \ 
 --role-name AmazonEKSLoadBalancerControllerRole \ 
 --attach-policy-arn=arn:aws:iam::<<id de la cuenta de AWS>>:policy/AWSLoadBalancerControllerIAMPolicy \ 
 --approve

3. Instale el AWS Load Balancer Controller con Helm

Agregue el repositorio de eks-charts.

helm repo add eks https://aws.github.io/eks-charts

Actualice el repositorio local para asegurarse de que cuenta con los gráficos más recientes.

helm repo update

Instale la AWS Load Balancer Controller.

helm install aws-load-balancer-controller eks/aws-load-balancer-controller \
 -n kube-system \ 
 --set clusterName=<<Nombre del Cluster>> \ 
 --set serviceAccount.create=false \ 
 --set serviceAccount.name=aws-load-balancer-controller

4. 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

Mas información:

Instalación del complemento AWS Load Balancer Controller - Amazon EKS

Nota editorial: este artículo refleja la tecnología y los comandos de su fecha de publicación. Verifica versiones y documentación oficial antes de aplicarlos en producción.