Sdílet prostřednictvím


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

  1. Stáhněte nebo vytvořte soubor s názvem container-azm-ms-agentconfig.yaml z GitHubu.

  2. Najděte azure_subnet_ip_usage je v integracích. Nastavte enabled na hodnotu true.

  3. 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

  1. Otevřete terminál ve složce, do které se uloží stažený soubor container-azm-ms-agentconfig.yaml .
  2. 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í.
  3. 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: