Personalizar a saída do cluster com uma tabela de roteamento definida pelo usuário no Serviço Kubernetes do Azure (AKS)
Você pode personalizar a saída para seus clusters do Serviço Kubernetes do Azure (AKS) para se ajustar a cenários específicos. O AKS provisiona um Standard
balanceador de carga SKU para saída por padrão. No entanto, a configuração padrão pode não atender aos requisitos de todos os cenários se IPs públicos não forem permitidos ou se o cenário exigir saltos extras para saída.
Este artigo explica como personalizar a rota de saída de um cluster para oferecer suporte a cenários de rede personalizados. Esses cenários incluem aqueles que não permitem IPs públicos e exigem que o cluster fique atrás de um dispositivo virtual de rede (NVA).
Pré-requisitos
- Azure CLI versão 2.0.81 ou superior. Executar
az --version
para localizar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI). - Versão
2020-01-01
da API ou superior.
Requisitos e limitações
Usar o tipo de saída é um cenário de rede avançado e requer configuração de rede adequada. Os seguintes requisitos e limitações aplicam-se ao uso do tipo de saída:
- A configuração
outboundType
requer clusters AKS com umvm-set-type
deVirtualMachineScaleSets
e umload-balancer-sku
deStandard
. - A configuração
outboundType
como um valor de requer uma rota definida pelo usuário com conectividade deUDR
saída válida para o cluster. - A configuração
outboundType
como um valor implica que o IP de origem de entrada roteado para o balanceador de carga pode não corresponder ao endereço de destino deUDR
saída do cluster.
Visão geral da personalização da saída com uma tabela de roteamento definida pelo usuário
O AKS não configura automaticamente os caminhos de saída se userDefinedRouting
estiver definido, o que significa que você deve configurar a saída.
Quando você não usa a arquitetura SLB (balanceador de carga padrão), deve estabelecer uma saída explícita. Você deve implantar seu cluster AKS em uma rede virtual existente com uma sub-rede que tenha sido configurada anteriormente. Essa arquitetura requer o envio explícito de tráfego de saída para um dispositivo como firewall, gateway ou proxy, para que um IP público atribuído ao balanceador de carga ou dispositivo padrão possa lidar com a NAT (Network Address Translation).
Criação de balanceador de carga com userDefinedRouting
Os clusters AKS com um tipo de UDR de saída obtêm um balanceador de carga padrão somente quando o primeiro serviço Kubernetes do tipo loadBalancer
é implantado. O balanceador de carga é configurado com um endereço IP público para solicitações de entrada e um pool de back-end para solicitações de entrada. O provedor de nuvem do Azure configura regras de entrada, mas não configura o endereço IP público de saída ou as regras de saída. Seu UDR é a única fonte de tráfego de saída.
Nota
Os balanceadores de carga do Azure não incorrem em cobrança até que uma regra seja colocada.
Implantar um cluster com o tipo de saída UDR e o Firewall do Azure
Para ver um aplicativo de um cluster com tipo de saída usando uma rota definida pelo usuário, consulte este exemplo de restringir tráfego de saída com o firewall do Azure.
Importante
O tipo de saída de UDR requer uma rota para 0.0.0.0/0 e um destino de salto seguinte de NVA na tabela de rotas. A tabela de rotas já tem um padrão 0.0.0.0/0 para a Internet. Sem um endereço IP público para o Azure usar para SNAT (Tradução de Endereço de Rede de Origem), simplesmente adicionar essa rota não fornecerá conectividade de saída com a Internet. O AKS valida que você não cria uma rota 0.0.0.0/0 apontando para a Internet, mas sim para um gateway, NVA, etc. Ao usar um tipo de UDR de saída, um endereço IP público do balanceador de carga para solicitações de entrada não é criado, a menos que você configure um serviço do tipo loadbalancer. O AKS nunca cria um endereço IP público para solicitações de saída se você definir um tipo de UDR de saída.
Próximos passos
Para obter mais informações sobre rotas definidas pelo usuário e rede do Azure, consulte:
Azure Kubernetes Service