Instalar o AWS Load Balancer Controller com Helm - Amazon EKS

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 no GitHub.

Nas etapas a seguir, substitua example values 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.

  • 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. Se esse perfil existir, prossiga para Etapa 2: instalar o AWS Load Balancer Controller.

Crie uma política do IAM.
  1. 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 (US)
    $ 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
  2. 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..

Criar um perfil do IAM usando a ferramenta eksctl
  • Substitua my-cluster pelo nome do seu cluster e 111122223333 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), substitua arn:aws: por arn: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

Instalar o AWS Load Balancer Controller usando o Helm V3
  1. Adicione o repositório de chart do Helm eks-charts. A AWS mantém esse repositório no GitHub.

    $ helm repo add eks https://aws.github.io/eks-charts
  2. Atualize o repositório local para confirmar que você tem os gráficos mais recentes.

    $ helm repo update eks
  3. Instale o AWS Load Balancer Controller.

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

    2. 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 install para upgrade 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

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

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