Crie um gateway NAT gerido ou atribuído pelo utilizador para o seu cluster Azure Kubernetes Service (AKS)

Aplica-se a: ✔️ AKS Automatic ✔️ AKS Standard

Para a maioria das cargas de trabalho de produção, o AKS Automatic é a opção predefinida pronta para produção recomendada para o AKS. Os clusters automáticos do AKS incluem um gateway NAT gerido pré-configurado.

No AKS Standard, pode criar ou configurar um gateway NAT gerido quando quiser conectividade de saída gerida por AKS para o seu cluster. Para cenários de rede bring-your-own (BYO), utilize um gateway NAT atribuído pelo utilizador.

Embora possa encaminhar o tráfego de saída através de um Balanceador de Carga do Azure, existem limitações quanto ao número de fluxos de tráfego de saída que pode ter. O Azure NAT Gateway suporta 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. Dois tipos de saída suportam gateway NAT: managedNATGateway e userAssignedNATGateway.

Este artigo mostra-lhe como criar um cluster AKS com gateway NAT gerido e gateway NAT atribuído pelo utilizador para tráfego de saída. Também mostra como desativar o OutboundNAT para Windows.

Nota

A partir da versão da API 2026-06-01, outboundType: managedNATGateway tem por predefinição StandardV2 NAT Gateway, que aparece como natGatewayProfile.sku: StandardV2 em vez do tipo de saída managedNATGatewayV2 usado durante a pré-visualização. As versões pré-visualizadas da API 2026-01-02-preview até 2026-05-02-preview continuam a aceitar managedNATGatewayV2 durante cerca de um ano, o que lhe dá tempo para avançar para managedNATGateway com um sku explícito. Para as datas de descontinuação das APIs de pré-visualização, consulte a documentação do ciclo de vida da API Preview do AKS.

Pré-requisitos

Os clusters automáticos do AKS incluem um gateway NAT gerido pré-configurado. Os passos deste artigo são principalmente para cenários de rede AKS Standard e personalizados.

  • Certifica-te de que estás a usar a versão mais recente do CLI do Azure.
  • Certifica-te de que estás a usar a versão 1.20.x do Kubernetes ou posterior.
  • O gateway NAT gerido não é compatível com redes virtuais personalizadas.

Importante

Em clusters não privados, o tráfego do cluster de servidores API é encaminhado e processado através do tipo de saída do cluster. Para evitar que o tráfego do servidor de API seja processado como tráfego público, considere o uso de um cluster privado ou confira o recurso de integração de rede virtual do servidor de API.

Gateway NAT gerido no AKS

O AKS Automatic utiliza o gateway NAT gerido como parte da sua configuração predefinida, pronta para produção. Use esta secção se estiver a trabalhar com o AKS Standard ou se precisar de perceber como se comporta um gateway NAT gerido num cluster AKS.

O gateway NAT gerido é a opção de saída gerida pelo AKS. O AKS cria e gere o gateway NAT para fornecer conectividade de saída aos nós do seu cluster.

Utilize gateway NAT gerido quando pretender:

  • Conectividade de saída gerida por AKS com menos sobrecarga operacional.
  • Um caminho de saída predefinido adequado para produção.
  • Gestão de saída mais simples do que uma implementação de NAT gateway gerida pelo cliente.
  • Um modelo de rede AKS padrão sem utilizar o seu próprio recurso de gateway NAT.

Criar um cluster AKS com um gateway NAT gerenciado

Parâmetros de IP de saída

A tabela seguinte descreve cada parâmetro de IP de saída e quando utilizá-lo:

Parâmetro Entrada Versão do IP Quem gere as IPs públicas
--nat-gateway-managed-outbound-ip-count Valor dentro do intervalo de [1, 16]. Número desejado de IPv4s de saída para a ligação de saída do gateway NAT. IPv4 Azure
--nat-gateway-managed-outbound-ipv6-count Valor dentro do intervalo de [1, 16]. Número desejado de IPv6s para a conexão de saída do gateway NAT. IPv6 Azure
--nat-gateway-outbound-ips IDs de recursos de IP público separados por vírgulas para a ligação de saída do NAT gateway. IPv4 ou IPv6 Cliente
--nat-gateway-outbound-ip-prefixes IDs de recurso de prefixo de IP público, separados por vírgulas, para ligação de saída do gateway NAT. IPv4 ou IPv6 Cliente

Escolha um SKU de gateway NAT gerido

A partir da versão 2026-06-01 da API, managedNATGateway suporta os SKUs StandardV2 e Standard até networkProfile.natGatewayProfile.sku. O StandardV2 é o padrão para novos clusters em regiões suportadas quando o pedido utiliza esta versão da API ou posterior. Os pedidos que utilizam uma versão anterior da API mantêm o comportamento padrão existente.

Scenario Comportamento
Novo cluster sem SKU especificado Por predefinição, utiliza StandardV2 quando disponível. O AKS valida a disponibilidade regional antes de aplicar a predefinição. Em regiões onde o StandardV2 não está disponível, o AKS utiliza Standard.
cluster standard existente Continua a utilizar este recurso de gateway NAT. A versão da API 2026-06-01 e posteriores retorna a propriedade apenas de leitura natGatewayProfile.sku como Standard.
Atualizar de Standard para StandardV2 Defina networkProfile.natGatewayProfile.sku como StandardV2.
Downgrade de StandardV2 para Standard Não suportadas.

O StandardV2 NAT Gateway é recomendado porque é redundante por zona por defeito e oferece maior largura de banda e rendimento. O StandardV2 requer endereços IP públicos e prefixos StandardV2. Os recursos públicos de IP dos SKUs Standard existentes não são compatíveis com o Gateway NAT StandardV2. Consulte as principais limitações do StandardV2 NAT Gateway para consultar a lista atual de regiões não suportadas.

O requisito de IP público StandardV2 aplica-se apenas aos IPs de saída do gateway NAT. O balanceador de carga gerido por AKS que serve type: LoadBalancer os Serviços mantém-se como um balanceador de carga Standard e requer IPs públicos Standard. Se pré-provisionares inventário de IPs públicos com etiquetas, planeia ambos os SKUs: StandardV2 para tráfego de saída do NAT gateway e Standard para serviços de entrada.

Capacidades de SKU de gateway NAT gerido

O managedNATGateway tipo de saída suporta diferentes capacidades dependendo do valor de networkProfile.natGatewayProfile.sku.

Capacidade StandardV2 Standard
Padrão para novos clusters Padrão quando disponível, a menos que o cliente selecione Standardexplicitamente . Usado quando explicitamente selecionado ou quando o StandardV2 não está disponível na região.
Comportamento da zona de disponibilidade Redundante de zona por defeito. Zonal ou não zonal, dependendo da configuração do cluster.
Endereços IPv4 de saída geridos pelo Azure Supported. Supported.
Endereços IPv6 outbound geridos pelo Azure Supported. Não suportadas.
Endereços IP de saída definidos pelo cliente e prefixos Suportado com endereços IP públicos StandardV2 e prefixos. Não é suportado para um gateway NAT gerido por AKS.

Criar um cluster do AKS

Crie um cluster AKS executando o az aks create comando com o --outbound-type managedNATGateway parâmetro. O AKS utiliza por defeito o SKU StandardV2 nas regiões suportadas e o SKU Standard nas regiões não suportadas.

az aks create \
    --resource-group <resource-group> \
    --name <cluster-name> \
    --location <location> \
    --outbound-type managedNATGateway \
    --nat-gateway-managed-outbound-ip-count 1 \
    --generate-ssh-keys

Importante

Pode atualizar um gateway NAT Standard gerido existente para StandardV2, mas não pode fazer downgrade de um gateway NAT StandardV2 gerido para Standard.

Configurar IPs de saída para um gateway NAT StandardV2 gerido

Nas regiões que têm StandardV2 disponível, configure endereços de saída utilizando uma das seguintes abordagens. Não se pode combinar a configuração de IPs de saída geridos pelo Azure e definidos pelo cliente.

Utilize IPs geridos pelo Azure

Use managedOutboundIPProfile para que o AKS aloque e gira os endereços públicos IPv4 e IPv6 de saída.

{
  "properties": {
    "networkProfile": {
      "outboundType": "managedNATGateway",
      "natGatewayProfile": {
          "managedOutboundIPProfile": {
          "count": 1,
          "countIPv6": 1
        }
      }
    }
  }
}

Utilize IPs e prefixos definidos pelo cliente

Utilizar outboundIPs e outboundIPPrefixes para fornecer endereços IP públicos pré-criados ou prefixos. Estes recursos devem utilizar o SKU StandardV2. Os endereços IP públicos e prefixos existentes do Standard SKU não são compatíveis com um gateway NAT StandardV2.

  1. Crie um endereço IP público StandardV2 redundante de zona e um prefixo IP público.

    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 publicIp.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)
    
  2. Implemente um tipo de saída de gateway NAT gerido numa região que suporte o Gateway NAT StandardV2 e refira o endereço IP público e o prefixo na configuração do cluster AKS.

    {
      "properties": {
        "networkProfile": {
          "outboundType": "managedNATGateway",
          "natGatewayProfile": {
            "outboundIPs": {
              "publicIPs": [
                "<standard-v2-public-ip-resource-id>"
              ]
            },
            "outboundIPPrefixes": {
              "publicIPPrefixes": [
                "<standard-v2-public-ip-prefix-resource-id>"
              ]
            }
          }
        }
      }
    }
    

O modelo de propriedade da IP de saída é determinado quando o gateway NAT StandardV2 é criado inicialmente. Pode alterar recursos individuais de IP de saída dentro do modelo selecionado, mas não pode alternar um gateway NAT existente entre IPs de saída geridos pelo Azure e de saída definidos pelo cliente. Também não podes mudar o SKU do gateway NAT. O downgrade de StandardV2 para Standard não é suportado.

Criar um cluster AKS com um userAssignedNatGateway

Esta configuração requer rede própria (via Azure CNI) e que um gateway NAT esteja preconfigurado na sub-rede. Tanto gateways NAT Standard como StandardV2 são suportados para isto outbound-type. Os comandos seguintes criam os recursos necessários para implementar um recurso de gateway NAT StandardV2 para o seu cluster AKS.

  1. Crie um grupo de recursos usando o az group create comando.

    # Set environment variables for resource group, AKS cluster, public IP, and public IP prefix names
    export RANDOM_SUFFIX=$(openssl rand -hex 3)
    export MY_RG="myResourceGroup$RANDOM_SUFFIX"
    
    # Create the resource group
    az group create --name $MY_RG --location southcentralus
    
  2. Crie uma identidade gerida para permissões de rede e armazene o ID $IDENTITY_ID para 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)
    

    Exemplo de saída:

    /xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myNatClusterIdxxx
    
  3. Crie um IP público StandardV2 para o gateway NAT usando o az network public-ip create comando. 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-v2
    
  4. Crie o gateway NAT StandardV2 usando o az network nat gateway create comando.

    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 4
    

    Importante

    Para garantir a redundância das zonas, implemente um recurso de gateway NAT StandardV2, que se estende por várias zonas de disponibilidade numa região. Esta configuração garante a continuação da conectividade de saída mesmo que uma única zona falhe. Para mais detalhes sobre o gateway NAT StandardV2 e os seus benefícios, consulte Gateway NAT StandardV2. Em comparação, um recurso de gateway NAT Standard fornece resiliência apenas dentro da zona de disponibilidade onde é implementado.

  5. Crie uma rede virtual usando o az network vnet create comando.

    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/20 
    
  6. Crie uma sub-rede na rede virtual usando o gateway NAT e armazene a ID para $SUBNET_ID 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)
    
  7. Crie um cluster AKS usando a sub-rede com o gateway NAT e a identidade gerenciada usando o az aks create comando.

    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
    

Considerações sobre a produção

Quando usar um gateway NAT gerido em produção, planeie o comportamento do tráfego de saída, o acesso a servidores API e a resiliência da carga de trabalho.

  • Usa o AKS Automático quando quiseres o padrão recomendado para produção para a maioria das cargas de trabalho do AKS.
  • Usa gateway NAT gerido no AKS Standard quando quiseres conectividade de saída gerida por AKS sem trazeres o teu próprio gateway NAT.
  • Use um cluster privado ou uma integração VNet de API Server quando quiser reduzir a exposição ao tráfego do servidor API.
  • Revise os requisitos de IP de saída antes de lançar.
  • Se as suas cargas de trabalho dependem de endereços de saída fixos, valide que o gateway NAT gerido cumpre esses requisitos antes da implementação.
  • Se precisares de gerir o NAT independentemente do AKS, usa um gateway NAT atribuído pelo utilizador.

Desativar OutboundNAT para Windows

O Windows OutboundNAT pode causar certos problemas de ligação e comunicação com os teus pods AKS. Um exemplo de problema é a reutilização da porta do nó. Neste exemplo, o Windows OutboundNAT usa portas para traduzir o IP do seu pod para o IP anfitrião do nó Windows, o que pode causar uma ligação instável ao serviço externo devido a um problema de esgotamento de portas.

O Windows ativa o OutboundNAT por defeito. Agora pode desativar manualmente o OutboundNAT ao criar novos pools de agentes Windows.

Pré-requisitos e limitações

  • Precisas de um cluster AKS existente com v1.26 ou posterior. Se estiveres a usar Kubernetes versão 1.25 ou anterior, atualiza a tua configuração de implementação.
  • Não podes definir o tipo de saída do cluster para Balanceador de Carga. Você pode defini-lo como Gateway NAT ou UDR:
    • NAT Gateway: O NAT Gateway gere automaticamente as ligações NAT e é mais potente do que o Balanceador de Carga Standard. Pode incorrer em custos adicionais ao utilizar esta opção.
    • UDR (UserDefinedRouting): Você deve ter em mente as limitações de porta ao configurar regras de roteamento.
    • Para mudar de um balanceador de carga para um NAT Gateway, pode adicionar um gateway NAT ao VNet ou executar az aks upgrade para atualizar o tipo de saída.

Nota

UserDefinedRouting tem as seguintes limitações:

  • O SNAT do Balanceador de Carga (deve usar o Outbound NAT predefinido) tem 64 portas no IP do anfitrião.
  • O SNAT do Azure Firewall (desativar o OutboundNAT) tem 2.496 portas por IP público.
  • O SNAT pelo NAT Gateway (com o OutboundNAT desativado) tem 64 512 portas por IP público.
  • Se o intervalo de portas do Azure Firewall não for suficiente para a sua aplicação, precisa de usar o NAT Gateway.
  • Azure Firewall não faz SNAT com as regras de rede quando o endereço IP de destino está num intervalo de endereços IP privados conforme IANA RFC 1918 ou espaço de endereçamento partilhado conforme IANA RFC 6598.

Desativar manualmente o OutboundNAT para Windows

  • Desative manualmente o OutboundNAT para Windows ao criar novos pools de agentes Windows usando o comando az aks nodepool add com a flag --disable-windows-outbound-nat.

    Nota

    Você pode usar um cluster AKS existente, mas talvez seja necessário atualizar o tipo de saída de conexão e adicionar um pool de nós para habilitar --disable-windows-outbound-nat.

    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-nat
    

    Exemplo de saída:

    {
      "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"
    }
    

Para mais informações sobre Azure NAT Gateway e AKS Automatic, consulte os seguintes artigos: