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.
Instalación de AWS Load Balancer Controller usando Helm
En este tema se describe cómo instalar AWS Load Balancer Controller con Helm, un administrador de paquetes para Kubernetes y eksctl
. El controlador se instala con las opciones predeterminadas. Para obtener más información sobre el controlador, incluidos los detalles sobre su configuración con anotaciones, consulte la documentación del AWS Load Balancer Controller
En los siguientes pasos, reemplace
por sus propios valores.example values
Requisitos previos
Antes de comenzar este tutorial, debe instalar y configurar las siguientes herramientas y recursos que necesitará para crear y administrar un clúster de Amazon EKS.
-
Un clúster existente de Amazon EKS. Para implementar uno, consulte Introducción a Amazon EKS.
-
Un proveedor OpenID Connect (OIDC) de AWS Identity and Access Management (IAM) 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.
-
Asegúrese de que sus complementos Amazon VPC CNI plugin for Kubernetes,
kube-proxy
y CoreDNS tengan 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 .
-
Instalación de Helm
de forma local.
Paso 1: crear el rol de IAM usando eksctl
nota
Solo necesita crear un rol de IAM para el AWS Load Balancer Controller por cada cuenta de AWS. Compruebe si AmazonEKSLoadBalancerControllerRole
existe en la Consola de IAM
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.
-
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.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.
Creación de un rol de IAM mediante eksctl
-
Reemplace
por el nombre de su clúster ymy-cluster
con el ID de su cuenta y luego ejecute el comando. Si su clúster está en las Regiones de AWS GovCloud de AWS (EE. UU. Este) o GovCloud de AWS (EE. UU. Oeste), sustituya111122223333
arn:aws:
conarn:aws-us-gov:
.$
eksctl create iamserviceaccount \ --cluster=
my-cluster
\ --namespace=kube-system \ --name=aws-load-balancer-controller \ --role-nameAmazonEKSLoadBalancerControllerRole
\ --attach-policy-arn=arn:aws:iam::111122223333
:policy/AWSLoadBalancerControllerIAMPolicy
\ --approve
Paso 2: instalar el AWS Load Balancer Controller
Instale AWS Load Balancer Controller con Helm V3
-
Añada el repositorio de gráficos de Helm
eks-charts
. AWS mantiene este repositorioen GitHub. $
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 eks
-
Instale la AWS Load Balancer Controller.
Reemplace
por el nombre del clúster. En el siguientes comando,my-cluster
aws-load-balancer-controller
es la cuenta de servicio de Kubernetes que creó en un paso anterior.Para obtener más información acerca de la configuración de gráficos de Helm, consulte
values.yaml
en GitHub. $
helm install aws-load-balancer-controller eks/aws-load-balancer-controller \ -n kube-system \ --set clusterName=
my-cluster
\ --set serviceAccount.create=false \ --set serviceAccount.name=aws-load-balancer-controller-
Si está implementando el controlador en los nodos de Amazon EC2 que tienen acceso restringido al servicio de metadatos de la instancia de Amazon EC2 (IMDS)
, o si está implementando en Fargate, debe agregar los siguientes indicadores al siguiente comando de helm
:-
--set region=
region-code
-
--set vpcId=
vpc-xxxxxxxx
-
-
Para ver las versiones disponibles del gráfico de Helm y del controlador del equilibrador de carga, use el siguiente comando:
helm search repo eks/aws-load-balancer-controller --versions
importante
El gráfico implementado no recibe actualizaciones de seguridad de forma automática. Debe actualizar de forma manual a un gráfico más reciente cuando se encuentre disponible. Al actualizar, cambie
porinstall
en el comando anterior.upgrade
El comando
helm install
instala automáticamente las definiciones de recursos personalizadas (CRDs) para el controlador. El comandohelm upgrade
no lo hace. Si usahelm upgrade,
, debe instalar manualmente CRDs. Ejecute el siguiente comando para instalar CRDs:wget https://raw.githubusercontent.com/aws/eks-charts/master/stable/aws-load-balancer-controller/crds/crds.yaml kubectl apply -f crds.yaml
-
Paso 3: verificar que el controlador se encuentre instalado
-
Verifique que el controlador se encuentre instalado.
$
kubectl get deployment -n kube-system aws-load-balancer-controller
Un ejemplo de salida sería el siguiente.
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.