Ajudar a melhorar esta página
Para contribuir com este guia de usuário, escolha o link Editar esta página no GitHub, disponível no painel direito de cada página.
Direcionar o tráfego da Internet com o AWS Load Balancer Controller
O AWS Load Balancer Controller gerencia o AWS Elastic Load Balancers para um cluster do Kubernetes. É possível usar o controlador para expor as aplicações no cluster para a Internet. O controlador provisiona balanceadores de carga da AWS que realizam o direcionamento para os recursos Service ou Ingress do cluster. Em outras palavras, o controlador cria um único endereço IP ou nome DNS que realiza o direcionamento para múltiplos pods em seu cluster.

O controlador observa os recursos Service e Ingress do Kubernetes. Em resposta, ele cria os recursos apropriados do AWS Elastic Load Balancing. É possível configurar um comportamento específico de balanceadores de carga ao aplicar anotações aos recursos do Kubernetes. Por exemplo, você pode anexar grupos de segurança da AWS a balanceadores de carga ao usar anotações.
O controlador fornece os seguintes recursos:
- Kubernetes
Ingress
-
O LBC cria um AWS Application Load Balancer (ALB) quando você cria um Kubernetes
Ingress
. Faça uma análise das anotações que você pode aplicar a um recurso Ingress. - Serviço do Kubernetes do tipo
LoadBalancer
-
O LBC cria um AWS Network Load Balancer (NLB) quando você cria um serviço do Kubernetes do tipo
LoadBalancer
. Faça uma análise das anotações que você pode aplicar a um recurso Service.Antigamente, o Network Load Balancer do Kubernetes era usado para destinos de instâncias, mas usava o LBC para destinos de IPs. Com o AWS Load Balancer Controller versão
2.3.0
ou mais recente, você pode criar NLBs usando qualquer tipo de destino. Para obter mais informações sobre os tipos de destino do NLB consulte Tipo de destino no Guia do usuário do Network Load Balancer.
O controlador é um projeto de código aberto
Antes de implantar o controlador, recomendamos que você analise os pré-requisitos e as considerações em Roteamento de aplicações e tráfego HTTP com Application Load Balancers e Roteamento de tráfego TCP e UDP com Network Load Balancers. Nesses tópicos, você implantará uma aplicação de amostra que inclui um balanceador de carga da AWS.
Instalar o controlador
Você pode usar um dos seguintes procedimentos para instalar o AWS Load Balancer Controller:
-
Se ainda não conhece o Amazon EKS, recomendamos usar o Helm para simplificar a instalação do AWS Load Balancer Controller. Para ter mais informações, consulte Instale o AWS Load Balancer Controller com o Helm.
-
Para configurações avançadas, como clusters com acesso restrito à rede em registros de contêineres públicos, use manifestos do Kubernetes. Para ter mais informações, consulte Instalar o AWS Load Balancer Controller com manifestos.
Migração de versões descontinuadas do controlador
-
Se você tiver versões obsoletas do AWS Load Balancer Controller instaladas, consulte Migrar aplicações do ALB Ingress Controller descontinuado.
-
Não é possível atualizar versões descontinuadas. Essas versões devem ser removidas e uma versão atual do AWS Load Balancer Controller deve ser instalada.
-
As versões descontinuadas incluem:
-
AWS ALB Ingress Controller para Kubernetes (“Ingress Controller”), um antecessor do AWS Load Balancer Controller.
-
Qualquer versão
0.1.
do AWS Load Balancer Controllerx
-
Provedor de nuvem herdado
O Kubernetes inclui um provedor de nuvem legado para a AWS. O provedor de nuvem legado é capaz de provisionar balanceadores de carga da AWS, que são semelhantes ao AWS Load Balancer Controller. O provedor de nuvem herdado cria Classic Load Balancers. Se você não instalar o AWS Load Balancer Controller, o Kubernetes usará o provedor de nuvem legado como padrão. Você deve instalar o AWS Load Balancer Controller e evitar o uso do provedor de nuvem legado.
Importante
Nas versões 2.5 e mais recentes, o AWS Load Balancer Controller passa a ser o controlador padrão para os recursos de serviços com o type: LoadBalancer
e cria um AWS Network Load Balancer (NLB) para cada serviço. Ele faz isso criando um webhook mutante para serviços, que define o campo spec.loadBalancerClass
como service.k8s.aws/nlb
para novos serviços type: LoadBalancer
. Você pode desativar esse recurso e voltar a usar o provedor de nuvem antigoenableServiceMutatorWebhook
do chart do Helm para false
. A menos que você desative esse recurso, o cluster não provisionará novos Classic Load Balancers para seus serviços. Os Classic Load Balancers existentes continuarão funcionando.