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/16
172.30.0.0/16
172.31.0.0/16
192.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:
Példa egy 50 csomópontos fürtre, amely további 10 csomópont felskálázására is alkalmas: 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/16
belül,172.30.0.0/16
vagy172.31.0.0/16
192.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: