Share via


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ával

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

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

  1. Telepítse a bővítményt aks-preview a [az extension add][az-extension-add] paranccsal.

    az extension add --name aks-preview
    
  2. 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 rendelkeznie

    az extension update --name aks-preview
    

A funkciójelző regisztrálása AzureVnetScalePreview

  1. 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.

  2. Ellenőrizze a regisztrációs állapotot az [az feature show][az-feature-show] paranccsal.

    az feature show --namespace "Microsoft.ContainerService" --name "AzureVnetScalePreview"
    
  3. 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: