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.

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 managedNATGatewayparanccsal. 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
    
  • 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.

  1. Hozzon létre egy erőforráscsoportot a az group create paranccsal.

    az group create --name myResourceGroup \
        --location southcentralus
    
  2. 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)
    
  3. 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
    
  4. 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.

  5. 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 
    
  6. 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)
    
  7. 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 \
        --enable-managed-identity \
        --assign-identity $IDENTITY_ID
    

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

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 mynodepool
        --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.