Ajudar a melhorar esta página
Quer contribuir para este guia do usuário? Role até o final desta página e selecione Editar esta página no GitHub. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.
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 AWS Load Balancer Controller
Nas etapas a seguir, substitua
pelos seus próprios valores:example values
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 OpenID Connect (OIDC) do AWS Identity and Access Management (IAM) existente 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. -
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
Crie uma política 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.
-
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.jsonnota
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..
Criar um perfil do IAM usando a ferramenta eksctl
-
Substitua
pelo nome do seu cluster emy-cluster
pelo ID da conta e, depois, execute o comando. Se o cluster estiver nas Regiões da AWS: AWS GovCloud (EUA-Leste) ou AWS GovCloud (EUA-Oeste), substitua111122223333
arn:aws:
porarn: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
Etapa 2: instalar o AWS Load Balancer Controller
Instalar o AWS Load Balancer Controller usando o Helm V3
-
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 o
pelo nome do cluster. No comando a seguir,my-cluster
aws-load-balancer-controller
é a conta de serviço do Kubernetes que você criou em uma etapa anterior.Para obter mais informações sobre como configurar o chart do Helm, 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 realizar uma atualização, altere
parainstall
no comando anterior.upgrade
O comando
helm install
instala automaticamente as definições de recursos personalizados (CRDs) para o controlador. O comandohelm upgrade
não realiza essa instalação. Caso usehelm 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 Aplicação de roteamento e tráfego HTTP com Application Load Balancers e Roteamento TCP e tráfego UDP com Network Load Balancers.