Az Azure CNI hálózatkezelése az Azure Kubernetes Service-ben (AKS) – áttekintés

Az AKS-fürtök alapértelmezés szerint kubenetet használnak, és létrehoznak egy virtuális hálózatot és alhálózatot. A Kubenet használatával a csomópontok ip-címet kapnak egy virtuális hálózati alhálózatról. A hálózati címfordítás (NAT) ezután konfigurálva lesz a csomópontokon, és a podok "rejtett" IP-címet kapnak a csomópont IP-címe mögött. Ez a módszer csökkenti a podok használatához szükséges ip-címek számát a hálózati térben.

Az Azure Container Networking Interface (CNI) használatával minden pod egy IP-címet kap az alhálózatról, és közvetlenül elérhető. Az AKS-fürttel azonos virtuális hálózaton futó rendszerek a pod felől érkező bármilyen forgalom forráscímeként a pod IP-címét látják. Az AKS-fürt virtuális hálózatán kívüli rendszerek a csomópont IP-címét látják a podról érkező forgalom forráscímeként. Ezeknek az IP-címeknek egyedinek kell lenniük a hálózati térben, és előre meg kell tervezni. Minden csomópont rendelkezik egy konfigurációs paraméterrel a támogatott podok maximális számához. A csomópontonkénti IP-címek egyenértékű száma ezután előre lefoglalva lesz az adott csomópont számára. Ez a megközelítés több tervezést igényel, és gyakran az IP-címek kimerüléséhez vagy a fürtök nagyobb alhálózatban való újraépítéséhez vezet az alkalmazás igényeinek növekedésével.

Feljegyzés

Ez a cikk csak a hagyományos Azure CNI-t mutatja be. Az Azure CNI Overlay, a dinamikus IP-kiosztáshoz használható Azure CNI virtuális hálózat és az Azure CNI virtuális hálózat – Statikus blokkok lefoglalása (előzetes verzió) esetében. Kérjük, tekintse meg inkább a dokumentációjukat.

Előfeltételek

  • Az AKS-fürt virtuális hálózatának engedélyeznie kell a kimenő internetkapcsolatot.

  • Az AKS-fürtök nem használhatják 169.254.0.0/16172.30.0.0/16172.31.0.0/16192.0.2.0/24 a Kubernetes szolgáltatás címtartományát, podcímtartományát vagy fürt virtuális hálózati címtartományát.

  • Az AKS-fürt által használt fürtidentitásnak legalább hálózati közreműködői engedélyekkel kell rendelkeznie a virtuális hálózaton belüli alhálózaton. Ha a beépített hálózati közreműködői szerepkör használata helyett egyéni szerepkört szeretne definiálni, a következő engedélyekre van szükség:

    • Microsoft.Network/virtualNetworks/subnets/join/action

    • Microsoft.Network/virtualNetworks/subnets/read

    • Microsoft.Authorization/roleAssignments/write

  • Az AKS-csomópontkészlethez rendelt alhálózat nem lehet delegált alhálózat.

  • Az AKS nem alkalmazza a hálózati biztonsági csoportokat (NSG-ket) az alhálózatára, és nem módosítja az alhálózathoz társított NSG-k egyikét sem. Ha saját alhálózatot ad meg, és hozzáadja az alhálózathoz társított NSG-ket, győződjön meg arról, hogy az NSG-k biztonsági szabályai engedélyezik a forgalmat a csomópont CIDR-tartományán belül. További információ: Hálózati biztonsági csoportok.

A fürt IP-címzésének megtervezése

Az Azure CNI hálózatkezeléssel konfigurált fürtök további tervezést igényelnek. A virtuális hálózat és alhálózata méretének tartalmaznia kell a futtatni kívánt podok számát és a fürt csomópontjainak számát.

A podokhoz és a fürt csomópontjaihoz tartozó IP-címek a virtuális hálózaton belül a megadott alhálózatról vannak hozzárendelve. Minden csomópont elsődleges IP-címmel van konfigurálva. Az Azure CNI alapértelmezés szerint 30 további IP-címet konfigurál. Ezek az IP-címek a csomóponton ütemezett podokhoz vannak rendelve. A fürt vertikális felskálázásakor minden csomóponthoz hasonlóképpen lesz konfigurálva egy IP-cím az alhálózatról. A csomópontonkénti podok maximális számát is megtekintheti.

Fontos

A szükséges IP-címek számának tartalmaznia kell a frissítési és skálázási műveletek szempontjait. Ha úgy állítja be az IP-címtartományt, hogy csak rögzített számú csomópontot támogatjon, nem frissítheti vagy skálázhatja a fürtöt.

  • Az AKS-fürt frissítésekor egy új csomópont lesz üzembe helyezve a fürtben. A szolgáltatások és a számítási feladatok elkezdenek futni az új csomóponton, és a rendszer eltávolít egy régebbi csomópontot a fürtből. A működés közbeni frissítési folyamathoz legalább egy további IP-címblokk szükséges. Ekkor a csomópontok száma .n + 1

    • Ez a szempont különösen fontos a Windows Server-csomópontkészletek használatakor. Az AKS-ben a Windows Server-csomópontok nem alkalmazzák automatikusan a Windows Frissítések. Ehelyett egy frissítést hajt végre a csomópontkészleten. Ez a frissítés új csomópontokat helyez üzembe a Windows Server 2019 legújabb alapcsomópont-lemezképével és biztonsági javításaival. A Windows Server-csomópontkészlet frissítésével kapcsolatos további információkért lásd: Csomópontkészlet frissítése az AKS-ben.
  • Az AKS-fürtök méretezésekor egy új csomópont lesz üzembe helyezve a fürtben. A szolgáltatások és a számítási feladatok elkezdenek futni az új csomóponton. Az IP-címtartománynak figyelembe kell vennie, hogy a fürt által támogatott csomópontok és podok számának vertikális felskálázása hogyan lehetséges. Egy további csomópontot is fel kell venni a frissítési műveletekhez. Ekkor a csomópontok száma .n + number-of-additional-scaled-nodes-you-anticipate + 1

Ha arra számít, hogy a csomópontok a podok maximális számát futtatják, és rendszeresen megsemmisítik és üzembe helyezik a podokat, akkor csomópontonként néhány további IP-címet is figyelembe kell adnia. Néhány másodpercre lehet szükség egy szolgáltatás törléséhez és az IP-cím felszabadításához egy új szolgáltatás üzembe helyezéséhez és a cím beszerzéséhez. Ezek a további IP-címek ezt a lehetőséget veszik figyelembe.

Az AKS-fürtök IP-címcsomagja egy virtuális hálózatból, a csomópontok és podok legalább egy alhálózatából és egy Kubernetes-szolgáltatás címtartományából áll.

Címtartomány / Azure-erőforrás Korlátok és méretezés
Virtuális hálózat Az Azure-beli virtuális hálózat akár a /8-as méretű is lehet, de legfeljebb 65 536 konfigurált IP-cím lehet. A címtér konfigurálása előtt vegye figyelembe az összes hálózati igényt, beleértve a más virtuális hálózatok szolgáltatásaival való kommunikációt is. Ha például túl nagy címteret konfigurál, problémákat tapasztalhat a hálózat többi címterének átfedésével kapcsolatban.
Alhálózat Elég nagynak kell lennie ahhoz, hogy elférjenek a fürtben üzembe helyezhető csomópontok, podok, valamint az összes Kubernetes- és Azure-erőforrás. Ha például belső Azure Load Balancert helyez üzembe, az előtérbeli IP-címek lefoglalása nem a nyilvános IP-címekből, hanem a fürt alhálózatából történik. Az alhálózat méretének meghatározásakor figyelembe kell venni a frissítési műveleteket és a jövőbeli skálázási igényeket is.

A következő egyenlet segítségével kiszámíthatja az alhálózat minimális méretét, beleértve egy további csomópontot a frissítési műveletekhez:

(number of nodes + 1) + ((number of nodes + 1) * maximum pods per node that you configure) Példa 50 csomópontfürtre: (51) + (51 * 30 (default)) = 1,581 (/21 vagy nagyobb)

Példa egy 50 csomópontos fürtre, amely további 10 csomópont felskálázására is alkalmas: (61) + (61 * 30 (default)) = 1,891 (/21 vagy nagyobb)

Ha nem adja meg csomópontonként a podok maximális számát a fürt létrehozásakor, a csomópontonkénti podok maximális száma 30 lesz. A szükséges IP-címek minimális száma ettől az értéktől függ. Ha a minimális IP-címkövetelményeket egy másik maximális értékre számítja ki, tekintse meg a csomópontonkénti podok maximális számát, amely ezt az értéket állítja be a fürt üzembe helyezésekor.

A Kubernetes Service címtartománya A virtuális hálózatban lévő vagy ahhoz csatlakoztatott hálózati elemek nem használhatják ezt a tartományt. A CIDR szolgáltatáscímnek a /12-nél kisebbnek kell lennie. Ezt a tartományt több AKS-fürtben is felhasználhatja.
A Kubernetes DNS-szolgáltatás IP-címe A fürtszolgáltatás felderítése által használt Kubernetes-szolgáltatás címtartományán belüli IP-cím. Ne használja az első IP-címet a címtartományban. Az alhálózattartomány első címe a kubernetes.default.svc.cluster.local címhez használatos.

Podok maximális száma csomópontonként

Az AKS-fürtök csomópontonkénti podjainak maximális száma 250. A csomópontonkénti podok alapértelmezett maximális száma a kubenet és az Azure CNI hálózatkezelése, valamint a fürt üzembe helyezésének módja között változik.

Üzembe helyezési módszer Kubenet alapértelmezett Az Azure CNI alapértelmezett beállítása Üzembe helyezéskor konfigurálható
Azure CLI 110 30 Igen (legfeljebb 250)
Resource Manager-sablon 110 30 Igen (legfeljebb 250)
Portál 110 110 (a Csomópontkészletek lapon konfigurálható) Igen (legfeljebb 250)

Csomópontonkénti maximális podok konfigurálása új fürtökhöz

A podok csomópontonkénti maximális számát a fürt üzembe helyezésekor vagy új csomópontkészletek hozzáadásakor konfigurálhatja. A csomópontonkénti podok maximális értéke 250 lehet.

Ha nem ad meg maxPodsot az új csomópontkészletek létrehozásakor, az Azure CNI alapértelmezett értéke 30 lesz.

A fürt állapota szempontjából kritikus rendszer podok számára minimális érték van érvényben a csomópontonkénti maximális podok számára. A maximális podok csomópontonkénti beállításának minimális értéke 10, ha és csak akkor, ha az egyes csomópontkészletek konfigurációja legalább 30 pod számára biztosít helyet. Ha például a csomópontonkénti podok maximális számát legalább 10-re állítja, minden egyes csomópontkészletnek legalább három csomópontból kell rendelkeznie. Ez a követelmény minden létrehozott új csomópontkészletre is vonatkozik, így ha csomópontonként 10 van megadva maximális podként, minden további csomópontkészletnek legalább három csomópontot kell tartalmaznia.

Hálózatkezelés Minimum Maximum
Azure CNI 10 250
Kubenet 10 250

Feljegyzés

Az előző táblázatban szereplő minimális értéket az AKS szolgáltatás szigorúan kikényszeríti. Nem állíthat be olyan értéket a maxPodshoz, amely alacsonyabb, mint a minimálisan látható érték, mivel így megakadályozhatja a fürt indítását.

  • Azure CLI: Adja meg az --max-pods argumentumot, amikor fürtöt helyez üzembe az az aks create paranccsal. A maximális érték 250.
  • Resource Manager-sablon: Adja meg a maxPods tulajdonságot a ManagedClusterAgentPoolProfile objektumban, amikor Resource Manager-sablonnal rendelkező fürtöt helyez üzembe. A maximális érték 250.
  • Azure Portal: Fürt létrehozásakor vagy új csomópontkészlet hozzáadásakor módosítsa a Max pods per node csomópontkészlet beállításainak mezőjét.

Meglévő fürtök maximális podjának konfigurálása csomópontonként

Új csomópontkészlet létrehozásakor meg lehet határozni a csomópontonkénti maximálispod-beállításokat . Ha növelnie kell a maxPods beállítást egy meglévő fürtön, adjon hozzá egy új csomópontkészletet az új kívánt maxPods-számmal . Miután migrálta a podokat az új készletbe, törölje a régebbi készletet. A fürt régebbi készleteinek törléséhez győződjön meg arról, hogy a csomópontkészlet-üzemmódokat a rendszercsomópontkészletek dokumentumában meghatározott módon állítja be.

Üzembehelyezési paraméterek

AKS-fürt létrehozásakor az alábbi paraméterek konfigurálhatók az Azure CNI hálózatkezeléséhez:

Virtuális hálózat: Az a virtuális hálózat, amelyben telepíteni szeretné a Kubernetes-fürtöt. Ha új virtuális hálózatot szeretne létrehozni a fürthöz, válassza az Új létrehozása lehetőséget, és kövesse a Virtuális hálózat létrehozása szakasz lépéseit. Ha ki szeretne választani egy meglévő virtuális hálózatot, győződjön meg arról, hogy az ugyanabban a helyen és Azure-előfizetésben van, mint a Kubernetes-fürt. Az Azure-beli virtuális hálózatok korlátaival és kvótáival kapcsolatos információkért tekintse meg az Azure-előfizetések és -szolgáltatások korlátait, kvótáit és korlátozásait.

Alhálózat: A virtuális hálózat azon alhálózata, ahol telepíteni szeretné a fürtöt. Ha új alhálózatot szeretne létrehozni a fürt virtuális hálózatában, válassza az Új létrehozása lehetőséget, és kövesse az alhálózat létrehozása szakasz lépéseit . Hibrid kapcsolat esetén a címtartománynak nem szabad átfedésben lennie a környezet többi virtuális hálózatával.

Azure Hálózati beépülő modul: Az Azure hálózati beépülő modul használata esetén a belső LoadBalancer szolgáltatás a "externalTrafficPolicy=Local" használatával nem érhető el olyan virtuális gépekről, amelyek IP-címmel rendelkeznek a clusterCIDR-ben, amely nem tartozik az AKS-fürthöz.

Kubernetes-szolgáltatás címtartománya: Ez a paraméter azoknak a virtuális IP-címeknek a készlete, amelyeket a Kubernetes hozzárendel a fürt belső szolgáltatásaihoz . Ez a tartomány nem frissíthető a fürt létrehozása után. Bármilyen olyan magáncímtartományt használhat, amely megfelel az alábbi követelményeknek:

  • Nem lehet a fürt virtuális hálózati IP-címtartományában
  • Nem lehet átfedésben más olyan virtuális hálózatokkal, amelyekkel a fürt virtuális hálózati társhálózatai
  • Nem lehetnek átfedésben a helyszíni IP-címekkel
  • Nem lehet a tartományon 169.254.0.0/16belül, 172.30.0.0/16vagy 172.31.0.0/16192.0.2.0/24

Bár technikailag lehetséges egy szolgáltatáscímtartomány megadása ugyanazon a virtuális hálózaton belül, mint a fürt, ez nem ajánlott. Kiszámíthatatlan viselkedés akkor fordulhat elő, ha átfedésben lévő IP-tartományokat használ. További információkért tekintse meg a cikk GYIK szakaszát. További információ a Kubernetes-szolgáltatásokról: Szolgáltatások a Kubernetes dokumentációjában.

Kubernetes DNS-szolgáltatás IP-címe: A fürt DNS-szolgáltatásának IP-címe. A címnek a Kubernetes szolgáltatási címtartományába kell tartoznia. Ne használja az első IP-címet a címtartományban. Az alhálózattartomány első címe a kubernetes.default.svc.cluster.local címhez használatos.

Gyakori kérdések

  • Üzembe helyezhetek virtuális gépeket a fürt alhálózatán?

    Igen. A dinamikus IP-kiosztáshoz használt Azure CNI esetében azonban a virtuális gépek nem helyezhetők üzembe a pod alhálózatán.

  • Milyen forrás IP-címet látnak a külső rendszerek az Azure CNI-kompatibilis podból származó forgalomhoz?

    Az AKS-fürttel azonos virtuális hálózaton futó rendszerek a pod felől érkező bármilyen forgalom forráscímeként a pod IP-címét látják. Az AKS-fürt virtuális hálózatán kívüli rendszerek a csomópont IP-címét látják a podról érkező forgalom forráscímeként.

    A dinamikus IP-kiosztáshoz használt Azure CNI esetében azonban nem számít, hogy a kapcsolat ugyanazon a virtuális hálózaton belül van vagy virtuális hálózatok közötti, a pod IP-címe mindig a podról érkező forgalom forráscíme. Ennek az az oka, hogy a dinamikus IP-foglaláshoz készült Azure CNI implementálja a Microsoft Azure Container Networking infrastruktúrát, amely a végpontok közötti élményt nyújtja. Ezért megszünteti a hagyományos Azure CNI által még mindig használt használatot ip-masq-agent.

  • Konfigurálhatok podonkénti hálózati házirendeket?

    Igen, a Kubernetes hálózati szabályzata elérhető az AKS-ben. Első lépésként tekintse meg a podok közötti adatforgalom biztonságossá tételét az AKS hálózati szabályzatainak használatával.

  • Konfigurálható a csomópontokon üzembe helyezhető podok maximális száma?

    Igen, amikor üzembe helyez egy fürtöt az Azure CLI-vel vagy egy Resource Manager-sablonnal. Lásd: Csomópontonkénti podok maximális száma.

    Egy meglévő fürt csomópontonkénti podjainak maximális száma nem módosítható.

  • Hogyan konfigurálja az AKS-fürt létrehozása során létrehozott alhálózat további tulajdonságait? Például szolgáltatásvégpontok.

    Az AKS-fürt létrehozása során létrehozott virtuális hálózat és alhálózatok tulajdonságainak teljes listája konfigurálható az Azure Portal szabványos virtuális hálózati konfigurációs lapján.

  • Használhatok másik alhálózatot a fürt virtuális hálózatán belül a Kubernetes szolgáltatás címtartományához?

    Ez nem ajánlott, de ez a konfiguráció lehetséges. A szolgáltatáscímtartomány virtuális IP-címek (VIP-k) készlete, amelyeket a Kubernetes hozzárendel a fürt belső szolgáltatásaihoz. Az Azure Networking nem rendelkezik a Kubernetes-fürt szolgáltatás IP-tartományával. A fürt szolgáltatáscímtartományának láthatóságának hiánya problémákhoz vezethet. Később létrehozhat egy új alhálózatot a fürt virtuális hálózatában, amely átfedésben van a szolgáltatás címtartományával. Ilyen átfedés esetén a Kubernetes olyan IP-címet rendelhet a szolgáltatáshoz, amelyet az alhálózat egy másik erőforrása már használ, ami kiszámíthatatlan viselkedést vagy hibákat okoz. Ha biztosítja, hogy a fürt virtuális hálózatán kívüli címtartományt használjon, elkerülheti ezt az átfedési kockázatot.

Következő lépés

További információ az AKS hálózatkezeléséről az alábbi cikkekben: