Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Hoewel u uitgaand verkeer via een Azure Load Balancer kunt routeren, gelden er beperkingen voor het aantal uitgaande stromen verkeer dat u kunt hebben. Azure NAT Gateway maximaal 64.512 uitgaande UDP- en TCP-verkeerstromen per IP-adres met maximaal 16 IP-adressen toestaat. Er zijn drie uitgaande typen die ondersteuning bieden voor NAT-gateway - managedNATGatewayV2 (Preview), managedNATGateway, en userAssignedNATGateway.
In een beheerd NAT-gatewaymodel beheert AKS de NAT-gateway om uitgaande connectiviteit voor uw clusterknooppunten te bieden. AKS ondersteunt twee beheerde NAT-gatewayopties: de nieuwer managedNATGatewayV2 en het origineel managedNATGateway.
managedNATgatewayV2 maakt gebruik van StandardV2 NAT-gateway die standaard zone-redundant is, waardoor continue uitgaande connectiviteit wordt geboden, zelfs als één beschikbaarheidszone uitvalt. In tegenstelling tot standard NAT-gateway hoeft u geen zone op te geven -zone redundantie automatisch is ingebouwd. StandardV2 NAT-gateway ondersteunt ook IPv6, hogere doorvoer en stroomlogboeken. Zie StandardV2 NAT-gateway-SKU voor meer informatie.
Belangrijk
Het managedNATGatewayV2 uitgaande type bevindt zich momenteel in PREVIEW.
Zie de Aanvullende gebruiksvoorwaarden voor Microsoft Azure previews voor juridische voorwaarden die van toepassing zijn op Azure functies die beschikbaar zijn in bèta, preview of anderszins nog niet beschikbaar zijn voor algemene beschikbaarheid.
userAssignedNATGateway is een door de klant beheerde NAT-gatewayresource die u onafhankelijk van AKS configureert en nodig is wanneer u eigen virtuele netwerken gebruikt.
In dit artikel leest u hoe u een Azure Kubernetes Service (AKS)-cluster maakt met een beheerde NAT-gateway en een door de gebruiker toegewezen NAT-gateway voor uitgaand verkeer. U ziet ook hoe u uitgaande NAT uitschakelt op Windows.
Voordat u begint
- Zorg ervoor dat u de nieuwste versie van Azure CLI gebruikt.
- Zorg ervoor dat u Kubernetes versie 1.20.x of hoger gebruikt.
- Beheerde NAT-gateway is niet compatibel met aangepaste virtuele netwerken.
Belangrijk
In niet-privéclusters wordt het verkeer van API-serverclusters gerouteerd en verwerkt via het uitgaande type van de clusters. Als u wilt voorkomen dat API-serververkeer als openbaar verkeer wordt verwerkt, kunt u overwegen een privécluster te gebruiken of de functie VNet-integratie van API Server te bekijken.
Een AKS-cluster maken met een managedNATgatewayV2
- Maak een AKS-cluster met een beheerde StandardV2 NAT-gateway met behulp van de
az aks create-opdracht en de parameters--outbound-type managedNATGateway,--nat-gateway-outbound-ips,--nat-gateway-outbound-ip-prefixes,--nat-gateway-managed-outbound-ip-count,--nat-gateway-managed-outbound-ipv6-counten--nat-gateway-idle-timeout. - Wanneer u uitgaande IP-adressen configureert voor een
managedNATgatewayV2, moet u one van de volgende benaderingen gebruiken: u kunt niet zowel door Azure beheerde als door de klant gedefinieerde uitgaande IP-adressen gebruiken:-
Azure beheerde IP-adressen — Gebruik
--nat-gateway-managed-ip-outbound-counten/of--nat-gateway-managed-outbound-ipv6-countom de uitgaande openbare IP-adressen automatisch namens u toe Azure te wijzen en te beheren. -
Door de klant gedefinieerde IP-adressen : gebruik
--nat-gateway-outbound-ipsen/of--nat-gateway-outbound-ip-prefixesom uw eigen vooraf ingerichte openbare IP-adressen of voorvoegsels te gebruiken, zodat u volledige controle hebt over de specifieke adressen die worden gebruikt voor uitgaand verkeer. StandardV2 NAT-gateway vereist het gebruik van nieuwe openbare IP-adressen van StandardV2. Bestaande openbare IP-adressen van standaard-SKU's werken niet met StandardV2 NAT-gateway.
-
Azure beheerde IP-adressen — Gebruik
De volgende tabel beschrijft elke uitgaande IP-parameter en wanneer u deze gebruikt:
| Kenmerk | Invoer | IP-versie | Wie beheert de openbare IP-adressen |
|---|---|---|---|
--nat-gateway-managed-outbound-ip-count |
Waarde in het bereik van [1, 16]. Gewenst aantal uitgaande IPv4's voor uitgaande NAT-gatewayverbinding. | IPv4 | Azure |
--nat-gateway-managed-outbound-ipv6-count |
Waarde in het bereik van [1, 16]. Gewenst aantal IPv6-adressen voor uitgaande verbindingen van de NAT-gateway. | IPv6 | Azure |
--nat-gateway-outbound-ips |
Door komma's gescheiden openbare IP-resource-id's voor uitgaande NAT-gatewayverbindingen. | IPv4 of IPv6 | Klant |
--nat-gateway-outbound-ip-prefixes |
Door komma's gescheiden resource-ID's voor publieke IP-prefixen voor uitgaande NAT-gatewayverbindingen. | IPv4 of IPv6 | Klant |
managedNATGatewayV2 uitgaand type is momenteel in Preview. Om dit uitgaand type te gebruiken, zijn de volgende stappen nodig om de aks-preview Azure CLI-uitbreiding te installeren en de functievlag ManagedNATGatewayV2Preview te registreren.
Belangrijk
AKS preview-functies zijn beschikbaar op selfservice, opt-in basis. Previews worden geleverd 'zoals het is' en 'voor zover beschikbaar' en zijn uitgesloten van de serviceovereenkomsten en beperkte garantie. AKS-previews worden gedeeltelijk gedekt door klantondersteuning naar best vermogen. Zodoende zijn deze functies niet bedoeld voor productiegebruik. Zie de volgende ondersteuningsartikelen voor meer informatie:
- Ondersteuningsbeleid voor AKS
- veelgestelde vragen ondersteuning voor Azure
Installeer of werk de Azure CLI preview-extensie bij met behulp van de opdracht
az extension addofaz extension update.De minimale versie van de extensie aks-preview Azure CLI is
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-previewManagedNATGatewayV2PreviewDe functievlag registrerenRegistreer de
ManagedNATGatewayV2Previewfunctievlag met behulp van deaz feature registeropdracht.az feature register --namespace "Microsoft.ContainerService" --name "ManagedNATGatewayV2Preview"Controleer of de registratie is geslaagd met behulp van de
az feature showopdracht. Het duurt enkele minuten voordat de registratie is voltooid.az feature show --namespace "Microsoft.ContainerService" --name "ManagedNATGatewayV2Preview"Zodra de functie
Registeredweergeeft, vernieuwt u de registratie van de resourceproviderMicrosoft.ContainerServicemet behulp van de opdrachtaz provider register.Met de volgende opdrachten maakt u de vereiste resourcegroep, de bronnen voor het openbare IP-adres en het openbare IP-voorvoegsel om te koppelen aan de NAT-gateway, en het AKS-cluster met een beheerde StandardV2 NAT-gateway.
Maak een resourcegroep met behulp van de
az group createopdracht.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"Maak een zoneredundant IPv4 openbaar IP-adres en openbaar IP-voorvoegsel met behulp van de
az network public-ip createopdracht. Sla$MY_IPen$MY_IP_PREFIXop, en gebruik ze als uitgaande IP-adressen voor de beheerde StandardV2 NAT-gateway.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)Maak het AKS-cluster en verwijs naar het openbare IP-adres (
$MY_IP_ID) en het openbare IP-voorvoegsel ($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
Werk de uitgaande IP-adressen, uitgaande IP-voorvoegsels, het aantal beheerde uitgaande IP's of de inactieve time-outperiode bij met behulp van de az aks update opdracht met de --nat-gateway-outbound-ips, --nat-gateway-outbound-ip-prefixes, --nat-gateway-managed-outbound-count, --nat-gateway-managed-outbound-ipv6-count of --nat-gateway-idle-timeout parameter. Een managedNATGatewayV2 kan niet worden bijgewerkt om te schakelen tussen door de klant gedefinieerde en uitgaande IP-adressen die beheerd worden na het aanmaken. De uitgaande IP-configuratie wordt bepaald wanneer de StandardV2 NAT-gateway in eerste instantie wordt gemaakt en onveranderbaar blijft.
Een AKS-cluster maken met een managedNATgateway
Maak een AKS-cluster met een beheerde Standard NAT-gateway met behulp van de
az aks createopdracht met--outbound-type managedNATGateway.--nat-gateway-managed-outbound-ip-count- en--nat-gateway-idle-timeout-parameters. Als u wilt dat de NAT-gateway buiten een specifieke beschikbaarheidszone werkt, geeft u de zone op met behulp van--zones.Een beheerde NAT-gatewayresource kan niet worden gebruikt in meerdere beschikbaarheidszones. Overweeg
managedNATgatewayV2te gebruiken voor zone-redundante uitgaande connectiviteit.Als er geen zone is opgegeven bij het maken van een beheerde NAT-gateway, wordt de NAT-gateway standaard geïmplementeerd in 'geen zone'. Wanneer de NAT-gateway in no-zone wordt geplaatst, Azure de resource voor u in een zone plaatst. Zie niet-zonegebonden NAT-gateway voor meer informatie over het niet-zonegebonden implementatiemodel.
Een AKS-cluster maken met een userAssignedNatGateway
Deze configuratie vereist dat je eigen netwerken meeneemt (via Azure CNI) en dat de NAT-gateway vooraf op het subnet is geconfigureerd. Hiervoor worden zowel Standard- als StandardV2 NAT-gateways ondersteund outbound-type. Met de volgende opdrachten maakt u de vereiste resources voor het implementeren van een StandardV2 NAT-gatewayresource voor uw AKS-cluster.
Maak een resourcegroep met behulp van de
az group createopdracht.export RANDOM_SUFFIX=$(openssl rand -hex 3) export MY_RG="myResourceGroup$RANDOM_SUFFIX" az group create --name $MY_RG --location southcentralusMaak een beheerde identiteit voor netwerkmachtigingen en sla de id op voor later gebruik
$IDENTITY_ID.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)Resultaten:
/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myNatClusterIdxxxMaak een openbaar IP-adres van StandardV2 voor de NAT-gateway met behulp van de
az network public-ip createopdracht. Voor een StandardV2 NAT-gateway is een openbaar StandaardV2-IP-adres vereist.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-v2Maak de StandardV2 NAT-gateway met behulp van de
az network nat gateway createopdracht.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 4Belangrijk
Om zoneredundantie te garanderen, is het raadzaam om een StandardV2 NAT-gatewayresource te implementeren, die meerdere beschikbaarheidszones in een regio omvat. Dit zorgt voor continue uitgaande connectiviteit, zelfs als één zone mislukt. Zie StandardV2 NAT-gateway voor meer informatie over de StandardV2 NAT-gateway en de voordelen ervan. Ter vergelijking: een Standaard NAT-gatewayresource biedt alleen tolerantie binnen de beschikbaarheidszone waarin deze wordt geïmplementeerd.
Maak een virtueel netwerk met behulp van de
az network vnet createopdracht.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/20Maak een subnet in het virtuele netwerk met behulp van de NAT-gateway en sla de ID op voor later gebruik.
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)Maak een AKS-cluster met behulp van het subnet met de NAT-gateway en de beheerde identiteit met behulp van de
az aks createopdracht.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
UitgaandeNAT uitschakelen voor Windows
Windows OutboundNAT kan bepaalde problemen met verbinding en communicatie met uw AKS-pods veroorzaken. Een voorbeeld van een probleem is het hergebruik van knooppuntpoorten. In dit voorbeeld gebruikt Windows UitgaandeNAT poorten om uw pod-IP te vertalen naar het host-IP-adres van uw Windows knooppunt, wat kan leiden tot een instabiele verbinding met de externe service vanwege een probleem met poortuitputting.
Windows schakelt outboundNAT standaard in. U kunt outboundNAT nu handmatig uitschakelen bij het maken van nieuwe Windows agentgroepen.
Vereisten
- Bestaand AKS-cluster met v1.26 of hoger. Als u Kubernetes versie 1.25 of ouder gebruikt, moet u de implementatieconfiguratie bijwerken.
Beperkingen
- U kunt het uitgaande clustertype niet instellen op LoadBalancer. U kunt deze instellen als NAT Gateway of UDR.
- NAT-gateway: NAT-gateway kan automatisch nat-verbinding verwerken en is krachtiger dan Standard Load Balancer. Voor deze optie worden mogelijk extra kosten in rekening gebracht.
- UDR (UserDefinedRouting): u moet rekening houden met poortbeperkingen bij het configureren van routeringsregels.
- Als u wilt overschakelen van een load balancer naar NAT-gateway, kunt u een NAT-gateway toevoegen aan het VNet of uitvoeren
az aks upgradeom het uitgaande type bij te werken.
Notitie
UserDefinedRouting heeft de volgende beperkingen:
- SNAT door Load Balancer (moet de standaard-uitgaandeNAT gebruiken) heeft '64 poorten op het host-IP-adres'.
- SNAT by Azure Firewall (outboundNAT uitschakelen) heeft 2496 poorten per openbaar IP-adres.
- SNAT by NAT Gateway (outboundNAT uitschakelen) heeft 64512 poorten per openbaar IP-adres.
- Als het Azure Firewall poortbereik niet voldoende is voor uw toepassing, moet u NAT Gateway gebruiken.
- Azure Firewall gebruikt geen SNAT met netwerkregels als het bestemmings-IP-adres zich in een privé-IP-adresbereik bevindt volgens IANA RFC 1918 of gedeelde adresruimte volgens IANA RFC 6598.
OutboundNAT handmatig uitschakelen voor Windows
Handmatig OutboundNAT uitschakelen voor Windows bij het aanmaken van nieuwe Windows-agentpools met de opdracht
az aks nodepool adden de vlag--disable-windows-outbound-nat.Notitie
U kunt een bestaand AKS-cluster gebruiken, maar mogelijk moet u het uitgaande type bijwerken en een knooppuntgroep toevoegen om dit in te schakelen
--disable-windows-outbound-nat.Met de volgende opdracht wordt een Windows-knooppuntgroep toegevoegd aan een bestaand AKS-cluster, waardoor UitgaandeNAT wordt uitgeschakeld.
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-natResultaten:
{ "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" }
Volgende stappen
Zie Azure NAT Gateway voor meer informatie over Azure NAT Gateway.