Az Azure CNI hálózatkezelésének konfigurálása az IP-címek dinamikus kiosztásához és továbbfejlesztett alhálózat-támogatáshoz 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 növekedésével, ami azt eredményezi, hogy a teljes fürtöt újra 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:

  • Jobb IP-kihasználtság: Az IP-címek dinamikusan vannak lefoglalva a pod alhálózatából származó fürt podjaihoz. Ez a fürt IP-címeinek jobb kihasználtságát eredményezi a hagyományos CNI-megoldáshoz képest, amely minden csomóponthoz statikusan kiosztja az IP-címeket.
  • Méretezhető és rugalmas: A csomópont- és pod-alhálózatok egymástól függetlenül méretezhetők. Egyetlen pod-alhálózat megosztható egy fürt több csomópontkészletén vagy több, ugyanabban a virtuális hálózaton üzembe helyezett AKS-fürtön. A csomópontkészlethez külön pod-alhálózatot is konfigurálhat.
  • Nagy teljesítmény: Mivel a pod virtuális hálózati IP-címekhez van rendelve, közvetlen kapcsolattal rendelkeznek a virtuális hálózat többi fürt podja és erőforrásai felé. A megoldás a teljesítmény romlása nélkül támogatja a nagy méretű fürtöket.
  • Különálló virtuálishálózat-házirendek podokhoz: Mivel a podok külön alhálózattal rendelkeznek, külön virtuális hálózati házirendeket konfigurálhat hozzájuk, amelyek eltérnek a csomópontszabályzatoktól. Ez számos hasznos forgatókönyvet tesz lehetővé, például lehetővé teszi az internetkapcsolatot csak a podok és nem a csomópontok számára, a csomópontkészletek podjának forrás IP-címét egy Azure NAT-átjáró használatával, és NSG-k használatával szűri a csomópontkészletek közötti forgalmat.
  • 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-hálózatkezelést az IP-címek dinamikus lefoglalásához és az AKS továbbfejlesztett alhálózati támogatásához.

Előfeltételek

Feljegyzés

Ip-címek dinamikus lefoglalása esetén az alkalmazás privát kapcsolati szolgáltatásként való felfedése Kubernetes Load Balancer-szolgáltatással nem támogatott.

  • 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 Tároló Elemzések az IP-alhálózatok használatának figyeléséhez. A tároló Elemzések a következő példában látható módon engedélyezheti a az aks enable-addons parancs használatával:

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

IP-címkezelés tervezé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 fürt/csomópontkészlet rendszer podjai ip-címeket is kapnak a pod alhálózatáról, ezért ezt a viselkedést figyelembe kell venni.

Az IP-címek 16-os kötegekben vannak lefoglalva a csomópontokhoz. A pod alhálózati IP-lefoglalását csomópontonként legalább 16 IP-címmel kell megtervezni a fürtben; a csomópontok indításkor 16 IP-címet kérnek, és egy újabb, 16-os köteget kérnek, amikor <8 IP-cím nincs felszabadítva a kiosztásukban.

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

Csomópontonkénti podok maximális száma egy fürtben ip-címek dinamikus lefoglalásával és továbbfejlesztett alhálózati támogatással

A csomópontonkénti podok az Azure CNI dinamikus IP-címek kiosztásával történő használatakor kissé eltérnek a hagyományos CNI-viselkedéstől:

CNI Alapértelmezett Üzembe helyezéskor konfigurálható
Hagyományos Azure CNI 30 Igen (legfeljebb 250)
Azure CNI ip-címek dinamikus kiosztásával 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 hivatkozik.
  • 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.

Hálózatkezelés konfigurálása IP-címek dinamikus kiosztásával és továbbfejlesztett alhálózati támogatással – Azure CLI

Az IP-címek dinamikus lefoglalásának és a fürtben a bővített alhálózati támogatásnak a használata 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 csomópontok alhálózatával és podok alhálózatával, és hogyan hozhat létre olyan fürtöt, amely az Azure CNI-t használja dinamikus IP-címek kiosztásával és továbbfejlesztett alhálózati támogatással. Mindenképpen cserélje le a változókat, például $subscription a saját értékeit.

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 a használatával és a pod alhálózatával a monitorozási bővítmény használatával --pod-subnet-id és engedélyezésével.

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

Csomópontkészlet hozzáadása

Csomópontkészlet hozzáadásakor hivatkozzon a csomópont alhálózatára a használatával --vnet-subnet-id , és használja a pod alhálózatát --pod-subnet-id. 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 üdvözölje a container-azm-ms-agentconfig.yaml nevű fájlt a GitHubról.

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

  3. Mentse a fájlt.

AKS-beli hitelesítő adatok beszerzé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 a letöltött container-azm-ms-agentconfig.yaml fájl mentésével.

  2. Először alkalmazza a konfigurációt a következő paranccsal: kubectl apply -f container-azm-ms-agentconfig.yaml

  3. Ez újraindítja a podot, és 5–10 perc elteltével a metrikák láthatók lesznek.

  4. A fürt metrikáinak megtekintéséhez nyissa meg az Azure Portal fürtoldalán található munkafüzeteket, és keresse meg az "Alhálózat IP-használata" nevű munkafüzetet. A nézet a következőhöz hasonlóan fog kinézni:

    A diagram of the Azure portal's workbook blade is shown, and metrics for an AKS cluster's subnet IP usage are displayed.

Az IP-címek dinamikus lefoglalása és a továbbfejlesztett alhálózat támogatja a gyakori kérdéseket

  • Hozzárendelhetek több pod-alhálózatot egy fürthöz/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ópontkészlet is megoszthat egyetlen alhálózatot.

  • Rendelhetek pod-alhálózatokat egy másik virtuális hálózathoz?

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

  • 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: