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
Töltse le vagy üdvözölje a container-azm-ms-agentconfig.yaml nevű fájlt a GitHubról.
Keresés
azure_subnet_ip_usage
az integrációkban. Állítsa aenabled
elemettrue
értékre.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
Nyissa meg a terminált a letöltött container-azm-ms-agentconfig.yaml fájl mentésével.
Először alkalmazza a konfigurációt a következő paranccsal:
kubectl apply -f container-azm-ms-agentconfig.yaml
Ez újraindítja a podot, és 5–10 perc elteltével a metrikák láthatók lesznek.
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:
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: