Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az Azure CNI Pod-alhálózat – dinamikus IP-kiosztás egyik korlátozása a pod alhálózat /16 alhálózaton túli méretezhetősége. Nagy méretű alhálózat esetén is előfordulhat, hogy a nagy fürtök 65 000 podra korlátozódnak az Azure címleképezési korlát miatt. A Pod alhálózat – Statikus blokkok lefoglalása az Azure CNI-ben úgy oldja meg ezt a problémát, hogy CIDR-blokkokat rendel a csomópontokhoz egyéni IP-címek helyett.
A következő előnyöket nyújtja:
- Jobb IP-méretezhetőség: A CIDR-blokkok statikusan vannak lefoglalva a fürtcsomópontokhoz, és a csomópont teljes élettartama alatt jelen vannak, szemben a hagyományos CNI-vel rendelkező egyedi IP-címek hagyományos dinamikus lefoglalásával. Ez lehetővé teszi a CIDR-blokkok szerinti útválasztást, és segít a klaszter-korlát átskálázásában a hagyományos 65 ezer podos határról akár 1 millió podra klaszterenként. Az Azure-beli virtuális hálózatnak elég nagynak kell lennie ahhoz, hogy befogadhassa a klaszter méretét.
- Rugalmasság: A csomópont- és pod-alhálózatok egymástól függetlenül méretezhető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 kapcsolattal rendelkeznek a virtuális hálózat más fürt podjaihoz és erőforrásaihoz.
- 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 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.
- A Kubernetes hálózati szabályzatai: A Cilium, az Azure NPM és a Calico együttműködik ezzel az új megoldással.
Ez a cikk bemutatja, hogyan használhatja az Azure CNI Pod-alhálózatot – Statikus blokkok lefoglalása és továbbfejlesztett alhálózati támogatás az AKS-ben.
Prerequisites
Note
Pod-alhálózat – Statikus blokklefoglalás használata 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.75.0vagy újabbHa 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-addonsparancs 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>
Limitations
Az alábbiakban bemutatunk néhány korlátozást az Azure CNI pod-alhálózat – Statikus blokkok kiosztása használatára:
- Minimális Kubernetes-verzió szükséges: 1.28
- A támogatott alhálózatok maximális mérete x.x.x.x/12 ~ 1 millió IP-cím
- Alhálózatonként csak egyetlen üzemmód használható. Ha egy alhálózat statikus blokklefoglalási módot használ, nem használhat dinamikus IP-foglalási módot egy másik fürtben vagy csomópontkészletben ugyanazzal az alhálózattal, és fordítva.
- Csak új fürtökben támogatott, vagy ha egy másik alhálózattal rendelkező csomópontkészleteket ad hozzá a meglévő fürtökhöz. A meglévő fürtök vagy csomópontkészletek áttelepítése vagy frissítése nem támogatott.
- A csomópontkészlet egy csomóponthoz hozzárendelt összes CIDR-blokkban a rendszer egy IP-címet választ ki a csomópont elsődleges IP-címeként. Így a hálózati rendszergazdák, amikor kiválasztják a
--max-podsértéket, használják az alábbi számítást, hogy a lehető legjobban kielégítsék igényeiket és optimálisan kihasználják az IP-címeket az alhálózatban.
max_pods=(N * 16) - 1
ahol N bármilyen pozitív egész szám és N > 0
IP-címkezelés tervezése
Az IP-címzés tervezése rugalmasabb és részletesebb. 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.
Ebben a forgatókönyvben a /28-ból (16 IP-címből) álló CIDR-blokkok a csomópontkészlet "--max-pods" konfigurációja alapján vannak lefoglalva a csomópontokhoz, amely meghatározza a csomópontonkénti podok maximális számát. Minden csomóponton 1 IP-cím van fenntartva az adott csomóponton található összes rendelkezésre álló IP-címből belső célokra.
Ezért az IP-címek meghatározása és tervezése során elengedhetetlen a "--max-pods" konfiguráció pontos meghatározása, amelyet az alábbiak szerint lehet a leghatékonyabban kiszámítani:
max_pods_per_node = (16 * N) - 1 ahol N a 0-nál nagyobb pozitív egész szám
Az IP-címhasználat nélküli ideális értékek esetében a podok maximális értékének meg kell felelnie a fenti kifejezésnek.
- 1. példa: max_pods = 30, csomópontonként lefoglalt CIDR-blokkok = 2, podokhoz elérhető összes IP-cím = (16 * 2) - 1 = 32 - 1 = 31, IP-címeltágítás csomópontonként = 31 - 30 = 1 [Alacsony wastage - Elfogadható eset]
- 2. példa: max_pods = 31, csomópontonként lefoglalt CIDR-blokkok = 2, podokhoz elérhető összes IP-cím = (16 * 2) - 1 = 32 - 1 = 31, IP-címeltágítás csomópontonként = 31 – 31 = 0 [Ideális eset]
- 3. példa: max_pods = 32, csomópontonként lefoglalt CIDR-blokkok = 3, podokhoz elérhető összes IP-cím = (16 * 3) - 1 = 48 - 1 = 47, IP-címeltágítás csomópontonként = 47 - 32 = 15 [Magas wastage - Nem ajánlott eset]
A Kubernetes-szolgáltatások IP-címeinek tervezése változatlan marad.
Note
Győződjön meg arról, hogy a virtuális hálózat elég nagy és összefüggő címtérrel rendelkezik a fürt méretezésének támogatásához.
Üzembehelyezési paraméterek
Az Azure CNI alapszintű hálózatkezelésének AKS-ben való konfigurálására vonatkozó üzembehelyezési paraméterek kivételekkel érvényesek:
- A virtuális hálózat alhálózat-azonosító paramétere most arra az alhálózatra hivatkozik, amely a fürt csomópontjaival kapcsolatos.
- A pod alhálózat-azonosítójának paramétere annak az alhálózatnak a megadására szolgál, amelynek IP-címe statikusan vagy dinamikusan lesz lefoglalva a csomópontkészlet podjaihoz.
- A pod IP-kiosztási mód paramétere határozza meg, hogy használni
DynamicIndividualszeretné-e a (dinamikus IP-foglalás) vagyStaticBlocka (statikus blokkok lefoglalása) módban.
Hálózatkezelés konfigurálása CIDR-blokkok statikus lefoglalásával és továbbfejlesztett alhálózati támogatással – Azure CLI
Pod alhálózat használata – Statikus blokklefoglalás a fürtben hasonló a Pod alhálózattal rendelkező fürt konfigurálásának alapértelmezett módszeréhez – Dinamikus IP-foglalás. 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 egy Azure CNI pod-alhálózatot használó fürtöt – statikus blokklefoglalást. Mindenképpen cserélje le a változókat, például $subscription, a saját értékeire.
Hozza létre a virtuális hálózatot két alhálózattal.
resourceGroup="myResourceGroup"
vnet="myVirtualNetwork"
location="myRegion"
# Create the resource group
az group create --name $resourceGroup --location $location
# Create our two subnet network
az network vnet create --resource-group $resourceGroup --location $location --name $vnet --address-prefixes 10.0.0.0/8 -o none
az network vnet subnet create --resource-group $resourceGroup --vnet-name $vnet --name nodesubnet --address-prefixes 10.240.0.0/16 -o none
az network vnet subnet create --resource-group $resourceGroup --vnet-name $vnet --name podsubnet --address-prefixes 10.40.0.0/13 -o none
Hozza létre a fürtöt, a --vnet-subnet-id használatával hivatkozzon a csomópont alhálózatára, a --pod-subnet-id használatával a pod alhálózatára, az --pod-ip-allocation-mode segítségével határozza meg az IP-foglalási módot, és engedélyezze a felügyeleti bővítményt.
clusterName="myAKSCluster"
subscription="aaaaaaa-aaaaa-aaaaaa-aaaa"
az aks create \
--name $clusterName \
--resource-group $resourceGroup \
--location $location \
--max-pods 250 \
--node-count 2 \
--network-plugin azure \
--pod-ip-allocation-mode StaticBlock \
--vnet-subnet-id /subscriptions/$subscription/resourceGroups/$resourceGroup/providers/Microsoft.Network/virtualNetworks/$vnet/subnets/nodesubnet \
--pod-subnet-id /subscriptions/$subscription/resourceGroups/$resourceGroup/providers/Microsoft.Network/virtualNetworks/$vnet/subnets/podsubnet \
--enable-addons monitoring \
--generate-ssh-keys
Csomópontkészlet hozzáadása
Csomópontkészlet hozzáadásakor hivatkozzon a csomópont alhálózatára a --vnet-subnet-id használatával, a pod alhálózatára a --pod-subnet-id használatával, és a foglalási módra a '--pod-ip-allocation-mode' használatával. 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:
az network vnet subnet create -g $resourceGroup --vnet-name $vnet --name node2subnet --address-prefixes 10.242.0.0/16 -o none
az network vnet subnet create -g $resourceGroup --vnet-name $vnet --name pod2subnet --address-prefixes 10.243.0.0/16 -o none
az aks nodepool add --cluster-name $clusterName -g $resourceGroup -n newnodepool \
--max-pods 250 \
--node-count 2 \
--vnet-subnet-id /subscriptions/$subscription/resourceGroups/$resourceGroup/providers/Microsoft.Network/virtualNetworks/$vnet/subnets/node2subnet \
--pod-subnet-id /subscriptions/$subscription/resourceGroups/$resourceGroup/providers/Microsoft.Network/virtualNetworks/$vnet/subnets/pod2subnet \
--pod-ip-allocation-mode StaticBlock \
--no-wait
Migrálás pod-alhálózatról – Dinamikus IP-kiosztás pod-alhálózatra – Statikus blokkok kiosztása
Ha egy meglévő AKS-fürt dinamikus IP-kiosztást használ a pod alhálózatban, és Pod alhálózatra - Statikus blokkalapú kiosztásra szeretne átállni, kövesse az alábbi lépéseket:
A költöztetés lépései
Új alhálózat tervezése statikus blokkügynök-készletekhez
- Hozzon létre egy új alhálózatot a meglévő virtuális hálózatban, amely a Statikus blokk módhoz lesz dedikált
- Győződjön meg arról, hogy az alhálózat mérete megfelel a Terv IP-címzés szakaszában ismertetett tervezési irányelveknek
Ügynökpool hozzáadása a meglévő fürthöz Statikus Blokk móddal és az új alhálózattal
- Új csomópontkészlet létrehozása statikus blokklefoglalással a
az aks nodepool addparanccsal - Hivatkozzon az új alhálózatra
--pod-subnet-idhasználatával, és állítsa be--pod-ip-allocation-modeértéketStaticBlockértékre.
- Új csomópontkészlet létrehozása statikus blokklefoglalással a
Állítsa le a meglévő ügynökkészletet, hogy az összes üzembe helyezés és forgalom áttérjen az új ügynökkészletre
- Az
kubectl cordonhasználatával jelölje meg a meglévő csomópontokat ütemezhetetlenként. - A számítási feladatok fokozatos ürítése a régi csomópontkészletből az új Statikus blokk csomópontkészletbe
- Az
Miután az összes számítási feladat átkerült az új ügynökkészletre, törölje a meglévő nem statikus blokk ügynökkészletet
- Ellenőrizze, hogy az összes számítási feladat sikeresen fut-e az új csomópontkészleten
- A régi csomópontkészlet eltávolítása a következővel:
az aks nodepool delete
Important
A migrálás gondos tervezést és tesztelést igényel. A meglévő csomópontok kordonozása előtt győződjön meg arról, hogy megfelelő kapacitással rendelkezik az új csomópontkészletben. Először tesztelje a migrációs folyamatot egy nem éles környezetben.
CIDR-blokkok statikus allokációja és továbbfejlesztett alhálózati támogatás – Gyakran Ismételt Kérdések
Hozzárendelhetek több pod-alhálózatot egy fürthöz?
Egy fürthöz több alhálózat is hozzárendelhető, de mindegyik csomópontkészlethez csak egy alhálózat rendelhető hozzá. A különböző csomópontkészletek ugyanazon/különböző fürtön ugyanazt az alhálózatot használhatják.
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álhatnak dinamikus IP-foglalást a podalhálózati IP-címkezelést használó fürtök egyes csomópontkészleteiben, míg mások az új statikus blokkok lefoglalását használják?
Igen, a különböző csomópontkészletek különböző foglalási módokat használhatnak. Ha azonban egy alhálózatot egy foglalási módban használ, az csak ugyanabban a foglalási módban használható az összes társított csomópontkészletben.
Következő lépések
További információ az AKS hálózatkezeléséről az alábbi cikkekben: