Azure CNI pod-alhálózat konfigurálása – Dinamikus IP-kiosztás és továbbfejlesztett alhálózat-támogatás az Azure Kubernetes Service-ben (AKS)

A hagyományos CNI hátránya a pod IP-címeinek kimerülése az AKS-fürt méretének növekedésével, amely azt eredményezheti, hogy a teljes fürtöt újjá kell építeni egy nagyobb alhálózatban. Az Azure CNI új dinamikus IP-foglalási képessége megoldja ezt a problémát azáltal, hogy pod IP-címeket oszt ki az AKS-fürtöt üzemeltető alhálózattól eltérő alhálózatról.

A következő előnyöket nyújtja:

  • Továbbfejlesztett IP-kihasználás: Az IP-k dinamikusan kerülnek kiosztásra a klaszter Pods-ok számára a Pod alhálózatból. Ez javítja az IP-k kihasználtságát a klaszterekben a hagyományos CNI megoldáshoz képest, amely statikus IP-allokációt alkalmaz minden egyes csomópontnál.
  • Skálázható és rugalmas: A csomópontok és podok alhálózatai egymástól függetlenül skálázhatók. Egyetlen pod-alhálózat megosztható egy klaszter több csomópontkészlete között vagy több AKS-klaszter között, amelyek ugyanabban a virtuális hálózatban (VNet) vannak üzembe helyezve. A csomópontkészlethez külön pod-alhálózatot is konfigurálhat.
  • Nagy teljesítmény: Mivel a podok virtuális hálózati IP-címekhez vannak rendelve, közvetlen kapcsolatot létesítenek a virtuális hálózat más fürt podjaival és erőforrásaival. A megoldás nagyon nagy klasztereket támogat teljesítményromlás nélkül.
  • Külön VNet-szabályzatok podokhoz: Mivel a podoknak külön alhálózatuk van, külön VNet-szabályzatokat állíthat be számukra, amelyek eltérnek a csomópontok szabályzataitól. Ez számos hasznos forgatókönyvet tesz lehetővé, például az internetkapcsolat engedélyezését csak a podoknak és nem a csomópontoknak, a csomópontkészletek podjainak forrás IP-címének rögzítését egy Azure NAT átjáró használatával, valamint az NSG-k alkalmazását a csomópontkészletek közötti forgalom szűrésére.
  • Kubernetes hálózati szabályzatok: Az Azure Hálózati szabályzatok és a Calico is ezzel az új megoldással dolgozik.

Ez a cikk bemutatja, hogyan használhatja az Azure CNI pod-alhálózatát – dinamikus IP-kiosztást és továbbfejlesztett alhálózati támogatást az AKS-ben.

Prerequisites

  • Tekintse át az alapszintű Azure CNI-hálózatkezelés konfigurálásának előfeltételeit az AKS-ben, mivel a jelen cikkre ugyanazok az előfeltételek vonatkoznak.

  • Tekintse át az üzembehelyezési paramétereket az Azure CNI alapszintű hálózatkezelésének konfigurálásához az AKS-ben, mivel ugyanezek a paraméterek érvényesek.

  • Az AKS Engine és a DIY-fürtök nem támogatottak.

  • Azure CLI-verzió 2.37.0 vagy újabb verzió.

  • Ha már rendelkezik fürtel, engedélyeznie kell a Container Insightst az IP-alhálózatok használatának figyeléséhez. A Container Insightst a az aks enable-addons parancs használatával engedélyezheti, ahogyan az alábbi példában is látható:

    az aks enable-addons --addons monitoring --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME
    

IP-címzés megtervezése

Ezzel a funkcióval sokkal egyszerűbb megtervezni az IP-címzést. Mivel a csomópontok és podok egymástól függetlenül méretezhetők, a címterek külön is tervezhetők. Mivel a pod-alhálózatok konfigurálhatók a csomópontkészlet részletességéhez, csomópontkészlet hozzáadásakor mindig hozzáadhat egy új alhálózatot. A rendszer podjai egy fürtben/csomópontkészletben IP-címeket kapnak a podok alhálózatáról, így ezt a viselkedést számításba kell venni.

Az IP-címek 16-os kötegekben vannak lefoglalva a csomópontokhoz. A pod alhálózathoz tartozó IP-címek kiosztását a fürtön belül csomópontonként legalább 16 IP-címmel kell megtervezni; a csomópontok indításkor 16 IP-címet kérnek, és újabb 16 IP-címet kérnek, amikor csak 8 IP-cím van kiosztva a kontingensükben.

A Kubernetes-szolgáltatásokhoz és a Docker-hídhoz tartozó IP-címek tervezése változatlan marad.

Az IP-foglalásokért felelős NodeNetworkConfiguration (NNC) erőforrások megtekintéséhez és ellenőrzéséhez futtassa a következő parancsot:

kubectl get nodenetworkconfigs -n kube-system -o wide

Podok maximális száma csomópontonként egy fürtben pod-alhálózattal – Dinamikus IP-kiosztás és továbbfejlesztett alhálózat-támogatás

A podok csomópontonkénti értéke az Azure CNI pod-alhálózatának használatakor – A dinamikus IP-foglalás kissé eltér a hagyományos CNI-viselkedéstől:

CNI Default Üzembe helyezéskor konfigurálható
Hagyományos Azure CNI 30 Igen (legfeljebb 250)
Azure CNI pod-alhálózat – Dinamikus IP-kiosztás 250 Igen (legfeljebb 250)

A csomópontonkénti maximális podok konfigurálásával kapcsolatos összes egyéb útmutató változatlan marad.

Üzembehelyezési paraméterek

Az Azure CNI alapszintű hálózatkezelésének AKS-ben való konfigurálására szolgáló üzembehelyezési paraméterekmind érvényesek, két kivétellel:

  • Az alhálózat paraméter most a fürt csomópontjaihoz kapcsolódó alhálózatra vonatkozik.
  • A rendszer egy további paraméter pod-alhálózatot használ annak az alhálózatnak a megadásához, amelynek IP-címei dinamikusan lesznek lefoglalva a podokhoz.

Pod-alhálózat konfigurálása – Dinamikus IP-kiosztás és továbbfejlesztett alhálózat-támogatás – Azure CLI

Pod-alhálózat használata – A fürt dinamikus IP-foglalása és továbbfejlesztett alhálózati támogatása hasonló az Azure CNI-fürt konfigurálásának alapértelmezett módszeréhez. Az alábbi példa bemutatja, hogyan hozhat létre új virtuális hálózatot a csomópontok alhálózatával és a podokhoz tartozó alhálózattal, és hogyan hozhat létre egy Azure CNI pod-alhálózatot használó fürtöt – dinamikus IP-kiosztást és továbbfejlesztett alhálózat-támogatást. Mindenképpen cserélje le a változókat, például a $subscription-t a saját értékeire.

Hozza létre a virtuális hálózatot két alhálózattal.

RESOURCE_GROUP_NAME="myResourceGroup"
VNET_NAME="myVirtualNetwork"
LOCATION="westcentralus"
SUBNET_NAME_1="nodesubnet"
SUBNET_NAME_2="podsubnet"

# Create the resource group
az group create --name $RESOURCE_GROUP_NAME --location $LOCATION

# Create our two subnet network 
az network vnet create --resource-group $RESOURCE_GROUP_NAME --location $LOCATION --name $VNET_NAME --address-prefixes 10.0.0.0/8 -o none 
az network vnet subnet create --resource-group $RESOURCE_GROUP_NAME --vnet-name $VNET_NAME --name $SUBNET_NAME_1 --address-prefixes 10.240.0.0/16 -o none 
az network vnet subnet create --resource-group $RESOURCE_GROUP_NAME --vnet-name $VNET_NAME --name $SUBNET_NAME_2 --address-prefixes 10.241.0.0/16 -o none 

Hozza létre a fürtöt, hivatkozva a csomópont alhálózatára --vnet-subnet-id és a pod alhálózatára --pod-subnet-id, valamint engedélyezze a monitorozási bővítményt.

CLUSTER_NAME="myAKSCluster"
SUBSCRIPTION="aaaaaaa-aaaaa-aaaaaa-aaaa"

az aks create \
    --name $CLUSTER_NAME \
    --resource-group $RESOURCE_GROUP_NAME \
    --location $LOCATION \
    --max-pods 250 \
    --node-count 2 \
    --network-plugin azure \
    --vnet-subnet-id /subscriptions/$SUBSCRIPTION/resourceGroups/$RESOURCE_GROUP_NAME/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$SUBNET_NAME_1 \
    --pod-subnet-id /subscriptions/$SUBSCRIPTION/resourceGroups/$RESOURCE_GROUP_NAME/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$SUBNET_NAME_2 \
    --enable-addons monitoring \
    --generate-ssh-keys

Csomópontkészlet hozzáadása

Csomópontkészlet hozzáadásakor a csomópont alhálózatára a --vnet-subnet-id használatával hivatkozzon, és a pod alhálózatát a --pod-subnet-id segítségével használja. Az alábbi példa két új alhálózatot hoz létre, amelyekre aztán hivatkozni kell egy új csomópontkészlet létrehozásakor:

SUBNET_NAME_3="node2subnet"
SUBNET_NAME_4="pod2subnet"
NODE_POOL_NAME="mynodepool"

az network vnet subnet create --resource-group $RESOURCE_GROUP_NAME --vnet-name $VNET_NAME --name $SUBNET_NAME_3 --address-prefixes 10.242.0.0/16 -o none 
az network vnet subnet create --resource-group $RESOURCE_GROUP_NAME --vnet-name $VNET_NAME --name $SUBNET_NAME_4 --address-prefixes 10.243.0.0/16 -o none 

az aks nodepool add --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME --name $NODE_POOL_NAME \
    --max-pods 250 \
    --node-count 2 \
    --vnet-subnet-id /subscriptions/$SUBSCRIPTION/resourceGroups/$RESOURCE_GROUP_NAME/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$SUBNET_NAME_3 \
    --pod-subnet-id /subscriptions/$SUBSCRIPTION/resourceGroups/$RESOURCE_GROUP_NAME/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$SUBNET_NAME_4 \
    --no-wait

IP-alhálózat használatának figyelése

Az Azure CNI lehetővé teszi az IP-alhálózatok használatának monitorozását. Az IP-alhálózatok használatának monitorozásához kövesse az alábbi lépéseket:

A YAML-fájl lekérése

  1. Töltse le vagy keresse ki a container-azm-ms-agentconfig.yaml nevű fájlt a GitHub-ról.

  2. Keresd meg azure_subnet_ip_usage az integrációkban. Állítsa a enabled elemet true értékre.

  3. Mentse a fájlt.

Az AKS hitelesítő adatainak lekérése

Állítsa be az előfizetés, az erőforráscsoport és a fürt változóit. Vegyük példaként az alábbiakat:

az account set --subscription $SUBSCRIPTION
az aks get-credentials --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME

A konfiguráció alkalmazása

  1. Nyissa meg a terminált abban a mappában, amelyben a letöltött container-azm-ms-agentconfig.yaml fájl mentésre kerül.
  2. Alkalmazza a konfigurációt a kubectl apply -f container-azm-ms-agentconfig.yaml parancs használatával. Ez újraindítja a podot, és 5–10 perc elteltével a metrikák láthatók lesznek.
  3. A fürt metrikáinak megtekintéséhez navigáljon a fürt oldalán lévő Munkafüzetekre az Azure portálon, és keresse meg a Subnet IP Usage nevű munkafüzetet.

Azure CNI alhálózat – GYIK a dinamikus IP-kiosztásról és a továbbfejlesztett alhálózati támogatásról

  • Hozzárendelhetek több pod-alhálózatot egy fürthöz vagy csomópontkészlethez?

    Csak egy alhálózat rendelhető hozzá egy fürthöz vagy csomópontkészlethez. Azonban több fürt vagy csomóponthalmaz is megoszthat egyetlen alhálózatot.

  • Rendelhetek pod-alhálózatokat egy egészen más virtuális hálózatból?

    Nem, a pod alhálózatának a fürttel azonos virtuális hálózatból kell származnia.

  • Használhatja egy fürt egyes csomópontkészlete a hagyományos CNI-t, míg mások az új CNI-t?

    A teljes fürtnek csak egy típusú CNI-t kell használnia.

Következő lépések

További információ az AKS hálózatkezeléséről az alábbi cikkekben: