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.
Dotyczy: ✔️ AKS Automatic AKS Standard ✔️
W przypadku większości obciążeń produkcyjnych AKS Automatic to zalecany, gotowy do użycia produkcyjnego domyślny wybór dla usługi AKS. Klastry automatyczne AKS obejmują wstępnie skonfigurowaną zarządzaną bramę NAT.
W usłudze AKS Standard można utworzyć lub skonfigurować zarządzaną bramę NAT, jeśli chcesz korzystać w klastrze z łączności wychodzącej zarządzanej przez usługę AKS. W scenariuszach sieciowych typu bring-your-own (BYO) użyj bramy NAT przypisanej przez użytkownika.
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ć. Usługa Azure NAT Gateway obsługuje do 64 512 przepływów ruchu wychodzącego UDP i TCP na każdy adres IP, przy maksymalnie 16 adresach IP. Trzy typy ruchu wychodzącego obsługują bramę NAT: managedNATGatewayV2 (wersja zapoznawcza), managedNATGateway i userAssignedNATGateway.
W tym artykule pokazano, jak utworzyć klaster AKS z zarządzaną bramą NAT i bramą NAT przypisaną przez użytkownika dla ruchu wychodzącego. Pokazano również, jak wyłączyć funkcję OutboundNAT dla Windows.
Ważne
Typ ruchu wychodzącego managedNATGatewayV2 jest obecnie w wersji zapoznawczej.
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.
Wymagania wstępne
Klastry automatyczne AKS zawierają wstępnie skonfigurowaną zarządzaną bramę NAT. Kroki opisane w tym artykule dotyczą głównie scenariuszy usługi AKS Standard oraz niestandardowej konfiguracji sieci.
- 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 nie jest zgodna z niestandardowymi sieciami wirtualnymi.
Ważne
W klastrach nieprywatnych ruch do serwera API klastra jest kierowany i przetwarzany za pośrednictwem typu ruchu wychodzącego 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.
Zarządzana brama NAT w AKS
AKS Automatic używa zarządzanej bramy NAT jako elementu swojej wstępnie skonfigurowanej, domyślnej konfiguracji gotowej do użycia produkcyjnego. Użyj tej sekcji, jeśli pracujesz z AKS Standard lub jeśli chcesz zrozumieć, jak działa zarządzana brama NAT w klastrze AKS.
Zarządzana brama NAT to opcja ruchu wychodzącego zarządzana przez AKS. AKS tworzy bramę NAT i zarządza nią, aby zapewnić łączność wychodzącą dla węzłów klastra.
Użyj zarządzanej bramy NAT, gdy chcesz:
- Łączność wychodząca zarządzana przez AKS przy mniejszym narzucie operacyjnym.
- Przyjazna dla środowiska produkcyjnego domyślna ścieżka ruchu wychodzącego.
- Prostsze zarządzanie ruchem wychodzącym niż w przypadku wdrożenia bramy NAT zarządzanej przez klienta.
- Standardowy model sieci AKS bez użycia własnego zasobu bramy NAT.
Tworzenie klastra AKS z zarządzaną bramą NAT
Parametry wychodzącego adresu IP
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 |
Utwórz klaster AKS przy użyciu zarządzanej bramy NAT w wersji StandardV2 (managedNATGatewayV2)
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:
- 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 elementu
managedNATgatewayV2należy użyć jednej z następujących metod. Nie można używać jednocześnie adresów IP ruchu wychodzącego zarządzanych przez platformę Azure i zdefiniowanych przez klienta.-
Adresy IP zarządzane przez platformę Azure: Użyj
--nat-gateway-managed-ip-outbound-counti--nat-gateway-managed-outbound-ipv6-count, aby platforma Azure automatycznie przydzielała publiczne adresy IP dla ruchu wychodzącego i zarządzała nimi w Twoim imieniu. -
Adresy IP zdefiniowane przez klienta: użyj polecenia
--nat-gateway-outbound-ipsi--nat-gateway-outbound-ip-prefixes, aby przyłączyć własne wstępnie aprowidowane publiczne adresy IP lub prefiksy, zapewniając pełną kontrolę nad określonymi adresami używanymi do ruchu wychodzącego. Brama NAT StandardV2 wymaga użycia nowych publicznych adresów IP StandardV2. Istniejące publiczne adresy IP w jednostce SKU Standard nie działają z bramą NAT StandardV2.
-
Adresy IP zarządzane przez platformę Azure: Użyj
Zainstaluj rozszerzenie Azure CLI aks-preview
Typ managedNATGatewayV2 wychodzący jest obecnie dostępny w wersji zapoznawczej. Aby użyć tego typu ruchu wychodzącego, zainstaluj aks-preview rozszerzenie Azure CLI i zarejestruj flagę funkcji ManagedNATGatewayV2Preview.
Zainstaluj lub zaktualizuj rozszerzenie Azure CLI w wersji zapoznawczej przy użyciu polecenia az extension add lub az extension update. Minimalna wersja rozszerzenia interfejsu wiersza polecenia platformy aks-preview Azure 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-preview
Zarejestruj flagę funkcji ManagedNATGatewayV2Preview
Zarejestruj 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.
Utwórz klaster AKS z zarządzaną bramą NAT StandardV2
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 .# 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"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.# 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)Utwórz klaster AKS i odwołaj się do publicznego adresu IP (
$MY_IP_ID) oraz prefiksu publicznego adresu IP ($MY_IP_PREFIX_ID) za pomocą poleceniaaz aks createz parametrami--outbound-type managedNATGatewayV2,--nat-gateway-outbound-ipsi--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
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 ustalana w momencie utworzenia bramy NAT StandardV2 i pozostaje niezmienna.
Utwórz klaster AKS przy użyciu zarządzanej bramy NAT w warstwie Standard (managedNATGateway)
- Utwórz klaster usługi AKS z zarządzaną bramą NAT w warstwie Standard za pomocą polecenia
az aks createz parametrami--outbound-type managedNATGateway,--nat-gateway-managed-outbound-ip-counti--nat-gateway-idle-timeout. Jeśli chcesz, aby brama NAT działała w określonej strefie dostępności, określ strefę przy użyciu--zones. - Nie można używać zasobu zarządzanej bramy NAT 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 NAT nie określisz strefy, brama NAT zostanie domyślnie wdrożona do bez strefy. Gdy brama NAT nie jest przypisana do żadnej strefy, platforma Azure przypisuje zasób do strefy. Aby uzyskać więcej informacji o niestrefowym modelu wdrażania, zobacz niestrefową bramę 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 .# 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 southcentralusUtwórz tożsamość zarządzaną na potrzeby uprawnień sieciowych i zapisz identyfikator w
$IDENTITY_ID, aby użyć go później.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)Przykładowy wynik:
/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ść między strefami, wdroż zasób bramy NAT StandardV2, który obejmuje wiele stref dostępności w regionie. Ta konfiguracja zapewnia 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 w warstwie Standard zapewnia odporność tylko w strefie dostępności, w której został wdrożony.
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
Zagadnienia dotyczące środowiska produkcyjnego
Jeśli używasz zarządzanej bramy NAT w środowisku produkcyjnym, zaplanuj sposób obsługi ruchu wychodzącego, dostęp do serwera API oraz odporność obciążeń.
- Użyj rozwiązania AKS Automatic, jeśli potrzebujesz zalecanych, gotowych do użycia w środowisku produkcyjnym ustawień domyślnych dla większości obciążeń AKS.
- Użyj zarządzanej bramy NAT w usłudze AKS w warstwie Standard, gdy chcesz korzystać z łączności wychodzącej zarządzanej przez usługę AKS bez konieczności wdrażania własnej bramy NAT.
- Użyj klastra prywatnego lub integracji serwera API z siecią wirtualną, jeśli chcesz ograniczyć ekspozycję ruchu do serwera API.
- Przed rozpoczęciem pracy na żywo zapoznaj się z wymaganiami dotyczącymi wychodzących adresów IP.
- Jeśli obciążenia zależą od stałych adresów wychodzących, przed wdrożeniem sprawdź, czy zarządzana brama translatora adresów sieciowych spełnia te wymagania.
- Jeśli musisz zarządzać NAT niezależnie od AKS, użyj bramy NAT przypisanej przez użytkownika.
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 i ograniczenia
- Potrzebny jest istniejący klaster AKS w wersji v1.26 lub nowszej. Jeśli używasz platformy Kubernetes w wersji 1.25 lub starszej, zaktualizuj konfigurację wdrożenia.
- Nie można ustawić typu ruchu wychodzącego dla klastra na LoadBalancer. Można ustawić dla brama NAT lub trasy zdefiniowanej przez użytkownika:
- NAT Gateway: automatycznie obsługuje połączenia NAT i zapewnia większe możliwości niż usługa Load Balancer w warstwie Standardowa. W przypadku korzystania z 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.
- Aby przełączyć się z usługi Load Balancer na bramę NAT, możesz dodać bramę NAT do sieci wirtualnej (VNet) lub uruchomić polecenie
az aks upgrade, aby zaktualizować typ ruchu wychodzącego.
Uwaga
UserDefinedRouting ma następujące ograniczenia:
- SNAT realizowany przez usługę Load Balancer (musi używać domyślnego ustawienia OutboundNAT) udostępnia 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 64 512 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.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-natPrzykładowy wynik:
{ "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" }
Treści powiązane
Aby uzyskać więcej informacji na temat Azure NAT Gateway i usługi AKS Automatic, zobacz następujące artykuły: