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.
Embora você possa rotear o tráfego de saída por meio de um Azure Load Balancer, há limitações no número de fluxos de saída de tráfego que você pode ter. Gateway da NAT do Azure permite até 64.512 fluxos de tráfego UDP e TCP de saída por endereço IP com um máximo de 16 endereços IP. Há três tipos de saída que dão suporte ao gateway NAT – managedNATGatewayV2 (versão prévia) managedNATGatewaye userAssignedNATGateway.
Em um modelo de gateway NAT gerenciado, o AKS gerencia o gateway NAT para fornecer conectividade de saída para os nós do seu cluster. O AKS dá suporte a duas opções de gateway NAT gerenciadas: a mais managedNATGatewayV2 recente e a original managedNATGateway.
managedNATgatewayV2 usa o gateway NAT StandardV2, que é com redundância de zona por padrão, fornecendo conectividade de saída contínua mesmo se uma zona de disponibilidade falhar. Ao contrário do gateway NAT Padrão, você não precisa especificar uma zona, pois a redundância de zona é incorporada automaticamente. O gateway NAT StandardV2 também dá suporte a IPv6, maior taxa de transferência e logs de fluxo. Para obter mais detalhes, consulte o SKU do gateway NAT StandardV2.
Importante
O tipo de saída managedNATGatewayV2 está atualmente em PREVIEW.
Consulte os Termos Suplementares de Uso para visualizações do Microsoft Azure para termos legais que se aplicam a recursos do Azure que estão em versão beta, prévia ou ainda não liberados para disponibilidade geral para o público.
userAssignedNATGateway é um recurso de gateway NAT gerenciado pelo cliente que você configura de forma independente do AKS e é necessário ao usar uma rede virtual própria.
Este artigo mostra como criar um cluster AKS (Serviço de Kubernetes do Azure) com um gateway NAT gerenciado e um gateway NAT atribuído pelo usuário para tráfego de saída. Ele também mostra como desabilitar o OutboundNAT no Windows.
Antes de começar
- Verifique se você está usando a versão mais recente do CLI do Azure.
- Verifique se você está usando o Kubernetes versão 1.20.x ou superior.
- O Gateway da NAT gerenciado é incompatível com redes virtuais personalizadas.
Importante
Em clusters não privados, o tráfego de cluster do servidor de API é roteado e processado por meio do tipo de saída de clusters. Para impedir que o tráfego do servidor de API seja processado como um tráfego público, considere o uso de um cluster privado ou confira o recurso Integração VNET do servidor de API.
Criar um cluster AKS com um managedNATgatewayV2
- Crie um cluster do AKS com um gateway NAT StandardV2 gerenciado usando o comando
az aks createcom os parâmetros--outbound-type managedNATGateway,--nat-gateway-outbound-ips,--nat-gateway-outbound-ip-prefixes,--nat-gateway-managed-outbound-ip-count,--nat-gateway-managed-outbound-ipv6-counte--nat-gateway-idle-timeout. - Ao configurar IPs de saída para um
managedNATgatewayV2, você deve usar uma das seguintes abordagens — você não pode usar os IPs de saída Azure gerenciados e definidos pelo cliente:-
Azure-managed IPs — use
--nat-gateway-managed-ip-outbound-counte/ou--nat-gateway-managed-outbound-ipv6-countpara que Azure aloque e gerencie automaticamente os IPs públicos de saída em seu nome. -
IPs definidos pelo cliente – use
--nat-gateway-outbound-ipse/ou--nat-gateway-outbound-ip-prefixespara trazer seus endereços IP pré-provisionados ou prefixos, dando a você controle total sobre os endereços específicos usados para o tráfego de saída. O Gateway da NAT Padrão V2 requer o uso de novos IPs Padrão V2. Os IPs públicos de SKU Padrão existentes não funcionam com o Gateway da NAT StandardV2.
-
Azure-managed IPs — use
A tabela a seguir descreve cada parâmetro IP de saída e quando usá-lo:
| Parâmetro | Entrada | Versão IP | Quem gerencia os IPs públicos |
|---|---|---|---|
--nat-gateway-managed-outbound-ip-count |
Valor no intervalo de [1, 16]. Número desejado de IPv4s de saída para conexão de saída do gateway da NAT. | IPv4 | Azure |
--nat-gateway-managed-outbound-ipv6-count |
Valor no intervalo de [1, 16]. Número desejado de IPv6s de saída para conexão de saída do gateway da NAT. | IPv6 | Azure |
--nat-gateway-outbound-ips |
IDs de recursos IPs públicos separados por vírgula para conexão de saída do gateway NAT. | IPv4 ou IPv6 | Cliente |
--nat-gateway-outbound-ip-prefixes |
IDs de recursos de prefixos IPs separadas por vírgulas para conexão de saída do gateway da NAT. | IPv4 ou IPv6 | Cliente |
managedNATGatewayV2 tipo de saída está atualmente em Versão Prévia, para usar esse tipo de saída, as etapas a seguir são necessárias para instalar a extensão aks-preview CLI do Azure e registrar o sinalizador de recurso ManagedNATGatewayV2Preview.
Importante
As funcionalidades em versão preliminar do AKS estão disponíveis de forma optativa e por autoatendimento. As versões prévias são fornecidas “no estado em que se encontram” e “conforme disponíveis” e são excluídas dos contratos de nível de serviço e da garantia limitada. As versões prévias do AKS são parcialmente cobertas pelo suporte ao cliente em uma base de melhor esforço. Dessa forma, esses recursos não são destinados ao uso em produção. Para obter mais informações, consulte os seguintes artigos:
- Políticas de suporte do AKS
- perguntas frequentes Suporte do Azure
Instale ou atualize a extensão de visualização CLI do Azure usando o comando
az extension addouaz extension update.A versão mínima da extensão CLI do Azure do aks-preview é
20.0.0b1.# Install the aks-preview extension az extension add --name aks-preview # Update the extension to make sure you have the latest version installed az extension update --name aks-previewRegistrar o sinalizador de recurso
ManagedNATGatewayV2PreviewRegistre o sinalizador de recurso
ManagedNATGatewayV2Previewusando o comandoaz feature register.az feature register --namespace "Microsoft.ContainerService" --name "ManagedNATGatewayV2Preview"Verifique o registro bem-sucedido usando o
az feature showcomando. Leva alguns minutos para que o registro seja concluído.az feature show --namespace "Microsoft.ContainerService" --name "ManagedNATGatewayV2Preview"Depois que o recurso mostrar
Registered, atualize o registro do provedor de recursosMicrosoft.ContainerServiceusando o comandoaz provider register.Os comandos a seguir criam o grupo de recursos necessário, o IP público e os recursos de prefixo IP públicos a serem anexados ao gateway NAT e o cluster do AKS com um gateway NAT StandardV2 gerenciado.
Crie um grupo de recursos usando o comando
az group create.export RANDOM_SUFFIX=$(openssl rand -hex 3) export MY_RG="myResourceGroup$RANDOM_SUFFIX" export MY_AKS="myNatV2Cluster$RANDOM_SUFFIX" export MY_IP="myNatOutboundIP$RANDOM_SUFFIX" export MY_IP_PREFIX="myNatOutboundIPPrefix$RANDOM_SUFFIX" az group create --name $MY_RG --location "eastus2"Crie um endereço IP público IPv4 com redundância de zona e um prefixo IP público usando o
az network public-ip createcomando. Armazene$MY_IPe$MY_IP_PREFIXe use-os como IPs de saída para o gateway de NAT StandardV2 gerenciado.export MY_IP_ID=$(az network public-ip create \ --resource-group $MY_RG \ --name $MY_IP \ --location eastus2 \ --sku StandardV2 \ --allocation-method Static \ --version IPv4 \ --zone 1 2 3 \ --query id \ --output tsv) export MY_IP_PREFIX_ID=$(az network public-ip prefix create \ --resource-group $MY_RG \ --name $MY_IP_PREFIX \ --location eastus2 \ --length 31 \ --sku StandardV2 \ --version IPv4 \ --zone 1 2 3 \ --query id \ --output tsv)Crie o cluster do AKS e faça referência ao endereço IP público (
$MY_IP_ID) e ao prefixo IP público ($MY_IP_PREFIX_ID).az aks create \ --resource-group $MY_RG \ --name $MY_AKS \ --node-count 3 \ --outbound-type managedNATGatewayV2 \ --nat-gateway-outbound-ips $MY_IP_ID \ --nat-gateway-outbound-ip-prefixes $MY_IP_PREFIX_ID \ --nat-gateway-idle-timeout 4 \ --generate-ssh-keys
Atualize os IPs de saída, os prefixos de IP de saída, a contagem de IP de saída gerenciada ou o tempo limite ocioso usando o comando az aks update com o parâmetro --nat-gateway-outbound-ips, --nat-gateway-outbound-ip-prefixes, --nat-gateway-managed-outbound-count, --nat-gateway-managed-outbound-ipv6-count ou --nat-gateway-idle-timeout. Não é possível atualizar o managedNATGatewayV2 para alternar entre endereços IP de saída definidos pelo cliente e gerenciados após a criação. A configuração de IP de saída é determinada quando o Gateway NAT StandardV2 é inicialmente criado e permanece imutável.
Criar um cluster AKS com um managedNATgateway
Crie um cluster do AKS com um Gateway da NAT Padrão gerenciado usando o comando
az aks createcom--outbound-type managedNATGateway. parâmetros--nat-gateway-managed-outbound-ip-counte--nat-gateway-idle-timeout. Se você quiser que o gateway nat opere fora da zona de disponibilidade específica, especifique a zona usando--zones.Um recurso de gateway de NAT gerenciado não pode ser utilizado em várias zonas de disponibilidade. Para conectividade de saída com redundância de zona, considere usar
managedNATgatewayV2.Se nenhuma zona for especificada quando você criar um gateway de NAT gerenciado, o gateway de NAT será implantado em "nenhuma zona" por padrão. Quando o Gateway NAT é colocado em sem zona, o Azure coloca o recurso em uma zona para você. Para obter mais informações sobre o modelo de implantação não zonal, consulte gateway da NAT não zonal.
Criar um cluster AKS com um userAssignedNatGateway
Essa configuração requer configuração própria de rede (via Azure CNI) e que o gateway NAT esteja preconfigurado na sub-rede. Tanto gateways da NAT Padrão quanto Padrão V2 são suportados para este outbound-type. Os comandos a seguir criam os recursos necessários para implantar um recurso de gateway NAT StandardV2 para o cluster do AKS.
Crie um grupo de recursos usando o comando
az group create.export RANDOM_SUFFIX=$(openssl rand -hex 3) export MY_RG="myResourceGroup$RANDOM_SUFFIX" az group create --name $MY_RG --location southcentralusCrie uma identidade gerenciada para permissões de rede e armazene a ID em
$IDENTITY_IDpara uso posterior.export IDENTITY_NAME="myNatClusterId$RANDOM_SUFFIX" export IDENTITY_ID=$(az identity create \ --resource-group $MY_RG \ --name $IDENTITY_NAME \ --location southcentralus \ --query id \ --output tsv)Resultados:
/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myNatClusterIdxxxCrie um IP público StandardV2 para o gateway NAT usando o
az network public-ip createcomando. Um gateway NAT StandardV2 requer um endereço IP público StandardV2.export PIP_NAME="myNatGatewayPip$RANDOM_SUFFIX" az network public-ip create \ --resource-group $MY_RG \ --name $PIP_NAME \ --location southcentralus \ --allocation-method Static \ --version IPv4 \ --zone 1 2 3 \ --sku standard-v2Crie o gateway NAT StandardV2 usando o
az network nat gateway createcomando.export NATGATEWAY_NAME="myNatGateway$RANDOM_SUFFIX" az network nat gateway create \ --resource-group $MY_RG \ --name $NATGATEWAY_NAME \ --location southcentralus \ --public-ip-addresses $PIP_NAME \ --sku StandardV2 --idle-timeout 4Importante
Para garantir a redundância de zona, é recomendável implantar um recurso de gateway NAT StandardV2, que se estende por várias zonas de disponibilidade em uma região. Isso garante a conectividade de saída contínua mesmo se uma única zona falhar. Para obter mais detalhes sobre o gateway NAT StandardV2 e seus benefícios, consulte o Gateway NAT StandardV2. Em comparação, um recurso de gateway nat padrão fornece resiliência somente dentro da zona de disponibilidade na qual ele é implantado.
Criar uma rede virtual usando o comando
az network vnet create.export VNET_NAME="myVnet$RANDOM_SUFFIX" az network vnet create \ --resource-group $MY_RG \ --name $VNET_NAME \ --location southcentralus \ --address-prefixes 172.16.0.0/20Crie uma sub-rede na rede virtual com o Gateway da NAT e armazene a ID em
$SUBNET_IDpara uso posterior.export SUBNET_NAME="myNatCluster$RANDOM_SUFFIX" export SUBNET_ID=$(az network vnet subnet create \ --resource-group $MY_RG \ --vnet-name $VNET_NAME \ --name $SUBNET_NAME \ --address-prefixes 172.16.0.0/22 \ --nat-gateway $NATGATEWAY_NAME \ --query id \ --output tsv)Crie um cluster do AKS usando a sub-rede com o Gateway da NAT e a identidade gerenciada usando o comando
az aks create.export AKS_NAME="myNatCluster$RANDOM_SUFFIX" az aks create \ --resource-group $MY_RG \ --name $AKS_NAME \ --location southcentralus \ --network-plugin azure \ --vnet-subnet-id $SUBNET_ID \ --outbound-type userAssignedNATGateway \ --assign-identity $IDENTITY_ID \ --generate-ssh-keys
Desabilitar OutboundNAT para Windows
Windows OutboundNAT pode causar determinados problemas de conexão e comunicação com os pods do AKS. Um exemplo de problema é a reutilização da porta do nó. Neste exemplo, o Windows OutboundNAT utiliza portas para traduzir o IP do pod para o IP do host do nó Windows, o que pode resultar em uma conexão instável com o serviço externo devido ao esgotamento de portas.
Windows habilita o OutboundNAT por padrão. Agora você pode desabilitar manualmente o OutboundNAT ao criar novos pools de agentes Windows.
Pré-requisitos
- Cluster do AKS existente com a versão v1.26 ou superior. Se você estiver usando o Kubernetes versão 1.25 ou posterior, precisará atualizar sua configuração de implantação.
Limitações
- Não é possível definir o tipo de saída do cluster como LoadBalancer. Você pode definir como Gateway da NAT ou UDR:
- NAT Gateway: o Gateway nat pode lidar automaticamente com a conexão NAT e é mais poderoso do que Standard Load Balancer. Você poderá gerar custos extras com essa opção.
- UDR (UserDefinedRouting): tenha em mente as limitações de porta ao configurar as regras de roteamento.
- Caso você precise alternar de um balanceador de carga para o Gateway da NAT, adicione um gateway da NAT à VNet ou execute
az aks upgradepara atualizar o tipo de saída.
Observação
O UserDefinedRouting tem as seguintes limitações:
- SNAT com Balanceador de Carga (deve usar o OutboundNAT padrão) tem "64 portas no IP do host".
- SNAT por Firewall do Azure (desativar OutboundNAT) tem 2496 portas por IP público.
- O SNAT do Gateway da NAT tem 64.512 portas por IP público (é necessário desabilitar a OutboundNAT).
- Se o intervalo de portas Firewall do Azure não for suficiente para seu aplicativo, você precisará usar o Gateway de NAT.
- Firewall do Azure não realiza SNAT com regras de rede quando o endereço IP de destino está no intervalo de endereços IP privado conforme IANA RFC 1918 ou espaço de endereço compartilhado conforme IANA RFC 6598.
Desabilitar manualmente o OutboundNAT para Windows
Desabilite manualmente o OutboundNAT para Windows ao criar novos pools de agentes Windows usando o comando
az aks nodepool addcom o sinalizador--disable-windows-outbound-nat.Observação
Você pode usar um cluster do AKS existente, mas talvez precise atualizar o tipo de saída e adicionar um pool de nós para habilitar o
--disable-windows-outbound-nat.O comando a seguir adiciona um pool de nós Windows a um cluster do AKS existente, desabilitando OutboundNAT.
export WIN_NODEPOOL_NAME="win$(head -c 1 /dev/urandom | xxd -p)" az aks nodepool add \ --resource-group $MY_RG \ --cluster-name $MY_AKS \ --name $WIN_NODEPOOL_NAME \ --node-count 3 \ --os-type Windows \ --disable-windows-outbound-natResultados:
{ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myNatClusterxxx/agentPools/mynpxxx", "name": "mynpxxx", "osType": "Windows", "provisioningState": "Succeeded", "resourceGroup": "myResourceGroupxxx", "type": "Microsoft.ContainerService/managedClusters/agentPools" }
Próximas etapas
Para obter mais informações sobre Gateway da NAT do Azure, consulte Gateway da NAT do Azure.