Konfigurace sítí Azure CNI pro dynamické přidělování IP adres a rozšířenou podporu podsítí ve službě Azure Kubernetes Service (AKS)
Nevýhodou tradičního CNI je vyčerpání IP adres podů při růstu clusteru AKS, což vede k nutnosti opětovného sestavení celého clusteru ve větší podsíti. Nová funkce dynamického přidělování IP adres v Azure CNI tento problém řeší přidělením IP adres podů z podsítě oddělené od podsítě hostující cluster AKS.
Nabízí následující výhody:
- Lepší využití IP adres: IP adresy se dynamicky přidělují podům clusteru z podsítě Pod. To vede k lepšímu využití IP adres v clusteru v porovnání s tradičním řešením CNI, které dělá statické přidělování IP adres pro každý uzel.
- Škálovatelné a flexibilní: Podsítě uzlů a podů je možné škálovat nezávisle. Jednu podsíť lze sdílet napříč několika fondy uzlů clusteru nebo napříč několika clustery AKS nasazenými ve stejné virtuální síti. Můžete také nakonfigurovat samostatnou podsíť pro fond uzlů.
- Vysoký výkon: Vzhledem k tomu, že mají pod přiřazené IP adresy virtuální sítě, mají přímé připojení k dalším podům clusteru a prostředkům ve virtuální síti. Řešení podporuje velmi velké clustery bez jakéhokoli snížení výkonu.
- Samostatné zásady virtuální sítě pro pody: Protože pody mají samostatnou podsíť, můžete pro ně nakonfigurovat samostatné zásady virtuální sítě, které se liší od zásad uzlů. To umožňuje mnoho užitečných scénářů, jako je povolení připojení k internetu jenom pro pody, ne pro uzly, oprava zdrojové IP adresy pro pod ve fondu uzlů pomocí služby Azure NAT Gateway a použití skupin zabezpečení sítě k filtrování provozu mezi fondy uzlů.
- Zásady sítě Kubernetes: Zásady sítě Azure i Calico pracují s tímto novým řešením.
V tomto článku se dozvíte, jak používat sítě Azure CNI pro dynamické přidělování IP adres a rozšířenou podporu podsítě v AKS.
Požadavky
Projděte si požadavky pro konfiguraci základních sítí Azure CNI v AKS, protože stejné požadavky platí pro tento článek.
Projděte si parametry nasazení pro konfiguraci základních sítí Azure CNI v AKS, jak platí stejné parametry.
Clustery AKS Engine a DIY se nepodporují.
Verze
2.37.0
Azure CLI nebo novější.Pokud máte existující cluster, musíte pro monitorování využití podsítě PROTOKOLU IP povolit Službu Container Insights. Container Insights můžete povolit pomocí
az aks enable-addons
příkazu, jak je znázorněno v následujícím příkladu:az aks enable-addons --addons monitoring --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME
Plánování přidělování IP adres
Plánování přidělování IP adres je s touto funkcí mnohem jednodušší. Vzhledem k tomu, že uzly a pody se škálují nezávisle, je možné jejich adresní prostory naplánovat také samostatně. Vzhledem k tomu, že podsítě je možné nakonfigurovat na členitost fondu uzlů, můžete při přidávání fondu uzlů vždy přidat novou podsíť. Systémové pody ve fondu clusteru nebo uzlů také přijímají IP adresy z podsítě podsítě podsítě, takže toto chování je potřeba zohlednit.
IP adresy se přidělují uzlům v dávkách 16. Přidělení IP podsítě podsítě by mělo být naplánováno s minimálně 16 IP adresami na uzel v clusteru; Uzly budou vyžadovat 16 IP adres při spuštění a budou požadovat jinou dávku 16, kdykoli je <v jejich přidělení nepřidělováno 8 IP adres.
Plánování IP adres pro služby Kubernetes a most Dockeru zůstávají beze změny.
Pokud chcete zobrazit a ověřit prostředky NodeNetworkConfiguration (NNC), které zodpovídají za tyto přidělení IP adres, můžete spustit následující příkaz:
kubectl get nodenetworkconfigs -n kube-system -o wide
Maximální počet podů na uzel v clusteru s dynamickým přidělením IP adres a podporou rozšířené podsítě
Hodnoty podů na uzel při použití Azure CNI s dynamickým přidělováním IP adres se mírně liší od tradičního chování CNI:
CNI | Výchozí | Konfigurovatelné při nasazení |
---|---|---|
Tradiční Azure CNI | 30 | Ano (až 250) |
Azure CNI s dynamickým přidělováním IP adres | 250 | Ano (až 250) |
Všechny ostatní pokyny související s konfigurací maximálního počtu podů na uzel zůstanou stejné.
Parametry nasazení
Parametry nasazenípro konfiguraci základních sítí Azure CNI v AKS jsou platné, s dvěma výjimkami:
- Parametr podsítě teď odkazuje na podsíť související s uzly clusteru.
- Další podsíť pod parametrů se používá k určení podsítě, jejíž IP adresy budou dynamicky přiděleny podům.
Konfigurace sítí s dynamickým přidělováním IP adres a rozšířenou podporou podsítě – Azure CLI
Použití dynamického přidělování IP adres a rozšířené podpory podsítě v clusteru se podobá výchozí metodě konfigurace Azure CNI clusteru. Následující příklad vás provede vytvořením nové virtuální sítě s podsítí pro uzly a podsíť pro pody a vytvořením clusteru, který používá Azure CNI s dynamickým přidělováním IP adres a vylepšenou podporou podsítí. Nezapomeňte nahradit proměnné, například $subscription
vlastními hodnotami.
Vytvořte virtuální síť se dvěma podsítěmi.
RESOURCE_GROUP_NAME="myResourceGroup"
VNET_NAME="myVirtualNetwork"
LOCATION="westcentralus"
SUBNET_NAME_1="nodesubnet"
SUBNET_NAME_2="podsubnet"
# Create the resource group
az group create --name $RESOURCE_GROUP_NAME --location $LOCATION
# Create our two subnet network
az network vnet create --resource-group $RESOURCE_GROUP_NAME --location $LOCATION --name $VNET_NAME --address-prefixes 10.0.0.0/8 -o none
az network vnet subnet create --resource-group $RESOURCE_GROUP_NAME --vnet-name $VNET_NAME --name $SUBNET_NAME_1 --address-prefixes 10.240.0.0/16 -o none
az network vnet subnet create --resource-group $RESOURCE_GROUP_NAME --vnet-name $VNET_NAME --name $SUBNET_NAME_2 --address-prefixes 10.241.0.0/16 -o none
Vytvořte cluster, odkazujte na podsíť uzlu pomocí --vnet-subnet-id
podsítě a --pod-subnet-id
povolte doplněk pro monitorování.
CLUSTER_NAME="myAKSCluster"
SUBSCRIPTION="aaaaaaa-aaaaa-aaaaaa-aaaa"
az aks create \
--name $CLUSTER_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--location $LOCATION \
--max-pods 250 \
--node-count 2 \
--network-plugin azure \
--vnet-subnet-id /subscriptions/$SUBSCRIPTION/resourceGroups/$RESOURCE_GROUP_NAME/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$SUBNET_NAME_1 \
--pod-subnet-id /subscriptions/$SUBSCRIPTION/resourceGroups/$RESOURCE_GROUP_NAME/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$SUBNET_NAME_2 \
--enable-addons monitoring \
--generate-ssh-keys
Přidání fondu uzlů
Při přidávání fondu uzlů odkazujte na podsíť uzlu pomocí --vnet-subnet-id
podsítě a podsítě pomocí --pod-subnet-id
. Následující příklad vytvoří dvě nové podsítě, na které se pak odkazuje při vytváření nového fondu uzlů:
SUBNET_NAME_3="node2subnet"
SUBNET_NAME_4="pod2subnet"
NODE_POOL_NAME="mynodepool"
az network vnet subnet create --resource-group $RESOURCE_GROUP_NAME --vnet-name $VNET_NAME --name $SUBNET_NAME_3 --address-prefixes 10.242.0.0/16 -o none
az network vnet subnet create --resource-group $RESOURCE_GROUP_NAME --vnet-name $VNET_NAME --name $SUBNET_NAME_4 --address-prefixes 10.243.0.0/16 -o none
az aks nodepool add --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME --name $NODE_POOL_NAME \
--max-pods 250 \
--node-count 2 \
--vnet-subnet-id /subscriptions/$SUBSCRIPTION/resourceGroups/$RESOURCE_GROUP_NAME/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$SUBNET_NAME_3 \
--pod-subnet-id /subscriptions/$SUBSCRIPTION/resourceGroups/$RESOURCE_GROUP_NAME/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$SUBNET_NAME_4 \
--no-wait
Monitorování využití podsítě PROTOKOLU IP
Azure CNI poskytuje možnost monitorovat využití podsítě PROTOKOLU IP. Pokud chcete povolit monitorování využití podsítě PROTOKOLU IP, postupujte následovně:
Získání souboru YAML
Stáhněte nebo vytvořte soubor s názvem container-azm-ms-agentconfig.yaml z GitHubu.
Najděte
azure_subnet_ip_usage
je v integracích. Nastavteenabled
na hodnotutrue
.Uložte soubor.
Získat přihlašovací údaje AKS
Nastavte proměnné pro předplatné, skupinu prostředků a cluster. Podívejte se na následující příklady:
az account set --subscription $SUBSCRIPTION
az aks get-credentials --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME
Použití konfigurace
- Otevřete terminál ve složce, do které se uloží stažený soubor container-azm-ms-agentconfig.yaml .
- Použijte konfiguraci pomocí
kubectl apply -f container-azm-ms-agentconfig.yaml
příkazu. Tím se pod restartuje a po 5 až 10 minutách se metriky zobrazí. - Zobrazte metriky v clusteru tak, že přejdete na stránku Sešity na stránce clusteru na webu Azure Portal a vyhledáte sešit s názvem Využití PROTOKOLU IP podsítě.
Nejčastější dotazy k dynamickému přidělování IP adres a rozšířené podsítě
Můžu přiřadit více podsítí ke clusteru nebo fondu uzlů?
Ke clusteru nebo fondu uzlů je možné přiřadit pouze jednu podsíť. Několik clusterů nebo fondů uzlů ale může sdílet jednu podsíť.
Můžu podsítě podsítě přiřadit úplně z jiné virtuální sítě?
Ne, podsíť podů by měla být ze stejné virtuální sítě jako cluster.
Mohou některé fondy uzlů v clusteru používat tradiční CNI, zatímco jiné používají novou CNI?
Celý cluster by měl používat pouze jeden typ CNI.
Další kroky
Další informace o sítích v AKS najdete v následujících článcích:
Azure Kubernetes Service