Ajudar a melhorar esta página
Quer contribuir para este guia do usuário? Escolha o link Editar esta página no GitHub, disponível no painel direito de cada página. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.
Instalar o AWS Load Balancer Controller com manifestos
dica
Com o Modo Automático do Amazon EKS, você não precisa instalar ou atualizar complementos de rede. O Modo Automático inclui recursos de rede de pods e balanceamento de carga.
Para ter mais informações, consulte Automatizar a infraestrutura de clusters com o Modo Automático do EKS.
Este tópico descreve como instalar o controlador ao fazer download e aplicar os manifestos do Kubernetes. Você pode visualizar a documentação
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
, CoreDNS e 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.
Etapa 1: configurar o IAM
nota
Você só precisa criar um perfil para o
AWS Load Balancer Controller, um em cada conta da AWS. Verifique se AmazonEKSLoadBalancerControllerRole
existe no Console do IAM
nota
O exemplo abaixo refere-se à versão de lançamento v2.11.0 do
AWS Load Balancer Controller. Para obter mais informações sobre todos os lançamentos, consulte a página de lançamentos do AWS Load Balancer Controller
-
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.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..
Etapa 2: instalar o cert-manager
Instale cert-manager
usando um dos métodos a seguir para injetar a configuração do certificado nos webhooks. Para obter mais informações, consulte Conceitos básicos
Recomendamos usar o registro de contêiner quay.io
para instalar cert-manager
. Se os nós não tiverem acesso ao registro de contêiner quay.io
, instale cert-manager
usando o Amazon ECR (veja abaixo).
Etapa 3: instalar o AWS Load Balancer Controller
-
Faça download da especificação do controlador. Para obter mais informações sobre o controlador, consulte a documentação
do GitHub. curl -Lo v2_11_0_full.yaml https://github.com/kubernetes-sigs/aws-load-balancer-controller/releases/download/v2.11.0/v2_11_0_full.yaml
-
Faça as edições a seguir ao arquivo.
-
Se você tiver baixado o arquivo
v2_11_0_full.yaml
, execute o seguinte comando para remover a seçãoServiceAccount
no manifesto. Se você não remover essa seção, a anotação necessária que você fez na conta de serviço em uma etapa anterior será substituída. A remoção dessa seção também preservará a conta de serviço criada em uma etapa anterior se você excluir o controlador.sed -i.bak -e '690,698d' ./v2_11_0_full.yaml
Se você tiver baixado uma versão de arquivo diferente, abra o arquivo em um editor e remova as linhas a seguir.
apiVersion: v1 kind: ServiceAccount metadata: labels: app.kubernetes.io/component: controller app.kubernetes.io/name: aws-load-balancer-controller name: aws-load-balancer-controller namespace: kube-system ---
-
Substitua
your-cluster-name
na seçãoDeployment
spec
do arquivo pelo nome do cluster substituindomy-cluster
pelo nome do seu cluster.sed -i.bak -e 's|your-cluster-name|my-cluster|' ./v2_11_0_full.yaml
-
Se seus nós não tiverem acesso aos repositórios de imagens do Amazon ECR do Amazon EKS, você precisará extrair a image a seguir a seguir e enviá-la a um repositório ao qual seus nós tenham acesso. Para obter mais informações sobre como extrair, etiquetar e enviar uma imagem para seu próprio repositório, consulte Copiar uma imagem de contêiner de um repositório para outro.
public.ecr.aws/eks/aws-load-balancer-controller:v2.11.0
Adicione o nome do registro ao manifesto. O comando a seguir pressupõe que o nome do repositório privado seja o mesmo que o repositório de origem e adicione o nome do seu registro privado para o arquivo. Substitua
111122223333.dkr.ecr.region-code.amazonaws.com
pelo seu registro. Essa linha pressupõe que você nomeou seu repositório privado da mesma forma que o repositório de origem. Caso contrário, altere o texto deeks/aws-load-balancer-controller
após o nome do registro privado para o nome do repositório.sed -i.bak -e 's|public.ecr.aws/eks/aws-load-balancer-controller|111122223333.dkr.ecr.region-code.amazonaws.com/eks/aws-load-balancer-controller|' ./v2_11_0_full.yaml
-
(Obrigatório somente para o Fargate ou para um IMDS restrito)
Se você estiver implantando o controlador nos nós do Amazon EC2 que têm acesso restrito ao serviço de metadados de instância (IMDS) do Amazon EC2
, ou se você estiver implantando no Fargate ou no Amazon EKS Hybrid Nodes, adicione os following parameters
em- args:
.[...] spec: containers: - args: - --cluster-name=your-cluster-name - --ingress-class=alb - --aws-vpc-id=vpc-xxxxxxxx - --aws-region=region-code [...]
-
-
Aplique o arquivo.
kubectl apply -f v2_11_0_full.yaml
-
Baixe os manifestos
IngressClass
eIngressClassParams
para seu cluster.curl -Lo v2_11_0_ingclass.yaml https://github.com/kubernetes-sigs/aws-load-balancer-controller/releases/download/v2.11.0/v2_11_0_ingclass.yaml
-
Aplique o manifesto ao cluster.
kubectl apply -f v2_11_0_ingclass.yaml
Etapa 4: 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.