Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können den Datenverkehr zwar über eine Azure Load Balancer weiterleiten, es gibt jedoch Einschränkungen hinsichtlich der Anzahl ausgehender Datenverkehrsströme, die Sie haben können. Azure NAT Gateway ermöglicht bis zu 64.512 ausgehende UDP- und TCP-Datenverkehrsflüsse pro IP-Adresse mit maximal 16 IP-Adressen. Es gibt drei ausgehende Typen, die NAT-Gateway unterstützen: managedNATGatewayV2 (Vorschau), managedNATGateway und userAssignedNATGateway.
In einem verwalteten NAT-Gatewaymodell verwaltet AKS das NAT-Gateway, um ausgehende Verbindungen für Ihre Clusterknoten bereitzustellen. AKS unterstützt zwei verwaltete NAT-Gatewayoptionen: die neuere managedNATGatewayV2 und die ursprüngliche managedNATGateway.
managedNATgatewayV2 verwendet standardV2 NAT-Gateway, das standardmäßig zonenredundant ist und eine fortgesetzte ausgehende Konnektivität bereitstellt, auch wenn eine Verfügbarkeitszone abläuft. Im Gegensatz zum Standard-NAT-Gateway müssen Sie keine spezifische Zone angeben; die Zonen-Redundanz ist automatisch integriert. StandardV2 NAT-Gateway unterstützt auch IPv6, hohen Durchsatz und Flussprotokolle. Weitere Informationen finden Sie unter StandardV2 NAT-Gateway-SKU.
Wichtig
Der ausgehende Typ managedNATGatewayV2 befindet sich derzeit in der VORSCHAU.
Lesen Sie die Supplemental-Nutzungsbedingungen für Microsoft Azure Previews für rechtliche Bedingungen, die für Azure Features gelten, die sich in der Betaversion, vorschau oder auf andere Weise noch nicht in der allgemeinen Verfügbarkeit befinden.
userAssignedNATGateway ist eine vom Kunden verwaltete NAT-Gateway-Ressource, die Sie unabhängig von AKS konfigurieren und benötigen, wenn Sie ein eigenes virtuelles Netzwerk verwenden.
In diesem Artikel erfahren Sie, wie Sie einen Azure Kubernetes Service (AKS)-Cluster mit einem verwalteten NAT-Gateway und einem vom Benutzer zugewiesenen NAT-Gateway für den Ausgehenden Datenverkehr erstellen. Außerdem wird gezeigt, wie Sie "OutboundNAT" für Windows deaktivieren.
Bevor Sie beginnen
- Stellen Sie sicher, dass Sie die neueste Version von Azure CLI verwenden.
- Stellen Sie sicher, dass Sie Kubernetes Version 1.20.x oder höher verwenden.
- Das verwaltete NAT-Gateway ist nicht mit benutzerdefinierten virtuellen Netzwerken kompatibel.
Wichtig
In nicht privaten Clustern wird der API-Serverclusterdatenverkehr über den ausgehenden Clustertyp weitergeleitet und verarbeitet. Um zu verhindern, dass API-Serverdatenverkehr als öffentlicher Datenverkehr verarbeitet wird, sollten Sie einen privaten Clusterverwenden oder das Feature API-Server-VNET-Integration ausprobieren.
Erstellen Sie einen AKS-Cluster mit einem managedNATgatewayV2
- Erstellen Sie einen AKS-Cluster mit einem verwalteten StandardV2 NAT-Gateway mithilfe des
az aks createBefehls mit den Parametern--outbound-type managedNATGateway, ,--nat-gateway-outbound-ips--nat-gateway-outbound-ip-prefixes,--nat-gateway-managed-outbound-ip-countund--nat-gateway-managed-outbound-ipv6-count--nat-gateway-idle-timeout. - Beim Konfigurieren ausgehender IPs für einen
managedNATgatewayV2müssen Sie one der folgenden Ansätze verwenden – Sie können nicht sowohl Azure verwaltete als auch kundendefinierte ausgehende IPs verwenden:-
Azure-managed IPs – Verwenden Sie
--nat-gateway-managed-ip-outbound-countund/oder--nat-gateway-managed-outbound-ipv6-count, um Azure die ausgehenden öffentlichen IPs in Ihrem Auftrag automatisch zuzuweisen und zu verwalten. -
Kundendefinierte IPs – Verwenden
--nat-gateway-outbound-ipsund/oder--nat-gateway-outbound-ip-prefixesum Ihre eigenen vorab bereitgestellten öffentlichen IP-Adressen oder Präfixe mitzubringen, sodass Sie die vollständige Kontrolle über die spezifischen Adressen erhalten, die für ausgehenden Datenverkehr verwendet werden. StandardV2 NAT Gateway erfordert die Verwendung neuer öffentlicher StandardV2-IPs. Vorhandene öffentliche Standard-SKU-IPs funktionieren nicht mit StandardV2 NAT-Gateway.
-
Azure-managed IPs – Verwenden Sie
In der folgenden Tabelle werden die einzelnen ausgehenden IP-Parameter und deren Verwendung beschrieben:
| Parameter | Eingabe | IP-Version | Wer verwaltet die öffentlichen IPs |
|---|---|---|---|
--nat-gateway-managed-outbound-ip-count |
Wert im Bereich von [1, 16]. Gewünschte Anzahl ausgehender IPv4s für ausgehende NAT-Gatewayverbindung. | IPv4 | Azure |
--nat-gateway-managed-outbound-ipv6-count |
Wert im Bereich von [1, 16]. Gewünschte Anzahl ausgehender IPv6s für ausgehende NAT-Gatewayverbindung. | IPv6 | Azure |
--nat-gateway-outbound-ips |
Durch Trennzeichen getrennte öffentliche IP-Ressourcen-IDs für ausgehende NAT-Gatewayverbindung. | IPv4 oder IPv6 | Customer |
--nat-gateway-outbound-ip-prefixes |
Durch Kommas getrennte IP-Präfix-Ressourcen-IDs für ausgehende NAT-Gateway-Verbindungen. | IPv4 oder IPv6 | Customer |
managedNATGatewayV2 Der ausgehende Typ befindet sich derzeit in der Vorschau. Um diesen ausgehenden Typ zu verwenden, sind die folgenden Schritte erforderlich: Installieren Sie die Azure CLI-Erweiterung aks-preview und registrieren Sie das Feature-Flag ManagedNATGatewayV2Preview.
Wichtig
AKS-Preview-Funktionen stehen auf Selbstbedienungs- und Opt-in-Basis zur Verfügung. Vorschauversionen werden „im Istzustand“ und „wie verfügbar“ bereitgestellt und sind von den Service Level Agreements und der eingeschränkten Garantie ausgeschlossen. AKS-Vorschauversionen werden teilweise vom Kundensupport auf Grundlage der bestmöglichen Leistung abgedeckt. Daher sind diese Funktionen nicht für die Verwendung in der Produktion vorgesehen. Weitere Informationen finden Sie in den folgenden Supportartikeln:
Installieren oder aktualisieren Sie die Azure CLI Vorschauerweiterung mithilfe des Befehls
az extension addoderaz extension update.Die Mindestversion der Aks-Vorschau-Azure CLI Erweiterung ist
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-previewRegistriere die
ManagedNATGatewayV2Preview-Feature-FlagRegistrieren Sie das Featureflag
ManagedNATGatewayV2Previewmithilfe des Befehlsaz feature register.az feature register --namespace "Microsoft.ContainerService" --name "ManagedNATGatewayV2Preview"Überprüfen Sie die erfolgreiche Registrierung mithilfe des
az feature showBefehls. Es dauert ein paar Minuten, bis die Registrierung abgeschlossen ist.az feature show --namespace "Microsoft.ContainerService" --name "ManagedNATGatewayV2Preview"Sobald das Feature
Registeredangezeigt wird, aktualisieren Sie die Registrierung des ressourcenanbietersMicrosoft.ContainerServicemithilfe des Befehlsaz provider register.Die folgenden Befehle erstellen die erforderliche Ressourcengruppe, die öffentlichen IP- und öffentlichen IP-Präfixressourcen, die an das NAT-Gateway angefügt werden sollen, und den AKS-Cluster mit einem verwalteten StandardV2 NAT-Gateway.
Erstellen Sie mit dem Befehl
az group createeine Ressourcengruppe.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"Erstellen Sie eine zoneredundante öffentliche IPv4-Adresse und ein zoneredundantes öffentliches IP-Präfix mithilfe des
az network public-ip createBefehls. Speichern Sie$MY_IPund$MY_IP_PREFIX, um diese als ausgehende IPs für das verwaltete StandardV2-NAT-Gateway zu verwenden.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)Erstellen Sie den AKS-Cluster, und verweisen Sie auf die öffentliche IP-Adresse (
$MY_IP_ID) und das öffentliche IP-Präfix ($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
Aktualisieren Sie die ausgehenden IPs, die ausgehenden IP-Präfixe, die Anzahl der verwalteten ausgehenden IPs oder das Leerlauf-Timeout mithilfe des Befehls mit dem Parameter az aks update, --nat-gateway-outbound-ips, --nat-gateway-outbound-ip-prefixes, --nat-gateway-managed-outbound-count, --nat-gateway-managed-outbound-ipv6-count oder --nat-gateway-idle-timeout. Eine managedNATGatewayV2 lässt sich nach der Erstellung nicht aktualisieren, um zwischen benutzerdefinierten und verwalteten ausgehenden IP-Adressen zu wechseln. Die ausgehende IP-Konfiguration wird bestimmt, wenn das StandardV2 NAT-Gateway anfangs erstellt wird und unveränderlich bleibt.
Erstellen Sie einen AKS-Cluster mit einem managedNATgateway
Erstellen Sie einen AKS-Cluster mit einem verwalteten Standard-NAT-Gateway mithilfe des
az aks createBefehls mit--outbound-type managedNATGateway.--nat-gateway-managed-outbound-ip-countund--nat-gateway-idle-timeoutParameter. Wenn das NAT-Gateway aus einer bestimmten Verfügbarkeitszone heraus betrieben werden soll, geben Sie die Zone mit--zonesan.Eine verwaltete NAT-Gatewayressource kann nicht über mehrere Verfügbarkeitszonen hinweg verwendet werden. Bei zonenredundanten ausgehenden Verbindungen sollten Sie #create-an-aks-cluster-with-a-managed-nat-gateway-v2 verwenden.
Wenn beim Erstellen eines verwalteten NAT-Gateways keine Zone angegeben wird, wird das NAT-Gateway standardmäßig in „Keine Zone“ bereitgestellt. Wenn das NAT-Gateway in no zone platziert wird, platziert Azure die Ressource in einer Zone für Sie. Weitere Informationen zum nicht zonalen Bereitstellungsmodell finden Sie unter Nicht-zonales NAT-Gateway.
Erstellen Sie einen AKS-Cluster mit einem userAssignedNatGateway
Diese Konfiguration erfordert bring-your-own Networking (über Azure CNI) und dass das NAT-Gateway im Subnetz vorkonfiguriert ist. Sowohl Standard- als auch StandardV2-NAT-Gateways werden hierfür outbound-typeunterstützt. Die folgenden Befehle erstellen die erforderlichen Ressourcen zum Bereitstellen einer StandardV2 NAT-Gatewayressource für Ihren AKS-Cluster.
Erstellen Sie mit dem Befehl
az group createeine Ressourcengruppe.export RANDOM_SUFFIX=$(openssl rand -hex 3) export MY_RG="myResourceGroup$RANDOM_SUFFIX" az group create --name $MY_RG --location southcentralusErstellen Sie eine verwaltete Identität für Netzwerkberechtigungen, und speichern Sie die ID in
$IDENTITY_IDzur späteren Verwendung.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)Ergebnisse:
/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myNatClusterIdxxxErstellen Sie eine öffentliche StandardV2-IP für das NAT-Gateway mit dem
az network public-ip createBefehl. Ein Nat-Gateway mit StandardV2 erfordert eine öffentliche StandardV2-IP-Adresse.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-v2Erstellen Sie das StandardV2 NAT-Gateway mithilfe des
az network nat gateway createBefehls.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 4Wichtig
Um Zonenredundanz sicherzustellen, empfiehlt es sich, eine StandardV2 NAT-Gatewayressource bereitzustellen, die sich über mehrere Verfügbarkeitszonen in einer Region erstreckt. Dadurch wird eine fortgesetzte ausgehende Verbindung sichergestellt, auch wenn eine einzelne Zone fehlschlägt. Weitere Informationen zu StandardV2 NAT-Gateway und seinen Vorteilen finden Sie unter StandardV2 NAT Gateway. Im Vergleich dazu bietet eine Standardmäßige NAT-Gatewayressource Resilienz nur innerhalb der Verfügbarkeitszone, in der sie bereitgestellt wird.
Erstellen Sie ein virtuelles Netzwerk mit dem Befehl
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/20Erstellen Sie ein Subnetz im virtuellen Netzwerk mithilfe des NAT Gateways, und speichern Sie die ID in
$SUBNET_IDzur späteren Verwendung.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)Erstellen Sie einen AKS-Cluster unter Verwendung des Subnetzes mit dem NAT Gateway und der verwalteten Identität mit dem Befehl
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
OutboundNAT für Windows deaktivieren
Windows OutboundNAT kann bestimmte Verbindungs- und Kommunikationsprobleme mit Ihren AKS-Pods verursachen. Ein Beispielproblem ist die Wiederverwendung von Knotenports. In diesem Beispiel verwendet Windows OutboundNAT Ports, um Ihre Pod-IP in Ihre Windows Knotenhost-IP zu übersetzen, was zu einer instabilen Verbindung mit dem externen Dienst aufgrund eines Portausschöpfungsproblems führen kann.
Windows aktiviert Standardmäßig "OutboundNAT". Sie können outboundNAT jetzt manuell deaktivieren, wenn Sie neue Windows-Agentpools erstellen.
Voraussetzungen
- Vorhandener AKS-Cluster mit mindestens der Version 1.26. Wenn Sie Kubernetes, Version 1.25 oder niedriger, verwenden, müssen Sie Ihre Bereitstellungskonfiguration aktualisieren.
Begrenzungen
- Sie können den ausgehenden Clustertyp nicht auf LoadBalancer festlegen. Sie können es auf NAT-Gateway oder UDR festlegen:
- NAT-Gateway: NAT-Gateway kann nat-Verbindung automatisch verarbeiten und ist leistungsstärker als Load Balancer Standard. Mit dieser Option können zusätzliche Gebühren anfallen.
- UDR (UserDefinedRouting): Beim Konfigurieren von Routingregeln müssen Portbeschränkungen beachtet werden.
- Wenn Sie von einem Lastenausgleich zum NAT Gateway wechseln müssen, können Sie entweder im VNet ein NAT Gateway hinzufügen oder
az aks upgradeausführen, um den Typ der ausgehenden Kommunikation zu aktualisieren.
Hinweis
UserDefinedRouting hat die folgenden Einschränkungen:
- SNAT by Load Balancer (muss die standardmäßige OutboundNAT verwenden) verfügt über „64 Ports auf der Host-IP“.
- SNAT by Azure Firewall (Disable OutboundNAT) verfügt über 2496 Ports pro öffentliche IP.
- SNAT by NAT Gateway (OutboundNAT deaktivieren) verfügt über 64512 Ports pro öffentliche IP.
- Wenn der Azure Firewall Portbereich für Ihre Anwendung nicht ausreicht, müssen Sie NAT-Gateway verwenden.
- Azure Firewall führt kein SNAT mit Netzwerkregeln aus, wenn sich die Ziel-IP-Adresse in einem privaten IP-Adressbereich laut IANA RFC 1918 oder in einem gemeinsam genutzten Adressbereich laut IANA RFC 6598 befindet.
Manuelles Deaktivieren von OutboundNAT für Windows
Deaktivieren Sie "OutboundNAT" für Windows manuell, wenn Sie neue Windows-Agentpools mithilfe des Befehls
az aks nodepool addmit dem Flag--disable-windows-outbound-naterstellen.Hinweis
Sie können einen vorhandenen AKS-Cluster verwenden, müssen jedoch eventuell den ausgehenden Typ aktualisieren und einen Knotenpool hinzufügen, um
--disable-windows-outbound-natzu aktivieren.Mit dem folgenden Befehl wird einem vorhandenen AKS-Cluster ein Windows Knotenpool hinzugefügt, wobei OutboundNAT deaktiviert wird.
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-natErgebnisse:
{ "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" }
Nächste Schritte
Weitere Informationen zu Azure NAT Gateway finden Sie unter Azure NAT Gateway.