Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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ć. Azure NAT Gateway umożliwia maksymalnie 64 512 przepływów ruchu wychodzącego UDP i TCP na adres IP z maksymalnie 16 adresami IP. Istnieją trzy typy ruchu wychodzącego, które obsługują bramę translatora adresów sieciowych — managedNATGatewayV2 (wersja zapoznawcza), managedNATGateway i userAssignedNATGateway.
W modelu zarządzanej bramy NAT, AKS zarządza bramą NAT, aby zapewnić połączenie wychodzące dla węzłów klastra. Usługa AKS obsługuje dwie opcje zarządzanej bramy NAT: nowsza managedNATGatewayV2 i oryginalna managedNATGateway.
managedNATgatewayV2 używa bramy NAT w warstwie StandardowaV2, która jest domyślnie nadmiarowa w strefach, zapewniając ciągłą łączność wychodzącą, nawet jeśli jedna z dostępnych stref ulegnie awarii. W przeciwieństwie do standardowej bramy NAT nie trzeba określać strefy; strefowa nadmiarowość jest wbudowana automatycznie. Brama NAT StandardV2 obsługuje również IPv6, wyższą przepustowość i dzienniki przepływu. Aby uzyskać więcej informacji, zobacz SKU bramy NAT StandardV2.
Ważne
Typ managedNATGatewayV2 ruchu wychodzącego jest obecnie w wersji PRÓBNEJ.
Zapoznaj się z Dodatkowymi warunkami użytkowania dla wersji zapoznawczych Microsoft Azure, aby uzyskać informację o postanowieniach prawnych dotyczących funkcji Azure, które są w fazie beta, wersji zapoznawczej lub w inny sposób są jeszcze niedostępne ogólnie.
userAssignedNATGateway to zasób bramy NAT zarządzany przez klienta, który konfiguruje się niezależnie od usługi AKS i jest potrzebny w przypadku korzystania z własnej sieci wirtualnej.
W tym artykule pokazano, jak utworzyć klaster Azure Kubernetes Service (AKS) z zarządzaną bramą NAT oraz bramą NAT przypisaną przez użytkownika do obsługi ruchu wychodzącego. Pokazano również, jak wyłączyć funkcję OutboundNAT w Windows.
Zanim rozpoczniesz
- 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 jest niekompatybilna z niestandardowymi sieciami wirtualnymi.
Ważne
W klastrach innych niż prywatne, ruch do serwera API jest kierowany i przetwarzany przez typ wychodzący 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.
Utwórz klaster usługi AKS za pomocą elementu managedNATgatewayV2
- Utwórz klaster usługi AKS z zarządzaną bramą NAT w warstwie Standard V2 przy użyciu polecenia
az aks createz parametrami--outbound-type managedNATGateway,--nat-gateway-outbound-ips,--nat-gateway-outbound-ip-prefixes,--nat-gateway-managed-outbound-ip-count,--nat-gateway-managed-outbound-ipv6-counti--nat-gateway-idle-timeout. - Podczas konfigurowania wychodzących adresów IP dla
managedNATgatewayV2należy użyć one z następujących metod — nie można użyć zarówno adresów IP ruchu wychodzącego Azure, jak i zdefiniowanych przez klienta:-
Azure-zarządzane adresy IP — użyj
--nat-gateway-managed-ip-outbound-counti/lub--nat-gateway-managed-outbound-ipv6-countdo tego, aby Azure automatycznie przydzielał i zarządzał publicznymi adresami IP w Twoim imieniu. -
Adresy IP zdefiniowane przez klienta — używaj
--nat-gateway-outbound-ipsi/lub--nat-gateway-outbound-ip-prefixesdo korzystania z własnych wstępnie aprowizowanych publicznych adresów IP lub prefiksów, co daje pełną kontrolę nad specyficznymi adresami używanymi do ruchu wychodzącego. Brama NAT StandardV2 wymaga użycia nowych publicznych adresów IP StandardV2. Istniejące publiczne adresy IP jednostki SKU w warstwie Standardowa nie działają z bramą translatora adresów sieciowych w warstwie Standardowa 2.
-
Azure-zarządzane adresy IP — użyj
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 |
managedNATGatewayV2 typ ruchu wychodzącego jest obecnie w wersji zapoznawczej, aby użyć tego typu ruchu wychodzącego, należy zainstalować rozszerzenie aks-preview Azure CLI i zarejestrować flagę funkcji ManagedNATGatewayV2Preview.
Ważne
Funkcje usługi AKS w wersji zapoznawczej są dostępne na zasadzie samoobsługi i wymagają zapisania się. Wersje zapoznawcze są udostępniane w wersji "as is" i "jako dostępne" i są wykluczone z umów dotyczących poziomu usług i ograniczonej gwarancji. Wersje zapoznawcze usługi AKS są częściowo objęte pomocą techniczną dla klientów, świadczoną w miarę możliwości. W związku z tym te funkcje nie są przeznaczone do użytku produkcyjnego. Aby uzyskać więcej informacji, zobacz następujące artykuły pomocy technicznej:
Zainstaluj lub zaktualizuj rozszerzenie Azure CLI w wersji zapoznawczej przy użyciu polecenia
az extension addlubaz extension update.Minimalna wersja rozszerzenia aks-preview Azure CLI to
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-previewZarejestruj flagę funkcji
ManagedNATGatewayV2PreviewZarejestruj flagę funkcji
ManagedNATGatewayV2Previewza pomocą poleceniaaz feature register.az feature register --namespace "Microsoft.ContainerService" --name "ManagedNATGatewayV2Preview"Przy użyciu polecenia
az feature showsprawdź, czy rejestracja przebiegła pomyślnie. Ukończenie rejestracji trwa kilka minut.az feature show --namespace "Microsoft.ContainerService" --name "ManagedNATGatewayV2Preview"Gdy funkcja wyświetli
Registered, odśwież rejestracjęMicrosoft.ContainerServicedostawcy zasobów przy użyciu poleceniaaz provider register.Następujące polecenia tworzą wymaganą grupę zasobów, publiczny adres IP i zasoby prefiksu publicznego IP do podłączenia do bramy NAT oraz klaster AKS z zarządzaną bramą NAT w wersji StandardV2.
Utwórz grupę zasobów przy użyciu
az group createpolecenia .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"Utwórz strefowo nadmiarowy adres IP w wersji IPv4 oraz prefiks dla publicznego adresu IP, korzystając z polecenia
az network public-ip create. Przechowaj$MY_IPi$MY_IP_PREFIXi użyj jako wyjściowych adresów IP dla zarządzanego bramy NAT 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 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)Utwórz klaster usługi AKS i odwołaj się do publicznego adresu IP (
$MY_IP_ID) i prefiksu publicznego adresu IP ($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
Zaktualizuj wychodzące adresy IP, prefiksy wychodzących adresów IP, liczbę zarządzanych wychodzących adresów IP lub limit czasu bezczynności przy użyciu az aks update polecenia z parametrem --nat-gateway-outbound-ips, --nat-gateway-outbound-ip-prefixes, --nat-gateway-managed-outbound-count, --nat-gateway-managed-outbound-ipv6-countlub --nat-gateway-idle-timeout .
managedNATGatewayV2 Nie można zmienić konfiguracji, aby umożliwić przełączanie się między zdefiniowanymi przez klienta a zarządzanymi wychodzącymi adresami IP po ich utworzeniu. Konfiguracja wychodzącego adresu IP jest określana, gdy brama NAT StandardV2 jest początkowo tworzona i pozostaje niezmienna.
Utwórz klaster usługi AKS za pomocą elementu managedNATgateway
Utwórz klaster usługi AKS z zarządzaną bramą NAT w standardowej warstwie, używając polecenia
az aks create--outbound-type managedNATGateway.--nat-gateway-managed-outbound-ip-count, i--nat-gateway-idle-timeoutparametry. Jeśli chcesz, aby brama NAT działała w określonej strefie dostępności, określ strefę przy użyciu--zones.Zarządzana brama NAT nie może być używana w wielu strefach dostępności. W przypadku strefowej, nadmiarowej łączności wychodzącej rozważ użycie
managedNATgatewayV2.Jeśli podczas tworzenia zarządzanej bramy translatora adresów sieciowych nie określono żadnej strefy, brama translatora adresów sieciowych jest wdrażana domyślnie w "bez strefy". Po umieszczeniu bramy NAT w brak strefy, Azure automatycznie umieszcza zasób w strefie. Aby uzyskać więcej informacji na temat bezstrefowego modelu wdrażania, zobacz brama NAT.
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.
Utwórz grupę zasobów przy użyciu
az group createpolecenia .export RANDOM_SUFFIX=$(openssl rand -hex 3) export MY_RG="myResourceGroup$RANDOM_SUFFIX" az group create --name $MY_RG --location southcentralusUtwórz tożsamość zarządzaną dla uprawnień sieci i zapisz identyfikator do
$IDENTITY_IDpóźniejszego użycia.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)Wyniki:
/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myNatClusterIdxxxUtwó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-v2Utwó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 4Ważne
Aby zapewnić nadmiarowość strefy, zaleca się wdrożenie zasobu bramy NAT w warstwie StandardV2, który obejmuje wiele stref dostępności w regionie. Zapewnia to 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 standardowa zapewnia odporność tylko w strefie dostępności, w której została wdrożona.
Utwórz sieć wirtualną przy użyciu
az network vnet createpolecenia .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/20Utwórz podsieć w sieci wirtualnej przy użyciu bramy translatora adresów sieciowych i zapisz identyfikator do
$SUBNET_IDpóź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)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
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
- Istniejący klaster usługi AKS z systemem w wersji 1.26 lub nowszej. Jeśli używasz platformy Kubernetes w wersji 1.25 lub starszej, musisz zaktualizować konfigurację wdrożenia.
Ograniczenia
- Nie można ustawić typu wychodzącego klastra na LoadBalancer. Można ustawić dla brama NAT lub trasy zdefiniowanej przez użytkownika:
- NAT Gateway: Brama NAT może automatycznie obsługiwać połączenia NAT i jest bardziej wydajna niż Standardowy Load Balancer. W przypadku 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.
- Jeśli musisz przełączyć się z równoważnika obciążenia na bramę NAT, możesz dodać bramę NAT do sieci wirtualnej lub uruchomić
az aks upgrade, aby zaktualizować typ ruchu wychodzącego.
Uwaga
UserDefinedRouting ma następujące ograniczenia:
- SNAT przez Load Balancer (musi używać domyślnej wartości OutboundNAT) ma "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 64512 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 addz 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.Następujące polecenie dodaje pulę węzłów Windows do istniejącego klastra usługi AKS, wyłączając funkcję OutboundNAT.
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-natWyniki:
{ "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" }
Następne kroki
Aby uzyskać więcej informacji na temat Azure NAT Gateway, zobacz Azure NAT Gateway.