Felügyelt vagy felhasználó által hozzárendelt NAT-átjáró létrehozása az Azure Kubernetes Service-fürthöz
Bár a kimenő forgalmat az Azure Load Balanceren keresztül irányíthatja, a kimenő forgalom száma korlátozott. Az Azure NAT Gateway legfeljebb 64 512 kimenő UDP- és TCP-forgalmat tesz lehetővé IP-címenként, legfeljebb 16 IP-címmel.
Ez a cikk bemutatja, hogyan hozhat létre Azure Kubernetes Service-fürtöt (AKS) felügyelt NAT-átjáróval és felhasználó által hozzárendelt NAT-átjáróval a kimenő forgalom számára. Azt is bemutatja, hogyan tilthatja le az OutboundNAT-t Windows rendszeren.
Mielőtt elkezdené
- Győződjön meg arról, hogy az Azure CLI legújabb verzióját használja.
- Győződjön meg arról, hogy a Kubernetes 1.20.x vagy újabb verzióját használja.
- A felügyelt NAT-átjáró nem kompatibilis az egyéni virtuális hálózatokkal.
Fontos
A nem privát fürtökben az API-kiszolgálófürt forgalmát a rendszer a kimenő fürttípuson keresztül irányítja és dolgozza fel. Ha meg szeretné akadályozni, hogy az API-kiszolgáló forgalma nyilvános forgalomként legyen feldolgozva, fontolja meg egy privát fürt használatát, vagy tekintse meg az API Server virtuális hálózatok integrációjának funkcióját.
AKS-fürt létrehozása felügyelt NAT-átjáróval
Hozzon létre egy AKS-fürtöt egy új felügyelt NAT-átjáróval a
az aks create
,--nat-gateway-managed-outbound-ip-count
és--nat-gateway-idle-timeout
paraméterekkel rendelkező--outbound-type managedNATGateway
paranccsal. Ha azt szeretné, hogy a NAT-átjáró egy adott rendelkezésre állási zónából működjön, adja meg a zónát a következővel--zones
: .Ha egy felügyelt NAT-átjáró létrehozásakor nincs zóna megadva, a NAT-átjáró alapértelmezés szerint a "nincs zóna" értékre lesz üzembe helyezve. Ha a NAT-átjáró nincs zónába helyezve, az Azure egy zónába helyezi az erőforrást. A nem zonális üzemi modellről további információt a nem zonális NAT-átjáróban talál.
A felügyelt NAT-átjáró-erőforrás nem használható több rendelkezésre állási zónában.
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
Frissítse a kimenő IP-címet vagy az inaktív időtúllépést a
az aks update
paranccsal a vagy--nat-gateway-idle-timeout
paraméterrel--nat-gateway-managed-outbound-ip-count
.az aks update \ --resource-group myResourceGroup \ --name myNatCluster\ --nat-gateway-managed-outbound-ip-count 5
AKS-fürt létrehozása felhasználó által hozzárendelt NAT-átjáróval
Ehhez a konfigurációhoz saját hálózatkezelésre van szükség (Kubeneten vagy Azure CNI-n keresztül), és hogy a NAT-átjáró előre konfigurálva legyen az alhálózaton. A következő parancsok hozzák létre a forgatókönyvhöz szükséges erőforrásokat.
Hozzon létre egy erőforráscsoportot a
az group create
paranccsal.az group create --name myResourceGroup \ --location southcentralus
Hozzon létre egy felügyelt identitást a hálózati engedélyekhez, és tárolja az azonosítót
$IDENTITY_ID
későbbi használatra.IDENTITY_ID=$(az identity create \ --resource-group myResourceGroup \ --name myNatClusterId \ --location southcentralus \ --query id \ --output tsv)
Hozzon létre egy nyilvános IP-címet a NAT-átjáróhoz a
az network public-ip create
paranccsal.az network public-ip create \ --resource-group myResourceGroup \ --name myNatGatewayPip \ --location southcentralus \ --sku standard
Hozza létre a NAT-átjárót a
az network nat gateway create
paranccsal.az network nat gateway create \ --resource-group myResourceGroup \ --name myNatGateway \ --location southcentralus \ --public-ip-addresses myNatGatewayPip
Fontos
Egyetlen NAT-átjáró-erőforrás nem használható több rendelkezésre állási zónában. A zónarugalmasság biztosítása érdekében ajánlott NAT-átjáróerőforrást üzembe helyezni minden rendelkezésre állási zónában, és hozzárendelni az egyes zónákban lévő AKS-fürtöket tartalmazó alhálózatokhoz. Az üzembe helyezési modellről további információt az egyes zónák NAT-átjárójában talál. Ha a NAT-átjáróhoz nincs zóna konfigurálva, az alapértelmezett zónaelhelyezés a "nincs zóna", amelyben az Azure a NAT-átjárót egy zónába helyezi.
Hozzon létre egy virtuális hálózatot a
az network vnet create
paranccsal.az network vnet create \ --resource-group myResourceGroup \ --name myVnet \ --location southcentralus \ --address-prefixes 172.16.0.0/20
Hozzon létre egy alhálózatot a virtuális hálózaton a NAT-átjáróval, és tárolja az azonosítót
$SUBNET_ID
későbbi használatra.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)
Hozzon létre egy AKS-fürtöt az alhálózattal a NAT-átjáróval és a felügyelt identitással a
az aks create
parancs használatával.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
OutboundNAT letiltása Windowshoz
A Windows OutboundNAT bizonyos kapcsolati és kommunikációs problémákat okozhat az AKS-podokkal. Ilyen probléma például a csomópontportok újrafelhasználása. Ebben a példában a Windows OutboundNAT portokkal fordítja le a pod IP-címét a Windows-csomópont gazdagépÉNEK IP-címére, ami a portkimerülési probléma miatt instabil kapcsolatot okozhat a külső szolgáltatással.
A Windows alapértelmezés szerint engedélyezi az OutboundNAT-t. Új Windows-ügynökkészletek létrehozásakor mostantól manuálisan is letilthatja a kimenőNAT-t.
Előfeltételek
- Meglévő AKS-fürt 1.26-os vagy újabb verzióval. Ha a Kubernetes 1.25-ös vagy újabb verzióját használja, frissítenie kell az üzembehelyezési konfigurációt.
Korlátozások
- A fürt kimenő kimenő típusát nem állíthatja be a LoadBalancerre. Nat Gatewayre vagy UDR-re is beállíthatja:
- NAT-átjáró: A NAT-átjáró képes automatikusan kezelni a NAT-kapcsolatot, és nagyobb teljesítményű, mint a Standard Load Balancer. Ezzel a lehetőséggel további díjak merülhetnek fel.
- UDR (UserDefinedRouting): Az útválasztási szabályok konfigurálásakor szem előtt kell tartania a portkorlátozásokat.
- Ha terheléselosztóról NAT-átjáróra kell váltania, hozzáadhat egy NAT-átjárót a virtuális hálózathoz, vagy futtathatja
az aks upgrade
a kimenő típus frissítéséhez.
Feljegyzés
A UserDefinedRouting a következő korlátozásokkal rendelkezik:
- A Load Balancer által használt SNAT (az alapértelmezett kimenőNAT-t kell használnia) "64 porttal rendelkezik a gazdagép IP-címén".
- Az Azure Firewall által létrehozott SNAT (outboundNAT letiltása) nyilvános IP-címenként 2496 porttal rendelkezik.
- A NAT-átjáró által létrehozott SNAT (outboundNAT letiltása) nyilvános IP-címenként 64512 porttal rendelkezik.
- Ha az Azure Firewall porttartománya nem elég az alkalmazáshoz, a NAT Gatewayt kell használnia.
- Az Azure Firewall nem SNAT hálózati szabályokkal rendelkezik, ha a cél IP-cím az IANA RFC 1918-ban egy privát IP-címtartományban van, vagy az IANA RFC 6598-onként megosztott címtérben van.
OutboundNAT manuális letiltása Windowshoz
Ha új Windows-ügynökkészleteket hoz létre a jelölővel ellátott paranccsal, manuálisan tiltsa le a
az aks nodepool add
Windows kimenőNAT parancsát--disable-windows-outbound-nat
.Feljegyzés
Használhat meglévő AKS-fürtöt, de előfordulhat, hogy frissítenie kell a kimenő típust, és hozzá kell adnia egy csomópontkészletet az engedélyezéshez
--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
Következő lépések
További információ az Azure NAT Gatewayről: Azure NAT Gateway.
Azure Kubernetes Service