Instalar o AWS Load Balancer Controller com Helm
Este tópico descreve como instalar o
AWS Load Balancer Controller usando o Helm, um gerenciador de pacotes para o Kubernetes, e a ferramenta eksctl
. O controlador é instalado com as opções padrão. Para obter mais informações sobre o controlador, incluindo detalhes sobre como configurá-lo com anotações, consulte a documentação do controlador do balanceador de cargaAWS
Nas etapas a seguir, substitua os valores de exemplo
pelos seus próprios valores.
Pré-requisitos
Antes de iniciar este tutorial, você deve instalar e configurar as ferramentas a seguir e os recursos necessários para criar e gerenciar um cluster do Amazon EKS.
-
Um cluster existente do Amazon EKS. Para implantar, consulte Começar a usar o Amazon EKS.
-
Um provedor existente do AWS Identity and Access Management (IAM) OpenID Connect (OIDC) para o cluster. Para determinar se você tem ou para criar uma, consulte Criar um provedor OIDC do IAM para o cluster.
-
Certifique-se de que os complementos Amazon VPC CNI plugin for Kubernetes,
kube-proxy
e CoreDNS sejam das versões mínimas listadas em Tokens de contas de serviços Complementos de cluster. -
Familiaridade com o AWS Elastic Load Balancing. Para obter mais informações, consulte o Manual do usuário do Elastic Load Balancing.
-
Familiaridade com o serviço
e os recursos de ingresso do Kubernetes. -
Instalação do Helm
localmente.
Etapa 1: criar um perfil do IAM usando a ferramenta eksctl
nota
Você precisa criar somente um perfil do IAM para o
AWS Load Balancer Controller por conta da AWS. Verifique se AmazonEKSLoadBalancerControllerRole
existe no Console do IAM
-
Baixe uma política do IAM para o AWS Load Balancer Controller que permita que ele faça chamadas para APIs da AWS em seu nome.
- AWS
-
**
$ curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.7.2/docs/install/iam_policy.json
- AWS GovCloud (EUA)
-
**
$ curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.7.2/docs/install/iam_policy_us-gov.json
$ mv iam_policy_us-gov.json iam_policy.json
-
Crie uma política do IAM usando a política obtida por download na etapa anterior.
$ aws iam create-policy \ --policy-name AWSLoadBalancerControllerIAMPolicy \ --policy-document file://iam_policy.json
nota
Se você visualizar a política no AWS Management Console, ele mostrará os avisos para o serviço ELB, mas não para o serviço ELB v2. Isso acontece porque algumas das ações da política existem para o ELB v2, mas não para o ELB. Você pode ignorar esses avisos para o ELB..
-
Substitua
my-cluster
pelo nome do seu cluster e111122223333
pelo ID da conta e, então, execute o comando. Se o seu cluster estiver nas regiões AWS GovCloud (US-East) ou AWS GovCloud (US-West) AWS, substituaarn:aws:
porarn:aws-us-gov:
.$ eksctl create iamserviceaccount \ --cluster=my-cluster \ --namespace=kube-system \ --name=aws-load-balancer-controller \ --role-name AmazonEKSLoadBalancerControllerRole \ --attach-policy-arn=arn:aws:iam::111122223333:policy/AWSLoadBalancerControllerIAMPolicy \ --approve
Etapa 2: instalar o AWS Load Balancer Controller
-
Adicione o repositório de chart do Helm
eks-charts
. A AWS mantém esse repositóriono GitHub. $ helm repo add eks https://aws.github.io/eks-charts
-
Atualize o repositório local para confirmar que você tem os gráficos mais recentes.
$ helm repo update eks
-
Instale o AWS Load Balancer Controller.
Substitua
my-cluster
pelo nome do cluster. No comando a seguir,aws-load-balancer-controller
é a conta de serviço do Kubernetes que você criou em uma etapa anterior.Para obter mais informações sobre a configuração do gráfico de leme, consulte values.yaml
no 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
-
Se você estiver implantando o controlador nos nós do Amazon EC2 aos quais você tem acesso restrito ao Instance Metadata Service (IMDS – Serviço de metadados de instância) do Amazon EC2
ou se você estiver implantando no Fargate, adicione os seguintes sinalizadores ao comando helm
:-
--set region=
region-code
-
--set vpcId=
vpc-xxxxxxxx
-
-
Para visualizar as versões disponíveis do Chart do Helm e do Load Balancer Controller, use o seguinte comando:
helm search repo eks/aws-load-balancer-controller --versions
Importante
O gráfico implantado não recebe atualizações de segurança automaticamente. Você precisa atualizar manualmente para um gráfico mais recente quando ele estiver disponível. Ao fazer o upgrade, altere
install
paraupgrade
no comando anterior.
-
O comando helm install
instala automaticamente as definições de recursos personalizados (CRDs) para o controlador. O comando helm upgrade
não realiza essa instalação. Caso use helm upgrade,
, você deverá instalar manualmente as CRDs. Execute o seguinte comando para instalar as CRDs:
wget https://raw.githubusercontent.com/aws/eks-charts/master/stable/aws-load-balancer-controller/crds/crds.yaml kubectl apply -f crds.yaml
Etapa 3: verificar se o controlador está instalado
-
Verifique se o controlador está instalado.
$ kubectl get deployment -n kube-system aws-load-balancer-controller
Veja um exemplo de saída abaixo.
NAME READY UP-TO-DATE AVAILABLE AGE aws-load-balancer-controller 2/2 2 2 84s
Você recebe a saída anterior se tiver implantado usando o Helm. Se você implantou usando o manifesto do Kubernetes, só tem uma réplica.
-
Antes de usar o controlador para provisionar os recursos da AWS, o cluster deverá cumprir requisitos específicos. Para ter mais informações, consulte Roteamento de aplicações e tráfego HTTP com Application Load Balancers e Roteamento de tráfego TCP e UDP com Network Load Balancers.