Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tradiční rozhraní Azure Container Networking Interface (CNI) přiřadí IP adresu sítě VNet ke každému podu. Přiřadí tuto IP adresu z předem rezervované sady IP adres na každém uzlu nebo ze samostatné podsítě vyhrazené pro pody. Tento přístup vyžaduje plánování IP adres a může vést k vyčerpání adres, což způsobuje potíže se škálováním clusterů s rostoucími požadavky vaší aplikace.
V případě překrytí Azure CNI se uzly clusteru nasadí do podsítě virtuální sítě Azure. Pody se přiřazují IP adresy z privátní CIDR logicky oddělené od virtuální sítě hostující uzly. Provoz podů a uzlů v rámci clusteru používá překryvnou síť. Překlad síťových adres (NAT) používá IP adresu uzlu pro přístup k prostředkům mimo cluster. Toto řešení šetří značné množství IP adres virtuální sítě a umožňuje škálovat cluster na velké velikosti. Výhodou je, že privátní CIDR můžete znovu použít v různých clusterech AKS, což rozšiřuje prostor IP adres dostupný pro kontejnerizované aplikace ve službě Azure Kubernetes Service (AKS).
Přehled překryvných sítí
V překryvných sítích jsou IP adresy z podsítí přiřazeny pouze uzlům clusteru Kubernetes. Pody přijímají IP adresy z privátního CIDR poskytovaného při vytváření clusteru. Každému /24
uzlu je přiřazen adresní prostor vyřezaný ze stejného CIDR. Další uzly vytvořené při rozšíření clusteru automaticky přijímají /24
adresové rozsahy ze stejného CIDR. Azure CNI přiřadí IP adresy podům z tohoto /24
prostoru.
V síťovém stacku Azure se vytvoří samostatná směrovací doména pro privátní CIDR rozsah podu, což vytvoří překryvnou síť pro přímou komunikaci mezi pody. Není nutné zřizovat vlastní trasy v podsíti clusteru nebo použít metodu zapouzdření pro tunelování provozu mezi pody, což zajišťuje výkon připojení mezi pody na úrovni srovnatelné s virtuálními počítači ve virtuální síti. Úlohy spuštěné v podech si ani neuvědomují, že probíhá manipulace se síťovými adresami.
Komunikace s koncovými body mimo klastr, jako je lokální infrastruktura a propojené virtuální sítě, probíhá pomocí IP adresy uzlu prostřednictvím překladu síťových adres (NAT). Azure CNI přeloží zdrojovou IP adresu (překryvnou IP adresu podu) provozu na primární IP adresu virtuálního počítače, která umožňuje zásobník sítí Azure směrovat provoz do cíle. Koncové body mimo cluster se nemůžou připojit přímo k podu. Aplikaci podu musíte publikovat jako službu Kubernetes Load Balancer, aby byla dostupná ve virtuální síti.
Odchozí (výstupní) připojení k internetu můžete poskytnout pro overlay pody pomocí vyrovnávače zatížení ve standardní verzi nebo spravovaného NAT Gateway. Odchozí provoz můžete také řídit tím, že jej přesměrujete na firewall pomocí uživatelsky definovaných tras v podsíti clusteru.
Připojení příchozího přenosu dat ke clusteru můžete nakonfigurovat pomocí kontroleru příchozího přenosu dat, jako je Application Gateway pro kontejnery, NGINX nebo doplněk pro směrování aplikací.
Rozdíly mezi překryvem Kubenet a Azure CNI
Podobně jako překrytí Azure CNI přiřadí Kubenet IP adresy podům z adresního prostoru, který se logicky liší od virtuální sítě, ale má škálování a další omezení. Následující tabulka obsahuje podrobné porovnání mezi Kubenet a Azure CNI Overlay. Pokud nechcete přiřadit IP adresy virtuální sítě podům kvůli nedostatku IP adres, doporučujeme použít překrytí Azure CNI.
Plocha | Azure CNI Overlay | Kubenet |
---|---|---|
Škálování clusteru | 5000 uzlů a 250 pods/uzel | 400 uzlů a 250 podů na uzel |
Konfigurace sítě | Jednoduché – pro sítě podů se nevyžadují žádné další konfigurace. | Složité – vyžaduje směrovací tabulky a uživatelsky definované trasy (UDR) v podsíti clusteru pro síťování podů. |
Výkon připojení podů | Výkon srovnatelný s virtuálními počítači ve virtuální síti | Další skok přidává latenci |
Zásady sítě Kubernetes | Zásady sítě Azure, Calico, Cilium | Kaliko |
Podporované platformy operačního systému | Linux a Windows Server 2022, 2019 | Jenom Linux |
Plánování IP adres
-
Uzly clustru: Při nastavování AKS clustru se ujistěte, že podsítě mají dostatek prostoru pro budoucí škálování. Každý fond uzlů můžete přiřadit k vyhrazené podsíti. Podsíť
/24
může obsahovat až 251 uzlů, protože první tři IP adresy jsou vyhrazené pro úlohy správy. -
Pody: Řešení překrytí přiřadí adresní prostor pro pody na každém uzlu z privátního CIDR, který zadáte při vytváření clusteru. Velikost
/24
je pevná a nedá se zvětšit ani zmenšit. Na uzlu můžete spustit až 250 podů. Při plánování adresního prostoru podu se ujistěte, že je soukromý CIDR dostatečně velký, aby pro nové uzly bylo dostatečně mnoho adresních prostorů na podporu budoucího rozšíření clusteru.- Při plánování adresního prostoru IP adres pro pody zvažte následující faktory:
- Stejný prostor CIDR podu lze použít na několika nezávislých clusterech AKS ve stejné virtuální síti.
- Prostor CIDR podů se nesmí překrývat s rozsahem podsítě clusteru.
- Prostor CIDR se nesmí překrývat s přímo připojenými sítěmi (jako je propojení virtuálních sítí, ExpressRoute nebo VPN). Pokud externí provoz obsahuje zdrojové IP adresy v rozsahu podCIDR, potřebuje překlad na nepřekrývající se IP adresu přes SNAT pro komunikaci s clusterem.
- Při plánování adresního prostoru IP adres pro pody zvažte následující faktory:
-
Rozsah adres služby Kubernetes: Velikost adresy služby CIDR závisí na počtu služeb clusteru, které plánujete vytvořit. Musí být menší než
/12
. Tento rozsah by se neměl překrývat s rozsahem podsítě CIDR, rozsahem podsítě clusteru a rozsahem IP adres používaným v propojených virtuálních sítích a podnikových sítích. -
IP adresa služby DNS Kubernetes: Tato IP adresa je v rozsahu adres služby Kubernetes, který používá zjišťování služeb clusteru. Nepoužívejte první IP adresu v rozsahu adres, protože je používána pro
kubernetes.default.svc.cluster.local
.
Důležité
Privátní rozsahy pro Pod CIDR jsou definovány v dokumentu RFC 1918. I když neblokujeme použití rozsahů veřejných IP adres, považují se za mimo rozsah podpory Microsoftu. Pro CIDR podu doporučujeme používat rozsahy privátních IP adres.
Skupiny zabezpečení sítě
Provoz mezi pody pomocí Azure CNI Overlay není zapouzdřený a použijí se pravidla skupiny zabezpečení sítě podsítě. Pokud skupina zabezpečení sítě podsítě obsahuje pravidla zamítnutí, která by ovlivnila provoz CIDR podů, ujistěte se, že jsou splněna následující pravidla pro zajištění správné funkčnosti clusteru (kromě všech požadavků na výchozí přenos dat AKS):
- Provoz z uzlu CIDR do uzlu CIDR na všech portech a protokolech
- Provoz z uzlu CIDR do podu CIDR na všech portech a protokolech (vyžadovaných pro směrování provozu služby)
- Provoz z CIDR podu do CIDR podu na všech portech a protokolech (vyžadovaný pro provoz mezi pody a z podu do služby, včetně DNS)
Provoz z podu do jakéhokoli cíle mimo blok CIDR podu využívá SNAT ke změně zdrojové IP adresy na IP adresu uzlu, na kterém pod běží.
Pokud chcete omezit provoz mezi úlohami v clusteru, doporučujeme použít zásady sítě.
Maximální počet podů na uzel
Maximální počet podů na uzel můžete nakonfigurovat při vytváření clusteru nebo při přidání nového fondu uzlů. Výchozí hodnota pro překrytí Azure CNI je 250. Maximální hodnota, kterou můžete zadat v překrytí Azure CNI, je 250 a minimální hodnota je 10. Maximální počet podů na hodnotu uzlu nakonfigurovanou při vytváření fondu uzlů se vztahuje pouze na uzly v daném fondu uzlů.
Volba síťového modelu, který se má použít
Azure CNI nabízí dvě možnosti přidělování IP adres pro pody: tradiční konfigurace, která přiřazuje IP adresy virtuálních sítí podům a překryvné sítě. Volba, kterou možnost použít pro cluster AKS, je vyvážená mezi flexibilitou a pokročilými potřebami konfigurace. Následující aspekty vám pomůžou zjistit, kdy může být každý síťový model nejvhodnější.
Použití překryvných sítí v případech:
- Chcete škálovat na velký počet podů, ale ve virtuální síti máte omezený adresní prostor IP adres.
- Většina komunikace podů je v clusteru.
- Nepotřebujete pokročilé funkce AKS, jako jsou virtuální uzly.
Tradiční možnost virtuální sítě použijte v následujících případech:
- Máte k dispozici volný IP adresní prostor.
- Většina komunikace podů je s prostředky mimo cluster.
- Prostředky mimo cluster musí mít přímý přístup k podům.
- Potřebujete pokročilé funkce AKS, jako jsou virtuální uzly.
Omezení Azure CNI Overlay
Azure CNI Overlay má následující omezení:
- Skupiny dostupnosti virtuálních počítačů (VMAS) nejsou podporované pro funkci Overlay.
- Virtuální počítače řady DCsv2 nemůžete používat ve fondech uzlů. Pokud chcete splnit požadavky důvěrného computingu, zvažte místo toho použití důvěrných virtuálních počítačů řady DCasv5 nebo DCadsv5.
- V případě, že k nasazení clusteru používáte vlastní podsíť, musí názvy podsítě, virtuální sítě a skupiny prostředků obsahující virtuální síť obsahovat 63 znaků nebo méně. To vychází ze skutečnosti, že se tyto názvy použijí jako popisky v pracovních uzlech AKS, a proto se na ně vztahují pravidla syntaxe popisků Kubernetes.
Nastavení překryvných clusterů
Poznámka:
Abyste mohli argument použít --network-plugin-mode
, musíte mít rozhraní příkazového řádku verze 2.48.0 nebo novější. Pro Windows musíte mít nainstalované nejnovější rozšíření Azure CLI aks-Preview a můžete postupovat podle následujících pokynů.
Vytvořte cluster s překrytím Azure CNI pomocí příkazu az aks create
. Nezapomeňte použít argument --network-plugin-mode
k určení překryvného clusteru. Pokud není pod CIDR zadaný, přiřadí AKS výchozí rozsah: viz. 10.244.0.0/16
.
clusterName="myOverlayCluster"
resourceGroup="myResourceGroup"
location="westcentralus"
az aks create \
--name $clusterName \
--resource-group $resourceGroup \
--location $location \
--network-plugin azure \
--network-plugin-mode overlay \
--pod-cidr 192.168.0.0/16 \
--generate-ssh-keys
Přidat nový fond uzlů do vyhrazené podsítě
Po vytvoření clusteru s překrytím Azure CNI můžete vytvořit další fond uzlů a přiřadit je k nové podsíti stejné virtuální sítě. Tento přístup může být užitečný, pokud chcete řídit příchozí nebo výchozí IP adresy hostitele z nebo směrem k cílům ve stejné virtuální síti nebo partnerských virtuálních sítích.
clusterName="myOverlayCluster"
resourceGroup="myResourceGroup"
location="westcentralus"
nodepoolName="newpool1"
subscriptionId=$(az account show --query id -o tsv)
vnetName="yourVnetName"
subnetName="yourNewSubnetName"
subnetResourceId="/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.Network/virtualNetworks/$vnetName/subnets/$subnetName"
az aks nodepool add --resource-group $resourceGroup --cluster-name $clusterName \
--name $nodepoolName --node-count 1 \
--mode system --vnet-subnet-id $subnetResourceId
Dvouprotokolové sítě
Clustery AKS můžete nasadit v režimu duálního zásobníku při použití překryvných sítí a virtuální sítě Azure se dvěma zásobníky. V této konfiguraci uzly z podsítě virtuální sítě Azure obdrží adresu IPv4 i IPv6. Pody obdrží adresu IPv4 i IPv6 z logicky jiného adresního prostoru než podsítě uzlů virtuální sítě Azure. Překlad adres (NAT) se pak nakonfiguruje tak, aby pody mohly získat přístup k prostředkům ve virtuální síti Azure. Zdrojová IP adresa provozu je NATována na primární IP adresu uzlu stejné rodiny adres, (IPv4 na IPv4 a IPv6 na IPv6).
Požadavky
- Musíte mít nainstalované Azure CLI 2.48.0 nebo novější.
- Kubernetes verze 1.26.3 nebo novější.
Omezení
U sítí dvojího zásobníku nejsou podporovány následující funkce:
- Zásady sítě Azure
- Zásady sítě Calico
- NAT Gateway
- Doplněk Virtuální uzly
Nasazení dual-stack clusteru AKS
Následující atributy jsou poskytovány pro podporu dual-stack klastrů:
-
--ip-families
: Vezme čárkami oddělený seznam rodin IP adres, které se mají povolit v clusteru.- Pouze
ipv4
neboipv4,ipv6
jsou podporovány.
- Pouze
-
--pod-cidrs
: Přijímá seznam rozsahů IP v notaci CIDR oddělený čárkami pro přiřazení IP adres podů.- Počet a pořadí rozsahů v tomto seznamu se musí shodovat s hodnotou zadanou pro
--ip-families
. - Pokud nejsou zadány žádné hodnoty, použije se výchozí hodnota
10.244.0.0/16,fd12:3456:789a::/64
.
- Počet a pořadí rozsahů v tomto seznamu se musí shodovat s hodnotou zadanou pro
-
--service-cidrs
: Přebírá čárkami oddělený seznam IP rozsahů v notaci CIDR k přiřazení IP adres služby.- Počet a pořadí rozsahů v tomto seznamu se musí shodovat s hodnotou zadanou pro
--ip-families
. - Pokud nejsou zadány žádné hodnoty, použije se výchozí hodnota
10.0.0.0/16,fd12:3456:789a:1::/108
. - Přiřazená
--service-cidrs
podsíť IPv6 nesmí být větší než /108.
- Počet a pořadí rozsahů v tomto seznamu se musí shodovat s hodnotou zadanou pro
Vytvořte cluster AKS s duálním stackem
Pomocí příkazu [
az group create
][az-group-create] vytvořte skupinu prostředků Azure pro cluster.az group create --location <region> --name <resourceGroupName>
Vytvořte duální stack cluster AKS pomocí
az aks create
příkazu s parametrem nastaveným naipv4,ipv6
.az aks create \ --location <region> \ --resource-group <resourceGroupName> \ --name <clusterName> \ --network-plugin azure \ --network-plugin-mode overlay \ --ip-families ipv4,ipv6 \ --generate-ssh-keys
Vytvoření ukázkové úlohy
Po vytvoření clusteru můžete nasadit své úlohy. Tento článek vás provede ukázkovým nasazením webového serveru NGINX.
Nasazení webového serveru NGINX
Doplněk směrování aplikace je doporučeným způsobem pro ingress v clusteru AKS. Další informace o doplňku směrování aplikace a příklad nasazení aplikace s doplňkem najdete v tématu Spravované příchozí přenosy dat NGINX pomocí doplňku směrování aplikace.
Zveřejnění úlohy prostřednictvím LoadBalancer
služby typu
Důležité
V současné době platí dvě omezení týkající se služeb IPv6 v AKS.
- Azure Load Balancer odesílá sondy stavu na IPv6 adresy z link-local adresy. Ve fondech uzlů Azure s Linuxem se tento provoz nedá směrovat do podu, takže provoz ke službám IPv6 nasazeným s
externalTrafficPolicy: Cluster
selžou. Služby IPv6 musí být nasazeny sexternalTrafficPolicy: Local
, které způsobuje, žekube-proxy
reaguje na sondu na uzlu. - Před verzí 1.27 Kubernetes se pro nástroj pro vyrovnávání zatížení zřídí pouze první IP adresa služby, takže duální zásobník služby přijímá veřejnou IP adresu pouze pro rodinu IP adres uvedenou jako první. Pokud chcete poskytnout službu podporující jak IPv4, tak IPv6 pro jedno nasazení, vytvořte dvě služby, které cílí na stejný selektor: jednu pro IPv4 a jednu pro IPv6. Toto omezení už neplatí v kubernetes 1.27 nebo novějším.
Zveřejnění nasazení NGINX pomocí
kubectl expose deployment nginx
příkazukubectl expose deployment nginx --name=nginx-ipv4 --port=80 --type=LoadBalancer' kubectl expose deployment nginx --name=nginx-ipv6 --port=80 --type=LoadBalancer --overrides='{"spec":{"ipFamilies": ["IPv6"]}}'
Zobrazí se výstup, který ukazuje, že služby byly vystaveny.
service/nginx-ipv4 exposed service/nginx-ipv6 exposed
Jakmile se nasazení zveřejní a služby
LoadBalancer
jsou plně zřízené, pomocí příkazukubectl get services
získejte IP adresy služeb.kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx-ipv4 LoadBalancer 10.0.88.78 20.46.24.24 80:30652/TCP 97s nginx-ipv6 LoadBalancer fd12:3456:789a:1::981a 2603:1030:8:5::2d 80:32002/TCP 63s
Ověřte funkčnost prostřednictvím webového požadavku příkazového řádku z hostitele podporujícího protokol IPv6. Azure Cloud Shell nepodporuje protokol IPv6.
SERVICE_IP=$(kubectl get services nginx-ipv6 -o jsonpath='{.status.loadBalancer.ingress[0].ip}') curl -s "http://[${SERVICE_IP}]" | head -n5
<!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style>
Duální zásobníkové sítě s využitím Azure CNI provozované pomocí Cilium
Clustery AKS s duálním stackem můžete nasadit pomocí Azure CNI s podporou Cilium. To vám také umožní řídit provoz IPv6 pomocí modulu zásad sítě Cilium.
Požadavky
- Musíte mít Kubernetes verze 1.29 nebo novější.
Nastavení překryvných clusterů pomocí Azure CNI poháněné Cilium
Vytvořte cluster s Azure CNI Overlay pomocí příkazu az aks create
. Nezapomeňte použít argument --network-dataplane cilium
k určení datové roviny Cilium.
clusterName="myOverlayCluster"
resourceGroup="myResourceGroup"
location="westcentralus"
az aks create \
--name $clusterName \
--resource-group $resourceGroup \
--location $location \
--network-plugin azure \
--network-plugin-mode overlay \
--network-dataplane cilium \
--ip-families ipv4,ipv6 \
--generate-ssh-keys
Další informace o Azure CNI Powered by Cilium najdete v tématu Azure CNI Powered by Cilium.
Fondy uzlů Windows s dvojím stohováním sítě – (Preview)
Můžete nasadit své dual-stack clustery AKS s uzlovými fondy Windows.
Důležité
Funkce AKS v předběžné verzi jsou k dispozici na samoobslužné bázi s možností volby. Verze Preview jsou poskytovány "tak, jak jsou a jak jsou dostupné" a jsou vyloučeny ze smluv o úrovni služeb a omezené záruky. Verze Preview AKS jsou částečně pokryty zákaznickou podporou na základě maximálního úsilí. Proto tyto funkce nejsou určené pro produkční použití. Další informace najdete v následujících článcích podpory:
Instalace rozšíření Azure CLI aks-Preview
Nainstalujte rozšíření aks-preview pomocí
az extension add
příkazu.az extension add --name aks-preview
Aktualizujte na nejnovější verzi rozšíření pomocí příkazu
az extension update
.az extension update --name aks-preview
Zaregistrujte příznak funkce 'AzureOverlayDualStackPreview'
Zaregistrujte příznak funkce
AzureOverlayDualStackPreview
pomocí příkazuaz feature register
.az feature register --namespace "Microsoft.ContainerService" --name "AzureOverlayDualStackPreview"
Zobrazení stavu Zaregistrované trvá několik minut.
Pomocí příkazu ověřte stav
az feature show
registrace:az feature show --namespace "Microsoft.ContainerService" --name "AzureOverlayDualStackPreview"
Jakmile se stav projeví jako zaregistrovaný, aktualizujte registraci poskytovatele prostředků Microsoft.ContainerService pomocí
az provider register
příkazu.az provider register --namespace Microsoft.ContainerService
Nastavení překryvného clusteru
Vytvořte cluster s Azure CNI Overlay pomocí příkazu az aks create
.
clusterName="myOverlayCluster"
resourceGroup="myResourceGroup"
location="westcentralus"
az aks create \
--name $clusterName \
--resource-group $resourceGroup \
--location $location \
--network-plugin azure \
--network-plugin-mode overlay \
--ip-families ipv4,ipv6 \
--generate-ssh-keys
Přidání fondu uzlů Windows do clusteru
Přidejte do clusteru fond uzlů Windows pomocí příkazu [az aks nodepool add
][az-aks-nodepool-add].
az aks nodepool add \
--resource-group $resourceGroup \
--cluster-name $clusterName \
--os-type Windows \
--name winpool1 \
--node-count 2
Další kroky
Informace o upgradu existujících clusterů na překryvné vrstvy Azure CNI najdete v tématu Upgrade režimů IPAM Azure CNI a technologie roviny dat.
Informace o tom, jak využívat AKS s vlastním pluginem Container Network Interface (CNI), najdete v tématu Vlastní plugin Container Network Interface (CNI).
Azure Kubernetes Service