Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En nackdel med det traditionella CNI är överbelastningen av podd-IP-adresser när AKS-klustret växer, vilket resulterar i behovet av att återskapa hela klustret i ett större undernät. Den nya funktionen för dynamisk IP-allokering i Azure CNI löser problemet genom att allokera podd-IP-adresser från ett undernät som är separat från undernätet som är värd för AKS-klustret.
Den erbjuder följande fördelar:
- Bättre IP-användning: IP-adresser allokeras dynamiskt till klusterpoddar från poddundernätet. Detta leder till bättre användning av IP-adresser i klustret jämfört med den traditionella CNI-lösningen, som utför statisk allokering av IP-adresser för varje nod.
- Skalbart och flexibelt: Nod- och poddundernät kan skalas separat. Ett enda poddundernät kan delas mellan flera nodpooler i ett kluster eller över flera AKS-kluster som distribueras i samma virtuella nätverk. Du kan också konfigurera ett separat poddundernät för en nodpool.
- High performance: Since pods are assigned virtual network IPs, they have direct connectivity to other cluster pod and resources in the VNet. Lösningen stöder mycket stora kluster utan försämrad prestanda.
- Separata VNet-principer för poddar: Eftersom poddar har ett separat undernät kan du konfigurera separata VNet-principer för dem som skiljer sig från nodprinciper. Detta möjliggör många användbara scenarier som att endast tillåta internetanslutning för poddar och inte för noder, åtgärda käll-IP för podden i en nodpool med hjälp av en Azure NAT Gateway och använda NSG:er för att filtrera trafik mellan nodpooler.
- Kubernetes-nätverksprinciper: Både Azure-nätverksprinciperna och Calico fungerar med den här nya lösningen.
Den här artikeln visar hur du använder Azure CNI Pod Subnet – Dynamisk IP-allokering och utökat undernätsstöd i AKS.
Prerequisites
Review the prerequisites for configuring basic Azure CNI networking in AKS, as the same prerequisites apply to this article.
Review the deployment parameters for configuring basic Azure CNI networking in AKS, as the same parameters apply.
AKS Engine- och DIY-kluster stöds inte.
Azure CLI-version
2.37.0eller senare.Om du har ett befintligt kluster måste du aktivera Container Insights för övervakning av IP-undernätsanvändning. Du kan aktivera Container Insights med hjälp av
az aks enable-addonskommandot, som du ser i följande exempel:az aks enable-addons --addons monitoring --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME
Planering av IP-adressering
Det är mycket enklare att planera DIN IP-adressering med den här funktionen. Eftersom noderna och poddarna skalas separat kan deras adressutrymmen också planeras separat. Eftersom poddundernät kan konfigureras till kornigheten för en nodpool kan du alltid lägga till ett nytt undernät när du lägger till en nodpool. Systempoddarna i en kluster-/nodpool tar också emot IP-adresser från poddundernätet, så det här beteendet måste redovisas.
IP-adresser allokeras till noder i batchar med 16. IP-allokering av poddundernät bör planeras med minst 16 IP-adresser per nod i klustret. noder begär 16 IP-adresser vid start och begär ytterligare en batch på 16 när det finns 8 IP-adresser som inte <allokerats i tilldelningen.
Planeringen av IP-adresser för Kubernetes-tjänster och Docker-bryggan förblir oförändrad.
Om du vill visa och verifiera de NNC-resurser (NodeNetworkConfiguration) som ansvarar för dessa IP-allokeringar kan du köra följande kommando:
kubectl get nodenetworkconfigs -n kube-system -o wide
Maximalt antal poddar per nod i ett kluster med poddundernät – Dynamisk IP-allokering och utökat stöd för undernät
Poddarna per nodvärde när du använder Azure CNI Pod Subnet – Dynamisk IP-allokering skiljer sig något från det traditionella CNI-beteendet:
| CNI | Default | Kan konfigureras vid distribution |
|---|---|---|
| Traditionell Azure CNI | 30 | Ja (upp till 250) |
| Azure CNI Pod-undernät – Dynamisk IP-allokering | 250 | Ja (upp till 250) |
All annan vägledning som rör konfiguration av maximala poddar per nod förblir densamma.
Deployment parameters
The deployment parametersfor configuring basic Azure CNI networking in AKS are all valid, with two exceptions:
- The subnet parameter now refers to the subnet related to the cluster's nodes.
- An additional parameter pod subnet is used to specify the subnet whose IP addresses will be dynamically allocated to pods.
Konfigurera poddundernät – Dynamisk IP-allokering och förbättrat stöd för undernät – Azure CLI
Användning av poddundernät – Dynamisk IP-allokering och utökat stöd för undernät i klustret liknar standardmetoden för att konfigurera ett kluster i Azure CNI. I följande exempel går vi igenom hur du skapar ett nytt virtuellt nätverk med ett undernät för noder och ett undernät för poddar, och skapar ett kluster som använder Azure CNI Pod Subnet – Dynamisk IP-allokering och utökat undernätsstöd. Se till att ersätta variabler som $subscription med dina egna värden.
Skapa det virtuella nätverket med två undernät.
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
Skapa klustret, referera till nodundernätet med och --vnet-subnet-id poddundernätet med hjälp av --pod-subnet-id och aktivera övervakningstillägget.
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
Lägga till nodpool
När du lägger till nodpoolen refererar du till nodundernätet med och --vnet-subnet-id poddundernätet med .--pod-subnet-id I följande exempel skapas två nya undernät som sedan refereras i skapandet av en ny nodpool:
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
Övervaka IP-undernätsanvändning
Azure CNI ger möjlighet att övervaka IP-undernätsanvändning. Följ stegen nedan för att aktivera övervakning av IP-undernätsanvändning:
Hämta YAML-filen
Download or grep the file named container-azm-ms-agentconfig.yaml from GitHub.
Hitta
azure_subnet_ip_usagei integreringar. Ställ inenabledpåtrue.Spara filen.
Hämta AKS-autentiseringsuppgifterna
Ange variablerna för prenumeration, resursgrupp och kluster. Tänk på följande som exempel:
az account set --subscription $SUBSCRIPTION
az aks get-credentials --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME
Tillämpa konfigurationen
- Open the terminal in the folder in which the downloaded container-azm-ms-agentconfig.yaml file is saved.
- Använd konfigurationen med kommandot
kubectl apply -f container-azm-ms-agentconfig.yaml. Detta startar om podden och efter 5–10 minuter visas måtten. - Visa måtten i klustret genom att gå till Arbetsböcker på klustersidan i Azure-portalen och leta reda på arbetsboken med namnet IP-användning för undernätet.
Azure CNI Pod-undernät – Dynamisk IP-allokering och utökat undernät stöder vanliga frågor och svar
Kan jag tilldela flera poddundernät till en kluster-/nodpool?
Endast ett undernät kan tilldelas till ett kluster eller en nodpool. Flera kluster eller nodpooler kan dock dela ett enda undernät.
Kan jag tilldela poddundernät från ett annat virtuellt nätverk?
Nej, poddundernätet ska komma från samma virtuella nätverk som klustret.
Kan vissa nodpooler i ett kluster använda det traditionella CNI medan andra använder den nya CNI:n?
Hela klustret bör bara använda en typ av CNI.
Next steps
Läs mer om nätverk i AKS i följande artiklar:
Azure Kubernetes Service