Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Azure Load Balancer opera na camada 4 do modelo de referência OSI que dá suporte a cenários de entrada e de saída. Ele distribui fluxos de entrada que chegam ao front-end do balanceador de carga para as instâncias do pool de back-end.
Quando integrado ao AKS, um balanceador de carga público tem duas finalidades:
- Forneça conexões de saída para os nós de cluster dentro da VNet (rede virtual) do AKS traduzindo o endereço IP privado para uma parte de endereço IP público de seu pool de saída.
- Forneça acesso a aplicativos por meio dos serviços de tipo
LoadBalancerdo Kubernetes, permitindo que você dimensione facilmente seus aplicativos e crie serviços altamente disponíveis.
Este artigo aborda a integração com um balanceador de carga público no AKS. Para saber mais sobre a integração do balanceador de carga interno, confira Usar um balanceador de carga interno no AKS.
Pré-requisitos
- O Azure Load Balancer está disponível em duas SKUs, Básica e Standard. Por padrão, o SKU Standard é usado quando você cria um cluster do AKS. O SKU Standard dá acesso a funcionalidades adicionais, como um pool de back-end maior, pools de vários nós e Zonas de Disponibilidade e é seguro por padrão. É a SKU do balanceador de carga recomendada para o AKS. Para obter mais informações sobre os SKUs Básico e Standard, confira Comparação de SKU do Azure Load Balancer.
- Para obter uma lista completa das anotações com suporte para serviços do Kubernetes com o tipo
LoadBalancer, confira Anotações do LoadBalancer. - Este artigo pressupõe que você tenha um cluster do AKS com o Azure Load Balancer de SKU Standard. Se você precisar de um cluster do AKS, poderá criar um usando a CLI do Azure, o Azure PowerShell ou o portal do Azure.
Important
Se você preferir usar seu próprio gateway, firewall ou proxy para fornecer conexão de saída, você pode ignorar a criação do pool de saída do balanceador de carga e o respectivo IP de front-end usando o tipo de saída como UserDefinedRouting (UDR). O tipo de saída define o método de saída para um cluster e usa o tipo LoadBalancer como padrão.
Limitations
As seguintes limitações se aplicam quando você cria e gerencia clusters do AKS que dão suporte a um balanceador de carga com o SKU Standard:
O AKS gerencia o ciclo de vida e as operações dos nós do agente. Não há suporte para a modificação dos recursos de IaaS associados aos nós do agente. Um exemplo de uma operação sem suporte é fazer alterações manuais no grupo de recursos do balanceador de carga.
Pelo menos um IP público ou prefixo de IP é necessário para permitir o tráfego de saída do cluster do AKS. O IP público ou o prefixo de IP é necessário para manter a conectividade entre o painel de controle e os nós do agente, bem como para manter a compatibilidade com as versões anteriores do AKS. Você tem as seguintes opções para especificar IPs públicos ou prefixos de IP ao usar um balanceador de carga SKU Standard:
- Fornecer seus IPs públicos.
- Forneça seus prefixos de IP público.
- Especifique um número até 100 para permitir que o cluster do AKS crie esse tanto de IPs públicos de SKU Standard no mesmo grupo de recursos que o cluster do AKS. Esse grupo de recursos geralmente é nomeado com
MC_no início. O AKS atribui o IP público ao balanceador de carga de SKU Standard. Por padrão, um IP público é criado automaticamente no mesmo grupo de recursos que o cluster do AKS se nenhum IP público, prefixo de IP público ou número de IPs for especificado. Você também deve permitir endereços públicos e evitar a criação de qualquer política do Azure que cause banimento à criação do IP.
Um IP público criado pelo AKS não pode ser reutilizado como um endereço IP público BYO (traga o seu). Você deve criar e gerenciar todos os endereços IP personalizados.
Você só pode definir o SKU do balanceador de carga ao criar um cluster do AKS. Você não poderá alterar o SKU do balanceador de carga depois que um cluster do AKS for criado.
Você só pode usar um tipo de SKU do balanceador de carga (Básico ou Standard) em um cluster.
Os balanceadores de carga de SKU Standard dão suporte apenas a endereços IP de SKU Standard.
Não há suporte para o Serviço de Link Privado quando o tipo de pool de back-end do balanceador de carga é definido como
nodeIP.
Criar um serviço de balanceador de carga no AKS
Depois que você criar um cluster do AKS com o tipo de saída LoadBalancer (padrão), seu cluster estará pronto para usar o balanceador de carga para expor serviços.
Crie um manifesto do serviço chamado
public-svc.yaml, que cria um serviço público do tipoLoadBalancer.apiVersion: v1 kind: Service metadata: name: public-svc spec: type: LoadBalancer ports: - port: 80 selector: app: public-app
Especificar o endereço IP do balanceador de carga
Se você quiser usar um endereço IP específico com o balanceador de carga, terá duas opções para especificar o endereço IP:
-
Definir anotações de serviço (recomendado): use
service.beta.kubernetes.io/azure-load-balancer-ipv4para um endereço IPv4 eservice.beta.kubernetes.io/azure-load-balancer-ipv6para um endereço IPv6. -
Adicione a propriedade LoadBalancerIP ao manifesto YAML do balanceador de carga: adicione a
Service.Spec.LoadBalancerIPpropriedade ao manifesto YAML do balanceador de carga. Esse campo está substituindo o upstream Kubernetes a seguir e não pode dar suporte a pilha dupla. O uso atual permanece o mesmo e espera-se que os serviços existentes funcionem sem modificação.
Implante o manifesto do serviço de balanceamento de carga
Implante o manifesto do serviço público usando
kubectl applye especifique o nome do manifesto YAML.kubectl apply -f public-svc.yamlO Azure Load Balancer é configurado com um novo IP público que faz a frente do novo serviço. Como o Azure Load Balancer pode ter vários IPs de front-end, cada novo serviço implantado recebe um novo IP de front-end dedicado para ser acessado de forma exclusiva.
Confirme se o serviço foi criado e se o balanceador de carga está configurado usando o
kubectl get servicecomando.kubectl get service public-svcQuando você exibe os detalhes do serviço, o endereço IP público criado para esse serviço no balanceador de carga é mostrado na coluna EXTERNAL-IP da saída. Pode levar alguns minutos para que o endereço IP mude de <pendente> para um endereço IP público real. A saída de exemplo a seguir mostra a criação bem-sucedida do serviço:
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE default public-svc LoadBalancer 10.0.39.110 203.0.113.187 80:32068/TCP 52sObtenha informações mais detalhadas sobre seu serviço usando o
kubectl describe servicecomando.kubectl describe service public-svcA saída de exemplo a seguir é uma versão condensada da saída após a execução de
kubectl describe service. A Entrada do Azure Load Balancer mostra o endereço IP externo exposto pelo serviço. O IP mostra os endereços internos.Name: public-svc Namespace: default Labels: <none> Annotations: <none> Selector: app=public-app ... IP: 10.0.39.110 ... LoadBalancer Ingress: 203.0.113.187 ... TargetPort: 80/TCP NodePort: 32068/TCP ... Session Affinity: None External Traffic Policy: Cluster ...