Vytvoření spravované nebo uživatelem přiřazené brány NAT pro cluster Azure Kubernetes Service (AKS)
I když můžete směrovat odchozí provoz přes Azure Load Balancer, existuje omezení počtu odchozích toků provozu, který můžete mít. Azure NAT Gateway umožňuje až 64 512 odchozích toků UDP a TCP na IP adresu s maximálně 16 IP adresami.
V tomto článku se dozvíte, jak vytvořit cluster Azure Kubernetes Service (AKS) se spravovanou bránou NAT a bránou NAT přiřazenou uživatelem pro odchozí provoz. Ukáže vám také, jak ve Windows zakázat odchozí překlad adres (OUTBOUNDNAT).
Než začnete
- Ujistěte se, že používáte nejnovější verzi Azure CLI.
- Ujistěte se, že používáte Kubernetes verze 1.20.x nebo vyšší.
- Spravovaná služba NAT Gateway není kompatibilní s vlastními virtuálními sítěmi.
Důležité
V nesoukromého clusteru se provoz clusteru serveru ROZHRANÍ API směruje a zpracovává prostřednictvím odchozího typu clusterů. Pokud chcete zabránit zpracování provozu serveru rozhraní API jako veřejného provozu, zvažte použití privátního clusteru nebo si projděte funkci integrace virtuální sítě serveru API.
Vytvoření clusteru AKS se spravovanou službou NAT Gateway
Vytvořte cluster AKS s novou spravovanou službou NAT Gateway pomocí
az aks create
příkazu s parametrem--outbound-type managedNATGateway
,--nat-gateway-managed-outbound-ip-count
a--nat-gateway-idle-timeout
parametry. Pokud chcete, aby služba NAT Gateway fungovala mimo konkrétní zónu dostupnosti, zadejte zónu pomocí--zones
.Pokud při vytváření spravované brány NAT není zadaná žádná zóna, nasadí se ve výchozím nastavení brána NAT do žádné zóny. Když je služba NAT Gateway umístěná v žádné zóně, Azure umístí prostředek do zóny za vás. Další informace o modelu nasazení, který není zónový, najdete v tématu bez zónové brány NAT Gateway.
Spravovaný prostředek služby NAT Gateway se nedá použít napříč několika zónami dostupnosti.
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
Aktualizujte odchozí IP adresu nebo časový limit nečinnosti pomocí
az aks update
příkazu s parametrem nebo parametrem--nat-gateway-managed-outbound-ip-count
--nat-gateway-idle-timeout
.az aks update \ --resource-group myResourceGroup \ --name myNatCluster\ --nat-gateway-managed-outbound-ip-count 5
Vytvoření clusteru AKS s uživatelsky přiřazenou službou NAT Gateway
Tato konfigurace vyžaduje vlastní sítě (přes Kubenet nebo Azure CNI) a že je v podsíti předem nakonfigurovaná brána NAT. Následující příkazy vytvoří požadované prostředky pro tento scénář.
Pomocí příkazu vytvořte skupinu
az group create
prostředků.az group create --name myResourceGroup \ --location southcentralus
Vytvořte spravovanou identitu pro síťová oprávnění a uložte ID pro
$IDENTITY_ID
pozdější použití.IDENTITY_ID=$(az identity create \ --resource-group myResourceGroup \ --name myNatClusterId \ --location southcentralus \ --query id \ --output tsv)
Vytvořte veřejnou IP adresu pro službu NAT Gateway pomocí
az network public-ip create
příkazu.az network public-ip create \ --resource-group myResourceGroup \ --name myNatGatewayPip \ --location southcentralus \ --sku standard
Pomocí příkazu vytvořte bránu
az network nat gateway create
NAT Gateway.az network nat gateway create \ --resource-group myResourceGroup \ --name myNatGateway \ --location southcentralus \ --public-ip-addresses myNatGatewayPip
Důležité
Jeden prostředek služby NAT Gateway se nedá použít napříč několika zónami dostupnosti. Pokud chcete zajistit odolnost proti zónám, doporučujeme nasadit prostředek služby NAT Gateway do každé zóny dostupnosti a přiřadit k podsítím obsahujícím clustery AKS v každé zóně. Další informace o tomto modelu nasazení najdete v tématu NAT Gateway pro každou zónu. Pokud není pro službu NAT Gateway nakonfigurovaná žádná zóna, výchozí umístění zóny je bez zóny, ve které Azure umístí bránu NAT do zóny za vás.
Vytvořte virtuální síť pomocí
az network vnet create
příkazu.az network vnet create \ --resource-group myResourceGroup \ --name myVnet \ --location southcentralus \ --address-prefixes 172.16.0.0/20
Vytvořte ve virtuální síti podsíť pomocí služby NAT Gateway a uložte ID pro
$SUBNET_ID
pozdější použití.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)
Vytvořte cluster AKS pomocí podsítě se službou NAT Gateway a spravovanou identitou pomocí
az aks create
příkazu.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
Zakázání odchozího překladu adres (NAT) pro Windows
Odchozí připojení windows může způsobit určité problémy s připojením a komunikací s pody AKS. Příkladem problému je opětovné použití portu uzlu. V tomto příkladu windows OutboundNAT používá porty k překladu IP adresy podu na IP adresu hostitele uzlu s Windows, což může způsobit nestabilní připojení k externí službě kvůli problému s vyčerpáním portů.
Systém Windows ve výchozím nastavení povoluje odchozí připojeníNAT. Při vytváření nových fondů agentů Systému Windows teď můžete ručně zakázat odchozí připojeníNAT.
Požadavky
- Existující cluster AKS s v1.26 nebo vyšší. Pokud používáte Kubernetes verze 1.25 nebo starší, musíte aktualizovat konfiguraci nasazení.
Omezení
- Odchozí typ clusteru nejde nastavit na LoadBalancer. Můžete ho nastavit na Nat Gateway nebo trasu definovanou uživatelem:
- NAT Gateway: NAT Gateway dokáže automaticky zpracovat připojení NAT a je výkonnější než Standard Load Balancer. Za tuto možnost se můžou účtovat další poplatky.
- Trasa definovaná uživatelem (UserDefinedRouting):: Při konfiguraci pravidel směrování musíte mít na paměti omezení portů.
- Pokud potřebujete přepnout z nástroje pro vyrovnávání zatížení na SLUŽBU NAT Gateway, můžete buď přidat bránu NAT do virtuální sítě, nebo spustit
az aks upgrade
, aby se aktualizoval odchozí typ.
Poznámka:
UserDefinedRouting má následující omezení:
- SNAT by Load Balancer (musí používat výchozí OdchozíNAT) má na IP adrese hostitele 64 portů.
- SNAT by Azure Firewall (zákaz odchozího přístupu) má 2496 portů na veřejnou IP adresu.
- SNAT by NAT Gateway (disable OutboundNAT) má 64512 portů na veřejnou IP adresu.
- Pokud rozsah portů služby Azure Firewall pro vaši aplikaci nestačí, musíte použít službu NAT Gateway.
- Azure Firewall nepodporuje SNAT s pravidly sítě, pokud je cílová IP adresa v privátním rozsahu IP adres na IANA RFC 1918 nebo sdílený adresní prostor na IANA RFC 6598.
Ruční zakázání odchozího překladu adres (OUTBOUNDNAT) pro Windows
Ručně zakažte Odchozínat pro Windows při vytváření nových fondů agentů Windows pomocí
az aks nodepool add
příkazu s příznakem--disable-windows-outbound-nat
.Poznámka:
Můžete použít existující cluster AKS, ale možná budete muset aktualizovat typ odchozích přenosů a přidat fond uzlů, aby bylo možné povolit
--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
Další kroky
Další informace o službě Azure NAT Gateway najdete v tématu Azure NAT Gateway.
Azure Kubernetes Service