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.
Saiba como configurar Network Load Balancers (NLB) no Amazon EKS usando anotações de serviço do Kubernetes. Este tópico explica as anotações compatíveis com o Modo Automático do EKS para personalizar o comportamento do NLB, incluindo acessibilidade à internet, verificações de integridade, terminação SSL e TLS e modos de direcionamento IP.
Quando você cria um serviço do Kubernetes do tipo LoadBalancer
no Modo Automático do EKS, o EKS provisiona e configura automaticamente um AWS Network Load Balancer com base nas anotações que você especifica. Essa abordagem declarativa permite que você gerencie as configurações do balanceador de carga diretamente por meio dos manifestos do Kubernetes, mantendo práticas de infraestrutura como código.
O Modo Automático do EKS gerencia o provisionamento do Network Load Balancer por padrão para todos os serviços do tipo LoadBalancer. Nenhuma instalação ou configuração adicional de controlador é necessária. A especificação `loadBalancerClass: eks.amazonaws.com/nlb` é automaticamente definida como padrão do cluster, simplificando o processo de implantação e mantendo a compatibilidade com as workloads existentes do Kubernetes.
Serviço de exemplo
Para obter mais informações sobre o recurso Service
do Kubernetes, consulte a documentação do Kubernetes
Analise o recurso Service
de exemplo abaixo:
apiVersion: v1
kind: Service
metadata:
name: echoserver
annotations:
# Specify the load balancer scheme as internet-facing to create a public-facing Network Load Balancer (NLB)
service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
spec:
selector:
app: echoserver
ports:
- port: 80
targetPort: 8080
protocol: TCP
type: LoadBalancer
# Specify the new load balancer class for NLB as part of EKS Auto Mode feature
# For clusters with Auto Mode enabled, this field can be omitted as it's the default
loadBalancerClass: eks.amazonaws.com/nlb
Anotações comumente usadas
A tabela a seguir lista as anotações comumente usadas compatíveis com o Modo Automático do EKS. Observe que o Modo Automático do EKS pode não ser compatível com todas as anotações.
dica
Todas as anotações a seguir precisam ser prefixadas com service.beta.kubernetes.io/
Campo | Descrição | Exemplo |
---|---|---|
|
Especifica o tipo de balanceador de carga. Use |
|
|
Especifica se o tráfego deve ser roteado para instâncias de nós ou diretamente para IPs de pod. Use |
|
|
Controla se o balanceador de carga é interno ou voltado para a internet. |
|
|
Protocolo de verificação de integridade do grupo de destino. As opções comuns são |
|
|
O caminho HTTP para verificações de integridade ao usar o protocolo HTTP e HTTPS. |
|
|
Porta usada para verificações de integridade. Pode ser um número de porta específico ou |
|
|
Especifica em quais sub-redes criar o balanceador de carga. Pode usar IDs ou nomes de sub-rede. |
|
|
ARN do certificado SSL do AWS Certificate Manager para HTTPS e TLS. |
|
|
Especifica quais portas devem usar SSL e TLS. |
|
|
Intervalos CIDR permitidos para acessar o balanceador de carga. |
|
|
Tags adicionais da AWS a serem aplicadas ao balanceador de carga e aos recursos relacionados. |
|
|
Especifica se o balanceador de carga usa IPv4 ou pilha dupla (IPv4 + IPv6). |
|
Considerações
-
Você deve atualizar o perfil do IAM do cluster para permitir a propagação de tags do Kubernetes para os recursos do AWS Load Balancer. Para ter mais informações, consulte Tags da AWS personalizadas para recursos do Modo Automático do EKS..
-
Para obter informações sobre como associar recursos ao Modo Automático do EKS ou ao AWS Load Balancer Controller autogerenciado, consulte Referência de migração.
-
Para obter informações sobre como corrigir problemas com balanceadores de carga, consulte Solucionar problemas do Modo Automático do EKS.
-
Para obter mais considerações sobre o uso do recurso de balanceamento de carga do Modo Automático do EKS, consulte Balanceamento de carga.
Ao migrar para o Modo Automático do EKS de balanceamento de carga, várias alterações nas anotações de serviço e nas configurações de recursos são necessárias. As tabelas a seguir descrevem as principais diferenças entre as implementações anteriores e as novas, incluindo opções não compatíveis e alternativas recomendadas.
Anotações do serviço
Anterior | Novo | Descrição |
---|---|---|
|
Sem compatibilidade |
Use |
|
Sem compatibilidade |
Use |
|
Sem compatibilidade |
Usar o |
Vários atributos do balanceador de carga |
Sem compatibilidade |
Usar o |
|
Sem compatibilidade |
Use |
|
Sem compatibilidade |
Use |
|
Sem compatibilidade |
Use |
|
Sem compatibilidade |
Use |
|
Sem compatibilidade |
Use |
Para migrar das anotações de atributos obsoletas do balanceador de carga, consolide essas configurações na anotação service.beta.kubernetes.io/aws-load-balancer-attributes
. Essa anotação aceita uma lista de pares chave/valor separados por vírgula de vários atributos do balanceador de carga. Por exemplo, para especificar o protocolo proxy, o registro em log de acesso e o balanceamento de carga entre zonas, use o seguinte formato:
service.beta.kubernetes.io/aws-load-balancer-attributes: |
proxy_protocol.v2.enabled=true
access_logs.s3.enabled=true
access_logs.s3.bucket=my-bucket
access_logs.s3.prefix=my-prefix
load_balancing.cross_zone.enabled=true
Esse formato consolidado fornece uma maneira mais consistente e flexível de configurar os atributos do balanceador de carga e, ao mesmo tempo, reduz o número de anotações individuais necessárias. Analise suas configurações de serviço existentes e atualize-as para usar esse formato consolidado.
TargetGroupBinding
Anterior | Novo | Descrição |
---|---|---|
|
|
Alteração de versão da API |
|
|
Especificação explícita do tipo de destino |
|
Sem compatibilidade |
Não oferece mais compatibilidade com NLB sem grupos de segurança |