Tworzenie zarządzanej lub przypisanej przez użytkownika bramy translatora adresów sieciowych dla klastra usługi Azure Kubernetes Service (AKS)
Chociaż możesz kierować ruch wychodzący za pośrednictwem usługi Azure Load Balancer, istnieją ograniczenia dotyczące liczby przepływów wychodzących ruchu, które możesz mieć. Usługa Azure NAT Gateway umożliwia maksymalnie 64 512 wychodzących przepływów ruchu UDP i TCP na adres IP z maksymalnie 16 adresami IP.
W tym artykule pokazano, jak utworzyć klaster usługi Azure Kubernetes Service (AKS) z zarządzaną bramą translatora adresów sieciowych i bramą translatora adresów sieciowych przypisanych przez użytkownika na potrzeby ruchu wychodzącego. Pokazano również, jak wyłączyć funkcję OutboundNAT w systemie Windows.
Zanim rozpoczniesz
- Upewnij się, że używasz najnowszej wersji interfejsu wiersza polecenia platformy Azure.
- Upewnij się, że używasz platformy Kubernetes w wersji 1.20.x lub nowszej.
- Zarządzana brama translatora adresów sieciowych jest niezgodna z niestandardowymi sieciami wirtualnymi.
Ważne
W klastrach innych niż prywatne ruch klastra serwera interfejsu API jest kierowany i przetwarzany za pośrednictwem typu wychodzącego klastrów. 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.
Tworzenie klastra usługi AKS z zarządzaną bramą translatora adresów sieciowych
Utwórz klaster usługi AKS z nową zarządzaną bramą translatora adresów sieciowych przy użyciu
az aks create
polecenia z parametrami--outbound-type managedNATGateway
,--nat-gateway-managed-outbound-ip-count
i--nat-gateway-idle-timeout
. Jeśli chcesz, aby brama translatora adresów sieciowych działała poza określoną strefą dostępności, określ strefę przy użyciu polecenia--zones
.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". Gdy brama translatora adresów sieciowych nie znajduje się w żadnej strefie, platforma Azure umieszcza zasób w strefie. Aby uzyskać więcej informacji na temat nienależących do strefowego modelu wdrażania, zobacz brama translatora adresów sieciowych nienależących do stref.
Zarządzany zasób bramy translatora adresów sieciowych nie może być używany w wielu strefach dostępności.
az aks create \ --resource-group myResourceGroup \ --name myNatCluster \ --node-count 3 \ --outbound-type managedNATGateway \ --nat-gateway-managed-outbound-ip-count 2 \ --nat-gateway-idle-timeout 4 \ --generate-ssh-keys
Zaktualizuj wychodzący adres IP lub limit czasu bezczynności przy użyciu
az aks update
polecenia z parametrem--nat-gateway-managed-outbound-ip-count
or--nat-gateway-idle-timeout
.az aks update \ --resource-group myResourceGroup \ --name myNatCluster\ --nat-gateway-managed-outbound-ip-count 5
Tworzenie klastra usługi AKS przy użyciu bramy translatora adresów sieciowych przypisanych przez użytkownika
Ta konfiguracja wymaga użycia własnej sieci (za pośrednictwem rozwiązania Kubenet lub azure CNI) i że brama translatora adresów sieciowych jest wstępnie skonfigurowana w podsieci. Następujące polecenia tworzą wymagane zasoby dla tego scenariusza.
Utwórz grupę zasobów przy użyciu
az group create
polecenia .az group create --name myResourceGroup \ --location southcentralus
Utwórz tożsamość zarządzaną dla uprawnień sieci i zapisz identyfikator do
$IDENTITY_ID
późniejszego użycia.IDENTITY_ID=$(az identity create \ --resource-group myResourceGroup \ --name myNatClusterId \ --location southcentralus \ --query id \ --output tsv)
Utwórz publiczny adres IP bramy translatora adresów
az network public-ip create
sieciowych przy użyciu polecenia .az network public-ip create \ --resource-group myResourceGroup \ --name myNatGatewayPip \ --location southcentralus \ --sku standard
Utwórz bramę translatora adresów
az network nat gateway create
sieciowych przy użyciu polecenia .az network nat gateway create \ --resource-group myResourceGroup \ --name myNatGateway \ --location southcentralus \ --public-ip-addresses myNatGatewayPip
Ważne
Nie można używać pojedynczego zasobu bramy translatora adresów sieciowych w wielu strefach dostępności. Aby zapewnić odporność strefy, zaleca się wdrożenie zasobu bramy translatora adresów sieciowych w każdej strefie dostępności i przypisanie do podsieci zawierających klastry usługi AKS w każdej strefie. Aby uzyskać więcej informacji na temat tego modelu wdrażania, zobacz Brama translatora adresów sieciowych dla każdej strefy. Jeśli żadna strefa nie jest skonfigurowana dla bramy translatora adresów sieciowych, domyślna lokalizacja strefy to "brak strefy", w której platforma Azure umieszcza bramę translatora adresów sieciowych w strefie.
Utwórz sieć wirtualną przy użyciu
az network vnet create
polecenia .az network vnet create \ --resource-group myResourceGroup \ --name myVnet \ --location southcentralus \ --address-prefixes 172.16.0.0/20
Utwórz podsieć w sieci wirtualnej przy użyciu bramy translatora adresów sieciowych i zapisz identyfikator do
$SUBNET_ID
późniejszego użycia.SUBNET_ID=$(az network vnet subnet create \ --resource-group myResourceGroup \ --vnet-name myVnet \ --name myNatCluster \ --address-prefixes 172.16.0.0/22 \ --nat-gateway myNatGateway \ --query id \ --output tsv)
Utwórz klaster usługi AKS przy użyciu podsieci z bramą translatora adresów sieciowych i tożsamością zarządzaną przy użyciu
az aks create
polecenia .az aks create \ --resource-group myResourceGroup \ --name myNatCluster \ --location southcentralus \ --network-plugin azure \ --vnet-subnet-id $SUBNET_ID \ --outbound-type userAssignedNATGateway \ --assign-identity $IDENTITY_ID \ --generate-ssh-keys
Wyłączanie ruchu wychodzącegoNAT dla systemu Windows
Funkcja Windows OutboundNAT może powodować pewne problemy z połączeniem i komunikacją z zasobnikami usługi AKS. Przykładem problemu jest ponowne użycie portu węzła. W tym przykładzie system Windows OutboundNAT używa portów do tłumaczenia adresu IP zasobnika na adres IP hosta węzła systemu Windows, co może spowodować niestabilne połączenie z usługą zewnętrzną z powodu problemu z wyczerpaniem portów.
System Windows domyślnie włącza funkcję OutboundNAT. Teraz możesz ręcznie wyłączyć funkcję OutboundNAT podczas tworzenia nowych pul agentów systemu 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 ruchu wychodzącego klastra na LoadBalancer. Można ustawić dla bramy translatora adresów sieciowych lub trasy zdefiniowanej przez użytkownika:
- Brama translatora adresów sieciowych: brama translatora adresów sieciowych może automatycznie obsługiwać połączenie translatora adresów sieciowych i jest wydajniejsza niż usługa Load Balancer w warstwie Standardowa. 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 modułu równoważenia obciążenia do bramy translatora adresów sieciowych, możesz dodać bramę translatora adresów sieciowych do sieci wirtualnej lub uruchomić polecenie
az aks upgrade
, aby zaktualizować typ ruchu wychodzącego.
Uwaga
UserDefinedRouting ma następujące ograniczenia:
- SNAT by 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 usługi Azure Firewall nie jest wystarczający dla aplikacji, musisz użyć bramy translatora adresów sieciowych.
- Usługa Azure Firewall nie obsługuje protokołu SNAT z regułami sieci, gdy docelowy adres IP znajduje się w prywatnym zakresie adresów IP dla protokołu IANA RFC 1918 lub współużytkowanej przestrzeni adresowej na IANA RFC 6598.
Ręczne wyłączanie ruchu wychodzącegoNAT dla systemu Windows
Ręcznie wyłącz funkcję OutboundNAT dla systemu Windows podczas tworzenia nowych pul agentów systemu Windows przy użyciu
az aks nodepool add
polecenia z flagą--disable-windows-outbound-nat
.Uwaga
Możesz użyć istniejącego klastra usługi AKS, ale może być konieczne zaktualizowanie typu ruchu wychodzącego i dodanie puli węzłów w celu włączenia funkcji
--disable-windows-outbound-nat
.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myNatCluster \ --name mynp \ --node-count 3 \ --os-type Windows \ --disable-windows-outbound-nat
Następne kroki
Aby uzyskać więcej informacji na temat usługi Azure NAT Gateway, zobacz Brama translatora adresów sieciowych platformy Azure.
Azure Kubernetes Service