Skapa en hanterad eller användartilldelad NAT-gateway för ditt Azure Kubernetes Service (AKS) kluster

Gäller för: ✔️ AKS Automatic ✔️ AKS Standard

För de flesta produktionsarbetsbelastningar är AKS Automatic den rekommenderade produktionsklara standardinställningen för AKS. AKS Automatiska kluster innehåller en förkonfigurerad hanterad NAT-gateway.

I AKS Standard kan du skapa eller konfigurera en hanterad NAT-gateway när du vill ha EN AKS-hanterad utgående anslutning för klustret. För byo-nätverksscenarier (bring-your-own) använder du en användartilldelad NAT-gateway.

Du kan dirigera utgående trafik via en Azure Load Balancer, men det finns begränsningar för hur många utgående trafikflöden du kan ha. Azure NAT Gateway stöder upp till 64 512 utgående UDP- och TCP-trafikflöden per IP-adress med högst 16 IP-adresser. Två utgående typer stöder NAT-gateway: managedNATGateway och userAssignedNATGateway.

Den här artikeln visar hur du skapar ett AKS-kluster med hanterad NAT-gateway och användartilldelad NAT-gateway för utgående trafik. Den visar också hur du inaktiverar OutboundNAT för Windows.

Kommentar

Från och med API-version 2026-06-01 använder outboundType: managedNATGateway som standard StandardV2 NAT Gateway, som visas som managedNATGatewayV2 i stället för den natGatewayProfile.sku: StandardV2 utgående typ som används under förhandsversionen. Förhandsversioner av API:et från 2026-01-02-preview till och med 2026-05-02-preview fortsätter att acceptera managedNATGatewayV2 i ungefär ett år, vilket ger dig tid att gå över till managedNATGateway med en explicit sku. Information om utfasningsdatum för förhandsversions-API:erna finns i dokumentationen om livscykeln för AKS förhandsversions-API:er.

Förutsättningar

AKS Automatiska kluster innehåller en förkonfigurerad hanterad NAT-gateway. Stegen i den här artikeln gäller främst för AKS Standard och anpassade nätverksscenarier.

  • Kontrollera att du använder den senaste versionen av Azure CLI.
  • Kontrollera att du använder Kubernetes version 1.20.x eller senare.
  • Hanterad NAT-gateway är inte kompatibel med anpassade virtuella nätverk.

Viktigt!

I icke-privata kluster dirigeras OCH bearbetas API-serverklustertrafik via klustrets utgående typ. Om du vill förhindra att API Server-trafik bearbetas som offentlig trafik kan du överväga att använda ett privat kluster eller kolla in api Server VNet-integreringsfunktionen.

Hanterad NAT-gateway i AKS

AKS Automatic använder hanterad NAT-gateway som en del av sin förkonfigurerade produktionsklara standard. Använd det här avsnittet om du arbetar med AKS Standard eller om du behöver förstå hur hanterad NAT-gateway fungerar i ett AKS-kluster.

Hanterad NAT-gateway är det AKS-hanterade utgående alternativet. AKS skapar och hanterar NAT-gatewayen för att tillhandahålla utgående anslutning för dina klusternoder.

Använd hanterad NAT-gateway när du vill:

  • AKS-hanterad utgående anslutning med mindre driftkostnader.
  • En produktionsvänlig standardväg för utgående trafik.
  • Enklare hantering av utgående trafik än en kundhanterad NAT-gateway-driftsättning.
  • En AKS-standardnätverksmodell utan att använda en egen NAT-gateway-resurs.

Skapa ett AKS-kluster med en hanterad NAT-gateway

Utgående IP-parametrar

I följande tabell beskrivs varje utgående IP-parameter och när den ska användas:

Parameter Indata IP-version Vem hanterar offentliga IP-adresser
--nat-gateway-managed-outbound-ip-count Värde i intervallet [1, 16]. Önskat antal utgående IPv4:er för utgående NAT-gatewayanslutning. IPv4 Azure
--nat-gateway-managed-outbound-ipv6-count Värde i intervallet [1, 16]. Önskat antal utgående IPv6:er för utgående NAT-gatewayanslutning. IPv6 Azure
--nat-gateway-outbound-ips Kommaavgränsade publika IP-resurs-ID:n för NAT-gatewayens utgående anslutning. IPv4 eller IPv6 Kund
--nat-gateway-outbound-ip-prefixes Offentliga IP-prefixresurs-ID:n, avgränsade med kommatecken, för utgående anslutning till NAT-gatewayen. IPv4 eller IPv6 Kund

Välj en hanterad NAT-gateway-SKU

Från och med API-versionen 2026-06-01 stöder StandardV2managedNATGateway och Standard SKU:er till och med networkProfile.natGatewayProfile.sku. StandardV2 är standard för nya kluster i regioner som stöds när begäran använder den här API-versionen eller senare. Begäranden som använder en tidigare API-version behåller det befintliga standardbeteendet.

Scenario Behavior
Nytt kluster utan angiven SKU Använder StandardV2 som standard där det är tillgängligt. AKS validerar regional tillgänglighet innan AKS tillämpar standardinställningen. I regioner där StandardV2 inte är tillgängligt använder AKS Standard.
Befintligt standardkluster Fortsätter att använda nat-gatewayresursen. API-versionen 2026-06-01 och senare returnerar den skrivskyddade natGatewayProfile.sku-egenskapen som Standard.
Uppgradera från Standard till StandardV2 Ställ in networkProfile.natGatewayProfile.sku på StandardV2.
Nedgradera från StandardV2 till Standard Stöds inte.

StandardV2 NAT Gateway rekommenderas eftersom den är zonredundant som standard och erbjuder högre bandbredd och dataflöde. StandardV2 kräver offentliga IP-adresser och prefix för StandardV2. Befintliga offentliga IP-resurser för Standard SKU är inte kompatibla med StandardV2 NAT Gateway. Granska viktiga begränsningar för StandardV2 NAT Gateway för den aktuella listan över regioner som inte stöds.

StandardV2:s offentliga IP-krav gäller endast för NAT-gatewayens utgående IP-adresser. Den AKS-hanterade lastbalanseraren som hanterar type: LoadBalancer tjänster förblir en Standard Load Balancer och kräver Standard-offentliga IP-adresser. Om du förprovisionerar ett taggat lager av offentliga IP-adresser ska du planera för båda SKU:erna: StandardV2 för NAT-gatewayens utgående trafik och Standard för inkommande tjänster.

SKU-funktioner för hanterad NAT-gateway

Den managedNATGateway utgående typen stöder olika funktioner beroende på värdet för networkProfile.natGatewayProfile.sku.

Capability StandardV2 Standard
Standardinställning för nya kluster Använd standard där det är tillgängligt såvida inte kunden uttryckligen väljer Standard. Används när det uttryckligen har valts eller när StandardV2 inte är tillgängligt i regionen.
Beteende för tillgänglighetszoner Zonredundant som standard. Zonindelad eller icke-zonindelad, beroende på klusterkonfigurationen.
Azure-hanterade utgående IPv4-adresser Supported. Supported.
Azure hanterade utgående IPv6-adresser Supported. Stöds inte.
Kunddefinierade utgående IP-adresser och prefix Stöds med offentliga IP-adresser och prefix för StandardV2. Stöds inte för en AKS-hanterad NAT-gateway.

Skapa ett AKS-kluster

Skapa ett AKS-kluster genom att az aks create köra kommandot med parametern --outbound-type managedNATGateway . AKS använder som standard StandardV2 SKU i regioner som stöds och Standard SKU i regioner som inte stöds.

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

Viktigt!

Du kan uppgradera en befintlig hanterad Standard-NAT-gateway till StandardV2, men du kan inte nedgradera en hanterad StandardV2 NAT-gateway till Standard.

Konfigurera utgående IP-adresser för en hanterad StandardV2 NAT-gateway

I regioner där StandardV2 är tillgängligt konfigurerar du utgående adresser med någon av följande metoder. Du kan inte kombinera Azure-hanterad och kunddefinierad utgående IP-konfiguration.

Använd Azure-hanterade IP-adresser

Använd managedOutboundIPProfile för att få AKS att allokera och hantera de utgående offentliga IPv4- och IPv6-adresserna.

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

Använd kunddefinierade IP-adresser och prefix

Använd outboundIPs och outboundIPPrefixes för att ange förskapade offentliga IP-adresser eller prefix. Dessa resurser måste använda StandardV2 SKU. Befintliga offentliga IP-adresser och prefix för Standard SKU är inte kompatibla med en StandardV2 NAT-gateway.

  1. Skapa en zonredundant offentlig IP-adress och ett offentligt IP-prefix av typen StandardV2.

    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. Driftsätt en hanterad NAT Gateway-utgående typ i en region som stöder StandardV2 NAT Gateway och referera till den offentliga IP-adressen och prefixet i AKS-klusterkonfigurationen.

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

Modellen för utgående IP-ägarskap bestäms när StandardV2 NAT-gatewayen skapas. Du kan ändra enskilda utgående IP-resurser i den valda modellen, men du kan inte växla en befintlig NAT-gateway mellan Azure hanterade och kunddefinierade utgående IP-adresser. Du kan inte heller ändra NAT-gatewayens SKU. Nedgradering från StandardV2 till Standard stöds inte.

Skapa ett AKS-kluster med en userAssignedNatGateway

Den här konfigurationen kräver bring-your-own-nätverk (via Azure CNI) och att NAT-gatewayen är förkonfigurerad i undernätet. Både Standard- och StandardV2 NAT-gatewayer stöds för detta outbound-type. Följande kommandon skapar de resurser som krävs för att distribuera en STANDARDV2 NAT-gatewayresurs för ditt AKS-kluster.

  1. Skapa en resursgrupp med kommandot az group create .

    # 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. Skapa en hanterad identitet för nätverksbehörigheter och lagra ID:t i $IDENTITY_ID för senare användning.

    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)
    

    Exempel på utdata:

    /xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myNatClusterIdxxx
    
  3. Skapa en offentlig IP-adress för StandardV2 för NAT-gatewayen az network public-ip create med kommandot . En StandardV2 NAT-gateway kräver en offentlig IP-adress för 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. Skapa NAT-gatewayen StandardV2 med kommandot 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
    

    Viktigt!

    För att säkerställa zonredundans distribuerar du en NAT-gatewayresurs för StandardV2, som sträcker sig över flera tillgänglighetszoner i en region. Den här konfigurationen säkerställer fortsatt utgående anslutning även om en enskild zon misslyckas. Mer information om StandardV2 NAT-gateway och dess fördelar finns i StandardV2 NAT Gateway. Däremot ger en standard-NAT-gatewayresurs redundans endast inom den tillgänglighetszon där du driftsätter den.

  5. Skapa ett virtuellt nätverk med kommandot 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/20 
    
  6. Skapa ett undernät i det virtuella nätverket med hjälp av NAT-gatewayen och lagra ID:t för $SUBNET_ID senare användning.

    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. Skapa ett AKS-kluster med hjälp av undernätet med NAT-gatewayen och den hanterade identiteten az aks create med kommandot .

    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
    

Produktionsöverväganden

När du använder hanterad NAT-gateway i produktion planerar du för utgående trafikbeteende, API-serveråtkomst och återhämtning av arbetsbelastningar.

  • Använd AKS Automatic när du vill ha den rekommenderade produktionsklara standardinställningen för de flesta AKS-arbetsbelastningar.
  • Använd hanterad NAT-gateway i AKS Standard när du vill ha en AKS-hanterad utgående anslutning utan att använda en egen NAT-gateway.
  • Använd ett privat kluster eller API Server VNet-integrering när du vill minska exponeringen för API-servertrafik.
  • Granska utgående IP-krav innan du går live.
  • Om dina arbetsbelastningar är beroende av fasta utgående adresser kontrollerar du att den hanterade NAT-gatewayen uppfyller dessa krav före distributionen.
  • Om du behöver hantera NAT oberoende av AKS använder du en användartilldelad NAT-gateway.

Inaktivera OutboundNAT för Windows

Windows OutboundNAT kan orsaka vissa anslutning- och kommunikationsproblem med dina AKS-poddar. Ett exempelproblem är återanvändning av nodport. I det här exemplet använder Windows OutboundNAT portar för att översätta din podd-IP till din Windows nodvärd-IP, vilket kan orsaka en instabil anslutning till den externa tjänsten på grund av ett portöverbelastningsproblem.

Windows aktiverar OutboundNAT som standard. Nu kan du inaktivera OutboundNAT manuellt när du skapar nya Windows agentpooler.

Krav och begränsningar

  • Du behöver ett befintligt AKS-kluster med v1.26 eller senare. Om du använder Kubernetes version 1.25 eller senare uppdaterar du distributionskonfigurationen.
  • Du kan inte ange utgående klustertyp till LoadBalancer. Du kan ställa in den på NAT Gateway eller UDR:
    • NAT Gateway: NAT Gateway hanterar NAT-anslutningar automatiskt och är kraftfullare än Standard Load Balancer. Du kan debiteras extra avgifter med det här alternativet.
    • UDR (UserDefinedRouting): Du måste ha portbegränsningar i åtanke när du konfigurerar routningsregler.
    • Om du vill växla från en lastbalanserare till NAT Gateway kan du antingen lägga till en NAT-gateway i det virtuella nätverket eller köra az aks upgrade för att uppdatera utgående typ.

Kommentar

UserDefinedRouting har följande begränsningar:

  • SNAT per Load Balancer (måste använda standardutgåendeNAT) har 64 portar på värd-IP-adressen.
  • SNAT per Azure Firewall (inaktivera OutboundNAT) har 2 496 portar per offentlig IP-adress.
  • SNAT via NAT Gateway (inaktivera OutboundNAT) har 64 512 portar per offentlig IP-adress.
  • Om Azure Firewall portintervallet inte räcker för ditt program måste du använda NAT Gateway.
  • Azure Firewall SNAT:ar inte med nätverksregler när destinations-IP-adressen är i ett privat IP-adressintervall enligt IANA RFC 1918 eller delat adressutrymme enligt IANA RFC 6598.

Inaktivera OutboundNAT manuellt för Windows

  • Inaktivera OutboundNAT för Windows manuellt när du skapar nya Windows agentpooler med kommandot az aks nodepool add med flaggan --disable-windows-outbound-nat.

    Kommentar

    Du kan använda ett befintligt AKS-kluster, men du kan behöva uppdatera den utgående typen och lägga till en nodpool för att aktivera --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
    

    Exempel på utdata:

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

Mer information om Azure NAT Gateway och AKS Automatic finns i följande artiklar: