Az Azure CNI-hálózatkezelés konfigurálása CIDR-blokkok statikus lefoglalásához és továbbfejlesztett alhálózati támogatáshoz az Azure Kubernetes Service-ben (AKS) – (előzetes verzió)
Az Azure CNI dinamikus IP-foglalásának korlátozása a pod alhálózatának méretezhetősége a /16 alhálózaton túl. Nagy alhálózat esetén is előfordulhat, hogy a nagy fürtök 65 ezer podra korlátozódnak az Azure-címleképezési korlát miatt. Az Azure CNI új statikus blokklefoglalási képessége úgy oldja meg ezt a problémát, hogy CIDR-blokkokat rendel a csomópontokhoz az 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 alapján történő útválasztást, és segít a fürtkorlát skálázásában a hagyományos 65K podok fürtnkénti 1 millió podjára. Az Azure-beli virtuális hálózatnak elég nagynak kell lennie ahhoz, hogy elférjen a fürt mérete.
- 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 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 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 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.
- 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-hálózatkezelést a CIDR-ek statikus lefoglalásához és az AKS továbbfejlesztett alhálózati támogatásához.
Előfeltételek
Feljegyzés
A CIDR-ek statikus blokklefoglalá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ó a 2.0.0b2-es vagy újabb verzió aks-előzetes verziójávalHa 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:Regisztrálja előfizetése előfizetési szintű funkciójelzőjét: "Microsoft.ContainerService/AzureVnetScalePreview"
az aks enable-addons --addons monitoring --name <cluster-name> --resource-group <resource-group-name>
Korlátozások
Az alábbiakban néhány korlátozást talál az Azure CNI statikus blokkok lefoglalásának 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
- A Windows-csomópontkészletek nem támogatottak (a Windows-támogatás hamarosan elérhető)
- Nem támogatott a Cilium adatsík (a támogatás hamarosan elérhető)
- 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ód 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 az értéket kiválasztó
--max-pods
hálózati rendszergazdák az alábbi számítással próbálják a legjobban kiszolgálni az igényeket, és optimálisan haszná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
Régiónkénti elérhetőség
Ez a funkció a következő régiókban nem érhető el:
- USA déli régiója
- USA 2. keleti régiója
- USA nyugati régiója
- USA 2. nyugati régiója
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 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.
Ebben a forgatókönyvben a /28-ból (16 IP-címből) álló CIDR-blokkok a csomópontkészlet "-max-pod" 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.
Így az IP-címek meghatározása és tervezése során elengedhetetlen a "--max-pods" konfiguráció meghatározása, és az alábbiak szerint lehet a legjobban 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-wastage per node = 31 – 30 = 1 [Alacsony wastage – Elfogadható eset]2. példa: max_pods = 31, csomópontonként lefoglalt CIDR-blokkok = 2, podok számára elérhető összes IP-cím = (16 * 2) – 1 = 32 – 1 = 31, IP-címelsőség 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-wastage 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.
Feljegyzés
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 szolgáló üzembehelyezési paraméterekmind érvényesek, két kivétellel:
- A virtuális hálózat alhálózat-azonosító paramétere most a fürt csomópontjaihoz kapcsolódó alhálózatra hivatkozik.
- 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ódjának paramétere meghatározza, hogy dinamikus egyéni vagy statikus blokklefoglalást használjon-e.
Mielőtt elkezdené
- Ha az Azure CLI-t használja, szüksége lesz a bővítményre
aks-preview
. Lásd : Azaks-preview
Azure CLI-bővítmény telepítése. - Arm vagy REST API használata esetén az AKS API-verziónak 2024-01-02-es vagy újabb verziójúnak kell lennie.
Az aks-preview
Azure CLI-bővítmény telepítése
Telepítse a bővítményt
aks-preview
a [az extension add
][az-extension-add] paranccsal.az extension add --name aks-preview
Frissítsen a bővítmény legújabb verziójára az [
az extension update
][az-extension-update] paranccsal. A bővítménynek a "2.0..0b2" vagy újabb verzióval kell rendelkeznieaz extension update --name aks-preview
A funkciójelző regisztrálása AzureVnetScalePreview
Regisztrálja a
AzureVnetScalePreview
funkciójelzőt a [az feature register
][az-feature-register] paranccsal.az feature register --namespace "Microsoft.ContainerService" --name "AzureVnetScalePreview"
Néhány percig tart, amíg az állapot megjelenik a Regisztrált állapotban.
Ellenőrizze a regisztrációs állapotot az [
az feature show
][az-feature-show] paranccsal.az feature show --namespace "Microsoft.ContainerService" --name "AzureVnetScalePreview"
Ha az állapot a Regisztrált állapotot tükrözi, frissítse a Microsoft.ContainerService erőforrás-szolgáltató regisztrációját a [
az provider register
][az-provider-register] paranccsal.az provider register --namespace Microsoft.ContainerService
Hálózatkezelés konfigurálása CIDR-blokkok statikus lefoglalásával és továbbfejlesztett alhálózati támogatással – Azure CLI
A CIDR-blokkok statikus lefoglalásának használata a fürtben hasonló ahhoz az alapértelmezett módszerhez, amely az Azure CNI-fürtöt konfigurálja a dinamikus IP-kiosztáshoz. Az alábbi példa bemutatja, hogyan hozhat létre új virtuális hálózatot csomópontok alhálózatával és podokhoz tartozó alhálózattal, valamint létrehozhat egy olyan fürtöt, amely az Azure CNI-t használja a CIDR-blokkok statikus lefoglalásával. Mindenképpen cserélje le a változókat, például $subscription
az értékeket.
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, hivatkozva a csomópont alhálózatára a pod alhálózatának használatával--vnet-subnet-id
--pod-subnet-id
, az --pod-ip-allocation-mode
IP-foglalási mód meghatározásához, és engedélyezze a monitorozási 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 \
--kubernetes-version 1.28
Csomópontkészlet hozzáadása
Csomópontkészlet hozzáadásakor hivatkozzon a csomópont alhálózatára a "--pod-ip-allocation-mode" használatával --vnet-subnet-id
, a pod alhálózata és --pod-subnet-id
a foglalási mód 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
A CIDR-blokkok és a továbbfejlesztett alhálózatok statikus lefoglalása támogatja a gyakori kérdéseket
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 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álhatják a fürt egyes csomópontkészleteinek dinamikus IP-lefoglalását, míg mások az új statikus blokkok lefoglalását?
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: