Utwórz zarządzaną lub przypisaną przez użytkownika bramę NAT dla swojego klastra Azure Kubernetes Service (AKS)

Dotyczy: ✔️ AKS Automatic AKS Standard ✔️

W przypadku większości obciążeń produkcyjnych AKS Automatic to zalecany, gotowy do użycia produkcyjnego domyślny wybór dla usługi AKS. Klastry automatyczne AKS obejmują wstępnie skonfigurowaną zarządzaną bramę NAT.

W usłudze AKS Standard można utworzyć lub skonfigurować zarządzaną bramę NAT, jeśli chcesz korzystać w klastrze z łączności wychodzącej zarządzanej przez usługę AKS. W scenariuszach sieciowych typu bring-your-own (BYO) użyj bramy NAT przypisanej przez użytkownika.

Chociaż można kierować ruch wychodzący przez Azure Load Balancer, istnieją ograniczenia dotyczące liczby przepływów wychodzących ruchu, które można mieć. Usługa Azure NAT Gateway obsługuje do 64 512 przepływów ruchu wychodzącego UDP i TCP na każdy adres IP, przy maksymalnie 16 adresach IP. Brama NAT jest obsługiwana przez dwa typy ruchu wychodzącego: managedNATGateway i userAssignedNATGateway.

W tym artykule pokazano, jak utworzyć klaster AKS z zarządzaną bramą NAT i bramą NAT przypisaną przez użytkownika dla ruchu wychodzącego. Pokazano również, jak wyłączyć funkcję OutboundNAT dla Windows.

Uwaga

Począwszy od interfejsu API w wersji 2026-06-01, outboundType: managedNATGateway domyślnie używa StandardV2 NAT Gateway, który jest wyświetlany jako natGatewayProfile.sku: StandardV2 zamiast typu ruchu wychodzącego managedNATGatewayV2 używanego w wersji zapoznawczej. Wersje 2026-01-02-preview interfejsu API w wersji zapoznawczej do 2026-05-02-preview nadal akceptują managedNATGatewayV2 przez około jeden rok, co daje czas na przejście do managedNATGateway wersji z jawnym sku. Aby zapoznać się z datami wycofania interfejsów API w wersji zapoznawczej, zobacz dokumentację cyklu życia interfejsu API w wersji zapoznawczej usługi AKS.

Wymagania wstępne

Klastry automatyczne AKS obejmują wstępnie skonfigurowaną zarządzaną bramę NAT. Kroki opisane w tym artykule dotyczą głównie scenariuszy usługi AKS Standard oraz niestandardowej konfiguracji sieci.

  • Upewnij się, że używasz najnowszej wersji Azure CLI.
  • Upewnij się, że używasz platformy Kubernetes w wersji 1.20.x lub nowszej.
  • Zarządzana brama NAT nie jest zgodna z niestandardowymi sieciami wirtualnymi.

Ważne

W klastrach nieprywatnych ruch do serwera API klastra jest kierowany i przetwarzany za pośrednictwem typu ruchu wychodzącego klastra. Aby zapobiec przetwarzaniu ruchu serwera interfejsu API jako ruchu publicznego, rozważ użycie klastra prywatnego lub zapoznaj się z funkcją integracji z siecią wirtualną serwera interfejsu API.

Zarządzana brama NAT w AKS

AKS Automatic używa zarządzanej bramy NAT jako elementu swojej wstępnie skonfigurowanej, domyślnej konfiguracji gotowej do użycia produkcyjnego. Użyj tej sekcji, jeśli pracujesz z AKS Standard lub jeśli chcesz zrozumieć, jak działa zarządzana brama NAT w klastrze AKS.

Zarządzana brama NAT to opcja ruchu wychodzącego zarządzana przez AKS. AKS tworzy bramę NAT i zarządza nią, aby zapewnić łączność wychodzącą dla węzłów klastra.

Użyj zarządzanej bramy NAT, gdy chcesz:

  • Łączność wychodząca zarządzana przez AKS przy mniejszym narzucie operacyjnym.
  • Przyjazna dla środowiska produkcyjnego domyślna ścieżka ruchu wychodzącego.
  • Prostsze zarządzanie ruchem wychodzącym niż w przypadku wdrożenia bramy NAT zarządzanej przez klienta.
  • Standardowy model sieci AKS bez użycia własnego zasobu bramy NAT.

Tworzenie klastra AKS z zarządzaną bramą NAT

Parametry wychodzącego adresu IP

W poniższej tabeli opisano każdy parametr wychodzącego adresu IP i kiedy należy go użyć:

Parameter Dane wejściowe Wersja protokołu IP Kto zarządza publicznymi adresami IP
--nat-gateway-managed-outbound-ip-count Wartość w zakresie [1, 16]. Żądana liczba wychodzących adresów IPv4 dla połączenia wychodzącego bramy NAT. IPv4 Azure
--nat-gateway-managed-outbound-ipv6-count Wartość w zakresie [1, 16]. Pożądana liczba adresów IPv6 wychodzących dla połączenia wychodzącego z bramy NAT. IPv6 Azure
--nat-gateway-outbound-ips Identyfikatory zasobów publicznych adresów IP, rozdzielone przecinkami, dla połączenia wychodzącego przez bramę NAT. Protokół IPv4 lub IPv6 Klient
--nat-gateway-outbound-ip-prefixes Identyfikatory zasobów prefiksów publicznych IP rozdzielone przecinkami dla połączenia wychodzącego bramy NAT. Protokół IPv4 lub IPv6 Klient

Wybierz jednostkę SKU zarządzanej bramy NAT

Począwszy od wersji interfejsu API 2026-06-01, StandardV2 obsługuje jednostki SKU managedNATGateway i Standard za pośrednictwem networkProfile.natGatewayProfile.sku. StandardV2 jest wartością domyślną dla nowych klastrów w obsługiwanych regionach, gdy żądanie używa tej wersji interfejsu API lub nowszej. Żądania korzystające z wcześniejszej wersji interfejsu API zachowują dotychczasowe zachowanie Standard.

Scenario Behavior
Nowy klaster bez określonego SKU Domyślnie: StandardV2, jeśli jest dostępne. Usługa AKS weryfikuje dostępność regionalną przed zastosowaniem wartości domyślnej. W regionach, w których usługa StandardV2 nie jest dostępna, usługa AKS używa Standard.
Istniejący klaster Standard Nadal używa tego zasobu bramy NAT. Wersja API 2026-06-01 i nowsze zwracają właściwość natGatewayProfile.sku tylko do odczytu jako Standard.
Uaktualnij z Standard na StandardV2 Ustaw opcję networkProfile.natGatewayProfile.sku na StandardV2.
Obniżenie z StandardV2 do Standard Niewspierane.

Zalecana jest usługa StandardV2 NAT Gateway, ponieważ jest ona domyślnie nadmiarowa strefowo i oferuje większą przepustowość oraz wyższą przepływność. StandardV2 wymaga publicznych adresów IP i prefiksów StandardV2. Istniejące zasoby publicznego adresu IP Standard SKU nie są zgodne z StandardV2 NAT Gateway. Zapoznaj się z kluczowymi ograniczeniami StandardV2 NAT Gateway, aby zobaczyć bieżącą listę nieobsługiwanych regionów.

Wymaganie dotyczące publicznego adresu IP w warstwie StandardV2 dotyczy tylko adresów IP wychodzących bramy translatora adresów sieciowych. Zarządzany przez usługę AKS moduł równoważenia obciążenia, który obsługuje type: LoadBalancer usługi, pozostaje modułem równoważenia obciążenia Standard i wymaga publicznych adresów IP w warstwie Standard. Jeśli wstępnie aprowizujesz spis publicznych adresów IP z tagami, zaplanuj obie jednostki SKU: StandardV2 dla ruchu wychodzącego bramy NAT i Standard dla usług ruchu przychodzącego.

Możliwości jednostki SKU zarządzanej bramy NAT

Typ managedNATGateway ruchu wychodzącego obsługuje różne możliwości w zależności od wartości networkProfile.natGatewayProfile.sku.

Capability StandardV2 Standard
Ustawienie domyślne dla nowych klastrów Domyślnie, jeśli dostępne, chyba że klient jawnie wybierze Standard. Używane w przypadku jawnego wybrania lub gdy standardV2 nie jest dostępny w regionie.
Zachowanie strefy dostępności Domyślnie z nadmiarowością strefową. Strefowe lub niezonowe, w zależności od konfiguracji klastra.
wychodzące adresy IPv4 zarządzane przez Azure Wsparte. Wsparte.
Wychodzące adresy IPv6 zarządzane przez Azure Wsparte. Niewspierane.
Adresy IP i prefiksy wychodzące zdefiniowane przez klienta Obsługiwane w przypadku publicznych adresów IP i prefiksów StandardV2. Nieobsługiwane w przypadku bramy NAT zarządzanej przez usługę AKS.

Utwórz klaster AKS

Utwórz klaster usługi AKS, uruchamiając az aks create polecenie za pomocą parametru --outbound-type managedNATGateway . Domyślnie usługa AKS używa SKU StandardV2 w obsługiwanych regionach i SKU Standard w nieobsługiwanych regionach.

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

Ważne

Istniejącą zarządzaną bramę translatora adresów sieciowych w warstwie Standard można uaktualnić do warstwy StandardV2, ale nie można obniżyć zarządzanej bramy translatora adresów sieciowych w warstwie StandardV2 do warstwy Standard.

Konfigurowanie wychodzących adresów IP dla zarządzanej bramy NAT StandardV2

W regionach, w których dostępne jest StandardV2, skonfiguruj adresy wychodzące przy użyciu jednej z następujących metod. Nie można łączyć konfiguracji wychodzących adresów IP zarządzanej przez platformę Azure i zdefiniowanej przez klienta.

Użyj adresów IP zarządzanych przez Azure

Użyj polecenia managedOutboundIPProfile, aby usługa AKS przydzielała i zarządzała wychodzącymi publicznymi adresami IPv4 i IPv6.

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

Używanie adresów IP i prefiksów zdefiniowanych przez klienta

Użyj funkcji outboundIPs i outboundIPPrefixes, aby podać wstępnie utworzone publiczne adresy IP lub prefiksy. Te zasoby muszą używać jednostki SKU StandardV2. Istniejące publiczne adresy IP i prefiksy SKU Standard nie są zgodne z bramą NAT StandardV2.

  1. Utwórz strefowo nadmiarowy publiczny adres IP StandardV2 i prefiks publicznego adresu IP.

    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. Wdróż zarządzany typ ruchu wychodzącego NAT Gateway w regionie obsługującym StandardV2 NAT Gateway i odwołaj się do publicznego adresu IP i prefiksu w konfiguracji klastra AKS.

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

Model własności adresów IP ruchu wychodzącego jest określany podczas początkowego tworzenia bramy NAT StandardV2. Poszczególne zasoby wychodzących adresów IP można zmienić w ramach wybranego modelu, ale nie można przełączyć istniejącej bramy NAT między adresami IP ruchu wychodzącego zarządzanymi przez platformę Azure i zdefiniowanymi przez klienta. Nie można również zmienić SKU bramy NAT. Obniżenie z warstwy StandardV2 do Standard nie jest obsługiwane.

Utwórz klaster usługi AKS za pomocą elementu userAssignedNatGateway

Ta konfiguracja wymaga użycia własnej sieci (za pośrednictwem Azure CNI) oraz wstępnej konfiguracji bramy NAT w podsieci. W tym outbound-type obsługiwane są zarówno bramy NAT Standard, jak i StandardV2. Następujące polecenia umożliwiają utworzenie wymaganych zasobów do wdrożenia zasobu bramy NAT StandardowaV2 dla klastra AKS.

  1. Utwórz grupę zasobów przy użyciu az group create polecenia .

    # 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. Utwórz tożsamość zarządzaną na potrzeby uprawnień sieciowych i zapisz identyfikator w $IDENTITY_ID, aby użyć go później.

    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)
    

    Przykładowy wynik:

    /xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myNatClusterIdxxx
    
  3. Utwórz publiczny adres IP typu StandardV2 dla bramy NAT przy użyciu polecenia az network public-ip create. Brama NAT StandardV2 wymaga publicznego adresu IP 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. Utwórz bramę NAT StandardV2 przy użyciu polecenia az network nat gateway create.

    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
    

    Ważne

    Aby zapewnić nadmiarowość między strefami, wdroż zasób bramy NAT StandardV2, który obejmuje wiele stref dostępności w regionie. Ta konfiguracja zapewnia ciągłą łączność wychodzącą, nawet jeśli jedna strefa ulegnie awarii. Aby uzyskać więcej informacji na temat bramy translatora adresów sieciowych w warstwie StandardowaV2 i jej zalet, zobacz Brama translatora adresów sieciowych w warstwie StandardowaV2. Dla porównania zasób bramy NAT w warstwie Standard zapewnia odporność tylko w strefie dostępności, w której został wdrożony.

  5. Utwórz sieć wirtualną przy użyciu az network vnet create polecenia .

    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. Utwórz podsieć w sieci wirtualnej przy użyciu bramy translatora adresów sieciowych i zapisz identyfikator do $SUBNET_ID późniejszego użycia.

    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. Utwórz klaster usługi AKS przy użyciu podsieci z bramą NAT i tożsamością zarządzaną przy użyciu polecenia 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
    

Zagadnienia dotyczące środowiska produkcyjnego

Jeśli używasz zarządzanej bramy NAT w środowisku produkcyjnym, zaplanuj sposób obsługi ruchu wychodzącego, dostęp do serwera API oraz odporność obciążeń.

  • Użyj rozwiązania AKS Automatic, jeśli potrzebujesz zalecanych, gotowych do użycia w środowisku produkcyjnym ustawień domyślnych dla większości obciążeń AKS.
  • Użyj zarządzanej bramy NAT w usłudze AKS w warstwie Standard, gdy chcesz korzystać z łączności wychodzącej zarządzanej przez usługę AKS bez konieczności wdrażania własnej bramy NAT.
  • Użyj klastra prywatnego lub integracji serwera API z siecią wirtualną, jeśli chcesz ograniczyć ekspozycję ruchu do serwera API.
  • Przed rozpoczęciem pracy na żywo zapoznaj się z wymaganiami dotyczącymi wychodzących adresów IP.
  • Jeśli obciążenia zależą od stałych adresów wychodzących, przed wdrożeniem sprawdź, czy zarządzana brama translatora adresów sieciowych spełnia te wymagania.
  • Jeśli musisz zarządzać NAT niezależnie od AKS, użyj bramy NAT przypisanej przez użytkownika.

Wyłączanie NAT ruchu wychodzącego dla Windows

Windows OutboundNAT może powodować pewne problemy z połączeniem i komunikacją z podami w usłudze AKS. Przykładem problemu jest ponowne użycie portu węzła. W tym przykładzie Windows OutboundNAT używa portów do tłumaczenia adresu IP zasobnika na adres IP hosta węzła Windows, co może spowodować niestabilne połączenie z usługą zewnętrzną z powodu problemu z wyczerpaniem portów.

Windows domyślnie włącza funkcję OutboundNAT. Teraz można ręcznie wyłączyć funkcję OutboundNAT podczas tworzenia nowych pul agentów Windows.

Wymagania wstępne i ograniczenia

  • Potrzebny jest istniejący klaster AKS w wersji v1.26 lub nowszej. Jeśli używasz platformy Kubernetes w wersji 1.25 lub starszej, zaktualizuj konfigurację wdrożenia.
  • Nie można ustawić typu ruchu wychodzącego dla klastra na LoadBalancer. Można ustawić dla brama NAT lub trasy zdefiniowanej przez użytkownika:
    • NAT Gateway: automatycznie obsługuje połączenia NAT i zapewnia większe możliwości niż usługa Load Balancer w warstwie Standardowa. W przypadku korzystania z tej opcji mogą zostać naliczone dodatkowe opłaty.
    • Trasa zdefiniowana przez użytkownika (UserDefinedRouting): podczas konfigurowania reguł routingu należy pamiętać o ograniczeniach portów.
    • Aby przełączyć się z usługi Load Balancer na bramę NAT, możesz dodać bramę NAT do sieci wirtualnej (VNet) lub uruchomić polecenie az aks upgrade, aby zaktualizować typ ruchu wychodzącego.

Uwaga

UserDefinedRouting ma następujące ograniczenia:

  • SNAT realizowany przez usługę Load Balancer (musi używać domyślnego ustawienia OutboundNAT) udostępnia 64 porty na adresie IP hosta.
  • SNAT by Azure Firewall (disable OutboundNAT) ma 2496 portów na publiczny adres IP.
  • SNAT by NAT Gateway (disable OutboundNAT) ma 64 512 portów na publiczny adres IP.
  • Jeśli zakres portów Azure Firewall jest niewystarczający dla Twojej aplikacji, musisz użyć NAT Gateway.
  • Azure Firewall nie stosuje SNAT z zasadami sieciowymi, gdy docelowy adres IP znajduje się w prywatnym zakresie adresów IP wg IANA RFC 1918 lub we współużytkowanej przestrzeni adresowej zgodnie z IANA RFC 6598.

Ręczne wyłączanie OutboundNAT dla Windows

  • Ręcznie wyłącz funkcję OutboundNAT dla Windows podczas tworzenia nowych pul agentów Windows przy użyciu polecenia az aks nodepool add z flagą --disable-windows-outbound-nat.

    Uwaga

    Możesz użyć istniejącego klastra AKS, ale być może trzeba będzie zaktualizować typ wyjściowy i dodać pulę węzłów, aby włączyć --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
    

    Przykładowy wynik:

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

Aby uzyskać więcej informacji na temat Azure NAT Gateway i usługi AKS Automatic, zobacz następujące artykuły: