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.
Direcionar o tráfego da Internet com o AWS Load Balancer Controller
O AWS Load Balancer Controller gerencia os 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.
![Diagrama de arquitetura. Ilustração do tráfego proveniente de usuários da Internet para o Amazon Load Balancer. O Amazon Load Balancer distribui o tráfego para os pods no cluster.](images/lbc-overview.png)
O controlador monitora os recursos Ingress ou Service do Kubernetes. Em resposta, ele cria os recursos apropriados do AWS Elastic Load Balancing. É possível configurar um comportamento específico para os 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 recurso
Ingress
do Kubernetes. Faça uma análise das anotações que você pode aplicar a um recurso Ingress. - Serviço 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ância, mas usava o LBC para destinos de IP. Com o AWS Load Balancer Controller versão
2.3.0
ou posterior, 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 TCP e tráfego 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 Instalar o AWS Load Balancer Controller com 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 obsoleto Ingress Controller.
-
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 Controller.x
-
Provedor de nuvem herdado
O Kubernetes inclui um provedor de nuvem herdado para a AWS. O provedor de nuvem herdado é 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 herdado como padrão. Você deve instalar o AWS Load Balancer Controller e evitar o uso do provedor de nuvem herdado.
Importante
Nas versões 2.5 e mais recentes, o
AWS Load Balancer Controller passa a ser o controlador padrão para os recursos do tipo serviço do Kubernetes com o type: LoadBalancer
e faz um Network Load Balancer (NLB) da AWS 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.