Personalize a saída do cluster com uma tabela de roteamento definida pelo usuário no Serviço de Kubernetes do Azure (AKS)

Você pode personalizar a saída dos seus clusters do Azure Kubernetes Service (AKS) para se adequar a cenários específicos. Por padrão, o AKS provisiona um balanceador de carga de SKU Standard para saída. No entanto, a configuração padrão pode não atender aos requisitos de todos os cenários se os IPs públicos não forem permitidos ou o cenário exigir saltos extras para a saída.

Este artigo explica como personalizar a rota de saída de um cluster para dar 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 uma Solução de Virtualização de Rede (NVA).

Pré-requisitos

  • CLI do Azure versão 2.0.81 ou superior. Execute az --version para encontrar a versão. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.
  • API versão 2020-01-01 ou superior.

Requisitos e limitações

O uso do tipo de saída é um cenário de rede avançado e requer uma configuração de rede adequada. Os seguintes requisitos e limitações se aplicam ao uso do tipo de saída:

  • A configuração outboundType requer clusters do AKS com um vm-set-type de VirtualMachineScaleSets e um load-balancer-sku de Standard.
  • A configuração de outboundType para um valor de UDR requer uma rota definida pelo usuário com conectividade de saída válida para o cluster.
  • A configuração de outboundType para um valor de UDR implica que o IP de origem de entrada roteado para o balanceador de carga pode não corresponder ao endereço de destino de 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 do balanceador de carga padrão (SLB), você deve estabelecer uma saída explícita. Você deve implantar seu cluster do 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 um firewall, gateway ou proxy, para que um IP público atribuído ao balanceador de carga padrão ou dispositivo possa lidar com a Conversão de Endereços de Rede (NAT).

Criação do balanceador de carga com userDefinedRouting

Os clusters AKS com um tipo de UDR de saída recebem um balanceador de carga padrão somente quando o primeiro serviço de 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 as 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.

Observação

Os balanceadores de carga do Azure só geram encargos após uma regra ser estipulada.

Implantar um cluster com o tipo de saída de UDR e o Firewall do Azure

Para ver um aplicativo de um cluster com o tipo de saída usando uma rota definida pelo usuário,consulte este exemplo para restringir o tráfego de saída com o firewall do Azure.

Importante

O tipo de UDR de saída requer uma rota para 0.0.0.0/0 e um destino de próximo salto do 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 na Conversão de Endereços de Rede de Origem (SNAT), simplesmente adicionar essa rota não fornecerá conectividade com a Internet de saída. O AKS valida se você não criou uma rota 0.0.0.0/0 apontando para a Internet, mas sim para um gateway, NVA, etc. Ao usar um tipo de saída de UDR, 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 balanceador de carga. 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óximas etapas

Para obter mais informações sobre as rotas definidas pelo usuário e as redes do Azure, consulte: