Instalar o AWS Load Balancer Controller com Helm - Amazon EKS

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

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.

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, vá para Etapa 2: instalar o AWS Load Balancer ControllerEtapa 2: Instalar o AWS Load Balancer Controller.

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

  2. Substitua my-cluster pelo nome do seu cluster e 111122223333 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, 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

  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 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
    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 fazer o upgrade, 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 Roteamento de aplicações e tráfego HTTP com Application Load Balancers e Roteamento de tráfego TCP e UDP com Network Load Balancers.