Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Azure Load Balancer opera na camada 4 do modelo OSI (Open Systems Interconnection) que suporta cenários de entrada e saída. Ele distribui fluxos de entrada que chegam ao front-end do balanceador de carga para as instâncias do pool de back-ends.
Um balanceador de carga público integrado ao AKS serve a dois propósitos:
- Forneça conexões de saída para os nós do cluster dentro da rede virtual AKS (VNet) convertendo o endereço IP privado para um endereço IP público que faz parte de seu pool de saída.
- Forneça acesso a aplicativos por meio de serviços Kubernetes do tipo
LoadBalancer, 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 integração do balanceador de carga interno, consulte Usar um balanceador de carga interno no AKS.
Pré-requisitos
- O Azure Load Balancer está disponível em duas SKUs: Basic e Standard. A SKU padrão é usada por padrão quando você cria um cluster AKS. O SKU padrão oferece acesso a funcionalidades adicionais, como um pool de back-end maior, pools de vários nós, zonas de disponibilidade e é seguro por padrão. É o SKU do balanceador de carga recomendado para AKS. Para obter mais informações sobre as SKUs Básica e Padrão, consulte Comparação de SKU do Balanceador de Carga do Azure.
- Para obter uma lista completa das anotações suportadas para serviços Kubernetes com tipo
LoadBalancer, consulte Anotações LoadBalancer. - Este artigo pressupõe que você tenha um cluster AKS com o Balanceador de Carga do Azure SKU Padrão . Se precisar de um cluster AKS, você pode criar um usando a CLI do Azure, o Azure PowerShell ou o portal do Azure.
Important
Se preferir usar seu próprio gateway, firewall ou proxy para fornecer conexão de saída, ignore a criação do pool de saída do balanceador de carga e respetivo 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 assume como padrão o tipo LoadBalancer.
Limitations
As limitações a seguir se aplicam quando você cria e gerencia clusters AKS que suportam um balanceador de carga com a SKU padrão :
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 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.
É necessário, pelo menos, um prefixo IP ou IP público para permitir o tráfego de saída do cluster do AKS. O prefixo IP ou IP público é necessário para manter a conectividade entre o plano de controlo e os nós do agente e para manter a compatibilidade com versões anteriores do AKS. Você tem as seguintes opções para especificar IPs públicos ou prefixos IP com um balanceador de carga SKU padrão :
- Disponibilizar os seus próprios IPs públicos.
- Disponibilizar os seus próprios prefixos de IPs públicos.
- Especifique um número até 100 para permitir que o cluster AKS crie muitos IPs públicos de SKU padrão no mesmo grupo de recursos que o cluster AKS. Este grupo de recursos é geralmente nomeado com
MC_no início. O AKS atribui o IP público ao balanceador de carga SKU padrão . Por padrão, um IP público é criado automaticamente no mesmo grupo de recursos que o cluster AKS se nenhum IP público, prefixo IP público ou número de IPs for especificado. Também tem de permitir endereços públicos e evitar criar políticas do Azure que proíbam a criação de IPs.
Um IP público criado pelo AKS não pode ser reutilizado como um endereço IP público personalizado (BYO). Você deve criar e gerenciar todos os endereços IP personalizados.
Você só pode definir o SKU do balanceador de carga quando cria um cluster AKS. Não pode alterar o SKU do balanceador de carga depois de ter sido criado um cluster do AKS.
Você só pode usar um tipo de balanceador de carga SKU (Basic ou Standard) em um único cluster.
Os balanceadores de carga SKU padrão suportam apenas endereços IP SKU padrão .
O Serviço de Link Privado não é suportado quando o tipo de pool de back-end do balanceador de carga está definido como
nodeIP.
Criar um serviço de balanceador de carga no AKS
Depois de criar um cluster AKS com tipo LoadBalancer de saída (padrão), o cluster estará pronto para usar o balanceador de carga para expor serviços.
Crie um manifesto de 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
Especifique o endereço IP do balanceador de carga
Se você quiser usar um endereço IP específico com o balanceador de carga, você tem 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. Este campo está sendo preterido seguindo o Kubernetes upstream e não pode suportar pilha dupla. O uso atual permanece o mesmo e espera-se que os serviços existentes funcionem sem modificações.
Implantar o manifesto de serviço do balanceador de carga
Implante o manifesto de serviço público usando
kubectl applye especifique o nome do seu manifesto YAML.kubectl apply -f public-svc.yamlO Balanceador de Carga do Azure é configurado com um novo IP público que faz frente ao novo serviço. Como o Balanceador de Carga do Azure pode ter vários IPs de front-end, cada novo serviço implantado recebe um novo IP de front-end dedicado para ser acessado exclusivamente.
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ê visualiza 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. O exemplo de saída 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 o seu serviço usando o
kubectl describe servicecomando.kubectl describe service public-svcO exemplo de saída a seguir é uma versão condensada da saída depois de executar
kubectl describe serviceo . LoadBalancer Ingress mostra o endereço IP externo exposto pelo seu serviç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 ...