Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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. Tre utgående typer stöder NAT-gateway: managedNATGatewayV2 (förhandsversion), managedNATGatewayoch 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.
Viktigt!
Den managedNATGatewayV2 utgående typen är för närvarande i förhandsversion.
Se Kompletterande användarvillkor för Microsoft Azure-förhandsversioner för juridiska villkor som gäller för Azure-funktioner som är i beta, förhandsgranskning eller på annat sätt ännu inte släppta för allmän tillgänglighet.
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 utgående hantering än en kundhanterad NAT Gateway-distribution.
- En aks-standardnätverksmodell utan att ta med din egen NAT-gatewayresurs.
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 |
Skapa ett AKS-kluster med en hanterad StandardV2 NAT-gateway (managedNATGatewayV2)
Viktigt!
AKS-förhandsversionsfunktioner är tillgängliga via självbetjäning och frivillig registrering. Förhandsversioner tillhandahålls "i befintligt skick" och "i mån av tillgång," och de är undantagna från servicenivåavtal och begränsad garanti. AKS-förhandsversioner stöds delvis av kundsupport efter bästa förmåga. Därför är dessa funktioner inte avsedda för produktionsanvändning. Mer information finns i följande supportartiklar:
- supportpolicyer för AKS
- vanliga frågor och svar om Azure support
- Skapa ett AKS-kluster med en hanterad StandardV2 NAT-gateway med hjälp av
az aks createkommandot med parametrarna--outbound-type managedNATGateway, ,--nat-gateway-outbound-ips--nat-gateway-outbound-ip-prefixes,--nat-gateway-managed-outbound-ip-count,--nat-gateway-managed-outbound-ipv6-countoch--nat-gateway-idle-timeout. - När du konfigurerar utgående IP-adresser för en
managedNATgatewayV2använder du någon av följande metoder. Du kan inte använda både Azure hanterade och kunddefinierade utgående IP-adresser.-
Azure-hanterade IP-adresser: Använd
--nat-gateway-managed-ip-outbound-countoch--nat-gateway-managed-outbound-ipv6-countför att få Azure automatiskt allokera och hantera de utgående offentliga IP-adresserna åt dig. -
Kunddefinierade IP-adresser: Använd
--nat-gateway-outbound-ipsoch--nat-gateway-outbound-ip-prefixesför att ta med dina egna företablerade offentliga IP-adresser eller prefix, vilket ger dig fullständig kontroll över de specifika adresser som används för utgående trafik. StandardV2 NAT Gateway kräver användning av nya offentliga IP-adresser för StandardV2. Befintliga offentliga IP-adresser för Standard SKU fungerar inte med StandardV2 NAT-gateway.
-
Azure-hanterade IP-adresser: Använd
Installera tillägget aks-preview Azure CLI
Den managedNATGatewayV2 utgående typen är för närvarande i förhandsversion. Om du vill använda den här utgående typen installerar aks-preview du Azure CLI-tillägget och registrerar funktionsflagganManagedNATGatewayV2Preview.
Installera eller uppdatera Azure CLI förhandsgranskningstillägget med kommandot az extension add eller az extension update. Den lägsta versionen av aks-preview Azure CLI-tillägget är 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-preview
Registrera funktionsflaggan ManagedNATGatewayV2Preview
Registrera funktionsflaggan
ManagedNATGatewayV2Previewmedaz feature register-kommandot.az feature register --namespace "Microsoft.ContainerService" --name "ManagedNATGatewayV2Preview"Verifiera lyckad registrering med hjälp av
az feature showkommandot . Det tar några minuter innan registreringen har slutförts.az feature show --namespace "Microsoft.ContainerService" --name "ManagedNATGatewayV2Preview"När funktionen visar
Registereduppdaterar du registreringen av resursprovidernMicrosoft.ContainerServicemed hjälp av kommandotaz provider register.
Skapa ett AKS-kluster med en hanterad StandardV2 NAT-gateway
Följande kommandon skapar den nödvändiga resursgruppen, de offentliga IP- och offentliga IP-prefixresurser som ska kopplas till NAT-gatewayen och AKS-klustret med en hanterad StandardV2 NAT-gateway.
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" export MY_AKS="myNatV2Cluster$RANDOM_SUFFIX" export MY_IP="myNatOutboundIP$RANDOM_SUFFIX" export MY_IP_PREFIX="myNatOutboundIPPrefix$RANDOM_SUFFIX" # Create the resource group az group create --name $MY_RG --location "eastus2"Skapa en zonredundant offentlig IPv4-IP-adress och ett offentligt IP-prefix med kommandot
az network public-ip create. Lagra$MY_IPoch$MY_IP_PREFIXför att använda som utgående IP-adresser för den hanterade NAT-gatewayen StandardV2.# Create a zone redundant IPv4 public IP address and store the ID to $MY_IP_ID for later use 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) # Create a zone redundant IPv4 public IP prefix and store the ID to $MY_IP_PREFIX_ID for later use 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)Skapa AKS-klustret och referera till den offentliga IP-adressen (
$MY_IP_ID) och det offentliga IP-prefixet ($MY_IP_PREFIX_ID) med kommandotaz aks createmed parametrarna--outbound-type managedNATGatewayV2,--nat-gateway-outbound-ipsoch--nat-gateway-outbound-ip-prefixes.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
Uppdatera utgående IP-adresser, utgående IP-prefix, hanterat utgående IP-antal eller inaktivitetstid med hjälp av kommandot az aks update med parametern --nat-gateway-outbound-ips, --nat-gateway-outbound-ip-prefixes, --nat-gateway-managed-outbound-count, --nat-gateway-managed-outbound-ipv6-count eller --nat-gateway-idle-timeout. Det går inte att uppdatera A managedNATGatewayV2 för att växla mellan kunddefinierade och hanterade utgående IP-adresser efter skapandet. Den utgående IP-konfigurationen bestäms när StandardV2 NAT-gatewayen skapas och förblir oföränderlig.
Skapa ett AKS-kluster med en hanterad STANDARD NAT-gateway (managedNATGateway)
- Skapa ett AKS-kluster med en hanterad NAT-standardgateway med
az aks createkommandot med--outbound-type managedNATGatewayparametrarna ,--nat-gateway-managed-outbound-ip-countoch .--nat-gateway-idle-timeoutOm du vill att NAT-gatewayen ska fungera från en specifik tillgänglighetszon anger du zonen med .--zones - Du kan inte använda en hanterad NAT-gatewayresurs i flera tillgänglighetszoner. Överväg att använda
managedNATgatewayV2för zonredundant utgående anslutning. - Om du inte anger en zon när du skapar en hanterad NAT-gateway distribueras NAT-gatewayen till ingen zon som standard. När NAT-gatewayen inte finns i någon zon placerar Azure resursen i en zon åt dig. Mer information om distributionsmodellen som inte är zonindelad finns i NAT-gateway som inte är zonindelad.
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.
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 southcentralusSkapa en hanterad identitet för nätverksbehörigheter och lagra ID:t för
$IDENTITY_IDsenare 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/myNatClusterIdxxxSkapa en offentlig IP-adress för StandardV2 för NAT-gatewayen
az network public-ip createmed 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-v2Skapa 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 4Viktigt!
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. Som jämförelse ger en NAT-standardgatewayresurs endast återhämtning inom tillgänglighetszonen där du distribuerar den.
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/20Skapa ett undernät i det virtuella nätverket med hjälp av NAT-gatewayen och lagra ID:t för
$SUBNET_IDsenare 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)Skapa ett AKS-kluster med hjälp av undernätet med NAT-gatewayen och den hanterade identiteten
az aks createmed 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 ta med din 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 upgradefö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 per 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 addmed 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-natExempel 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" }
Relaterat innehåll
Mer information om Azure NAT Gateway och AKS Automatic finns i följande artiklar: