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
- Un clúster de Amazon EKS existente. ( Creacion de cluster de EKS mediante terraform se muestra como se implementa un cluster de EKS bajo Terraform)
- Tener eksctl instalado y configurado Instalación o actualización del eksctl - Amazon EKS
- Tener instalado helm Utilizar Helm con Amazon EKS - Amazon EKS
Implementación de un AWS Load Balancer Controller en un clúster de Amazon EKS.
- 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