Použití fondů uzlů virtuálních počítačů ve službě Azure Kubernetes Service (AKS)

V tomto článku se dozvíte o novém typu fondu uzlů virtuálních počítačů pro AKS.

Při použití fondů uzlů virtuálních počítačů spravuje AKS přímo zajišťování a inicializaci každého jednotlivého uzlu. U uzlových fondů Škálovacích sad virtuálních počítačů spravuje AKS model Škálovacích sad virtuálních počítačů a používá ho k dosažení jednotnosti napříč všemi uzly ve fondu uzlů. Fondy uzlů virtuálních počítačů umožňují orchestrovat cluster s virtuálními počítači, které nejlépe vyhovují vašim jednotlivým úlohám.

Pomocí fondů uzlů virtuálních počítačů AKS přímo spravuje zřizování a inicializaci každého uzlu. U fondů uzlů škálovacích sad virtuálních počítačů spravuje AKS model škálovacích sad virtuálních počítačů a používá ho k dosažení konzistence napříč všemi uzly ve fondu uzlů. Fondy uzlů virtuálních počítačů umožňují orchestrovat cluster s virtuálními počítači, které nejlépe vyhovují vašim jednotlivým úlohám.

Přehled fondu uzlů virtuálních počítačů

Jak to funguje

Fond uzlů se skládá ze sady virtuálních počítačů, kde různé velikosti virtuálních počítačů podporují různé typy úloh. Tyto velikosti virtuálních počítačů označované jako skladové položky jsou rozdělené do různých rodin, které jsou optimalizované pro konkrétní účely. Další informace najdete v dokumentaci ke skladám virtuálních počítačů. Pomocí fondů uzlů virtuálních počítačů můžete provádět ruční škálování s více skladovými položkami a automatické škálování s více skladovými položkami.

Pokud chcete povolit škálování několika velikostí virtuálních počítačů, používá typ ScaleProfile fondu uzlů virtuálních počítačů konfiguraci označující, jak se fond uzlů může škálovat, konkrétně požadovaný seznam velikosti virtuálního počítače a počet jednotlivých velikostí. A ManualScaleProfile je profil škálování, který určuje jednu požadovanou velikost virtuálního počítače a celkový počet tohoto typu ve fondu uzlů. Pouze jedna velikost virtuálního počítače je povolena v sadě ManualScaleProfile. Pro každou velikost virtuálního počítače ve fondu uzlů musíte vytvořit samostatný ManualScaleProfile. Při vytváření nového fondu uzlů virtuálních počítačů přidáte počáteční profil ručního škálování pro velikost virtuálního počítače pomocí vm-size pole a včetně node-count. Podle pokynů pro přidání profilů ručního škálování můžete také přidat další profily ručního škálování.

Pokud chcete povolit škálování více velikostí virtuálních počítačů, typ fondu uzlů virtuálních počítačů používá ScaleProfile konfiguraci určující, jak se fond uzlů může škálovat, konkrétně požadovaný seznam velikosti virtuálního počítače a počet jednotlivých velikostí. A ManualScaleProfile je profil škálování, který určuje jednu požadovanou velikost virtuálního počítače a celkový počet tohoto typu ve fondu uzlů. A ManualScaleProfile podporuje pouze jednu velikost virtuálního počítače. Pro každou velikost virtuálního počítače ve fondu uzlů musíte vytvořit samostatný ManualScaleProfile. Při vytváření nového fondu uzlů pro virtuální počítače přidejte počáteční profil pro ruční škálování pro velikost virtuálního počítače pomocí pole vm-size a zahrňte node-count. Další profily ručního škálování můžete přidat také podle pokynů pro přidání profilů ručního škálování.

Fondy uzlů virtuálních počítačů také podporují režim Auto, což znamená, že fond uzlů může používat automatické škálování clusteru. Fond uzlů virtuálních počítačů podporuje celkem až pět profilů škálování v režimu ručního a automatického škálování. Každý profil určuje jedno SKU virtuálního počítače ze stejné rodiny. Každý AutoScaleProfile může mít ve fondu uzlů vlastní minimální a maximální počet uzlů.

Poznámka:

Při vytváření nového fondu uzlů Virtual Machines můžete mít více profilů škálování a v fondu uzlů potřebujete alespoň jeden profil ručního nebo automatického škálování.

Výhody skupin uzlů virtuálních počítačů

Mezi výhody typu fondu uzlů virtuálních počítačů patří:

  • Flexibilita: Specifikace uzlů je možné aktualizovat tak, aby se přizpůsobily aktuálnímu zatížení a potřebám.
  • Jemně vyladěný ovládací prvek: Ovládací prvky na úrovni jednoho uzlu umožňují určit a kombinovat uzly různých specifikací pro zvýšení omezení z jednoho modelu a zlepšit konzistenci.
  • Efektivita: Můžete snížit nároky na uzly pro váš cluster a zjednodušit provozní požadavky.

Fondy uzlů virtuálních počítačů podporují až pět profilů škálování na fond uzlů, takže úlohy můžou používat více skladových položek virtuálních počítačů stejné řady bez nutnosti samostatného fondu uzlů pro každou skladovou položku.

Porovnání možností škálování výpočetních prostředků v AKS

Následující tabulka ukazuje, jak jsou fondy uzlů virtuálních počítačů porovnávány se standardními fondy uzlů škálovací sady.

Typ fondu uzlů Možnosti správy uzlů a škálování
Fond uzlů virtuálních počítačů Můžete přidávat, odebírat nebo aktualizovat uzly ve fondu uzlů. Typy virtuálních počítačů můžou být libovolný virtuální počítač stejného typu rodiny (například D-series, A-Series atd.). Skupiny uzlů virtuálních počítačů také umožňují ruční i automatické škálování napříč více verzemi.
Fond uzlů založený na škálovací sadě virtuálních počítačů Můžete přidat nebo odebrat uzly se stejnou velikostí a typem ve fondu uzlů. Pokud do clusteru přidáte novou velikost virtuálního počítače, musíte vytvořit nový fond uzlů.

Které prostředí škálování výpočetních prostředků mám zvolit v AKS?

V závislosti na potřebách vašich úloh je potřeba zvážit několik prostředí škálování výpočetních prostředků. Podívejte se na případy použití pro každou z těchto věcí:

  • Automatické zřizování uzlů: nejvhodnější pro automatické škálování s více verzemi a inteligentnější a flexibilnější výběr verze virtuálního počítače (včetně více rodin verzí).
  • Skupiny uzlů virtuálních počítačů: nejvhodnější pro víceverzové ruční škálování a podporují víceverzové automatické škálování. Vyžaduje se výběr konkrétní verze pro až pět velikostí pro každý fond uzlů.
  • Virtual Machine Scale Sets: podporují ruční škálování jedné verze a automatické škálování jedné verze. Vyžaduje výběr konkrétní verze a jedné velikosti pro každý fond uzlů.

omezení fondu uzlů Virtual Machines

  • Velikosti virtuálních počítačů zadané ve fondu musí být stejného typu. Například virtuální počítače GPU a jiné než GPU nebo x86 a ARM64 nemůžou být ve stejném fondu uzlů.
  • InifiniBand není k dispozici.
  • Snímek fondu uzlů není podporován.
  • Všechny velikosti virtuálních počítačů vybrané ve fondu uzlů musí být z podobné řady virtuálních počítačů. Nemůžete například kombinovat typ virtuálního počítače řady N-Series s typem virtuálního počítače řady D-Series ve stejném fondu uzlů.
  • Při použití dočasných disků s operačním systémem musíte vybrat všechny velikosti virtuálních počítačů ve fondu uzlů, které podporují stejné dočasné umístění disku s operačním systémem. Protože DiffDiskPlacement je jediná hodnota na úrovni fondu, AKS nemůže v jednom fondu uzlů vyjádřit různá umístění pro jednotlivé velikosti virtuálních počítačů.
  • Fondy uzlů ve službě Virtual Machines umožňují až pět profilů škálování celkem v jednom fondu uzlů. Každý profil ručního nebo automatického škálování určuje jednu velikost virtuálního počítače ze stejné řady virtuálních počítačů.
  • Node pooly Windows nejsou podporovány.

Kompatibilita dočasného umístění disku s operačním systémem

Když přidáte profil škálování, který kombinuje velikosti virtuálních počítačů s různými dočasnými umístěními disků s operačním systémem, operace vytvoření nebo aktualizace selže s chybou InvalidParameter a podkódem EphemeralOSMixedPlacementNotSupported.

Použijte jednu z následujících možností nápravy:

  • Použijte velikosti virtuálních počítačů, které sdílejí stejné dočasné umístění disku s operačním systémem.
  • Rozdělte velikosti virtuálních počítačů do samostatných fondů uzlů, aby každý fond dostal jedno umístění.
  • Používejte spravované disky operačního systému místo dočasných disků operačního systému.

Určení umístění před přidáním profilu škálování

Před přidáním velikosti virtuálního počítače do fondu uzlů Virtual Machines zkontrolujte možnosti SKU v cílovém regionu a ověřte kompatibilitu umístění dočasného disku operačního systému.

  1. Seznam kandidátských velikostí virtuálních počítačů a kontrola klíčových funkcí:

    az vm list-skus \
        --location <region> \
        --size Standard_D \
        --resource-type virtualMachines \
        --query "[].{name:name, capabilities:capabilities[?name=='EphemeralOSDiskSupported' || name=='MaxResourceVolumeMB' || name=='NvmeDiskSizeInMiB']}" \
        --output json
    
  2. Ověřte, že každá vybraná velikost virtuálního počítače podporuje dočasné disky s operačním systémem (EphemeralOSDiskSupported) a určete, kde je místní disk dostupný (MaxResourceVolumeMB pro disk temp/prostředek a NvmeDiskSizeInMiB pro NVMe).

  3. Seskupte velikosti virtuálních počítačů tak, aby každý fond uzlů Virtual Machines používal jedno kompatibilní umístění.

Pokud například jeden profil používá Standard_D4ds_v5 (umístění dočasného disku / disku prostředků) a jiný profil používá Standard_D4ads_v6 (umístění NVMe), ponechte je v samostatných fondech uzlů nebo použijte spravované disky OS.

Důležité

Ověření před nasazením a chování what-if V současné době neexistuje žádné specializované rozhraní API pro ověření před nasazením, které by před nasazením ověřilo smíšené umístění dočasných disků operačního systému napříč profily škálování. az deployment group what-if (ARM what-if) nezaručuje zjištění tohoto konfliktu kompatibility s fondem uzlů. Autoritativní kontrola nastane, když AKS zpracuje požadavek na vytvoření nebo aktualizaci a vrátí EphemeralOSMixedPlacementNotSupported , pokud umístění nejsou kompatibilní.

Požadavky

  • Předplatné Azure. Pokud žádné nemáte, můžete si vytvořit bezplatný účet.
  • Azure CLI nainstalovaná a nakonfigurovaná verze 2.85.0 nebo novější. Verzi zjistíte spuštěním příkazu az --version. Další informace o instalaci nebo upgradu Azure CLI najdete v tématu Instalace Azure CLI.
  • Tato funkce vyžaduje Kubernetes verze 1.27 nebo vyšší. Pokud chcete aktualizovat verzi Kubernetes, viz Upgrade clusteru AKS.

Důležité

Požadavek na vlastní virtuální síť: Pokud nasadíte fond uzlů virtuálních počítačů do vlastní virtuální sítě, musí cluster používat spravovanou identitu přiřazenou uživatelem s alespoň oprávněními přispěvatele sítě v cílové podsíti. Na rozdíl od fondů uzlů škálovací sady virtuálních počítačů se fondy uzlů virtuálních počítačů spoléhají výhradně na identitu clusteru pro operace připojení podsítě a nepoužívají tokeny první strany. Clustery, které používají systémovou spravovanou identitu, selžou při předběžném ověřování při vytváření nebo aktualizaci fondu uzlů virtuálních počítačů ve vlastní virtuální síti a vracejí chybu InvalidParameter. Další informace o konfiguraci spravované identity přiřazené uživatelem pro váš cluster najdete v tématu Použití spravované identity v AKS.

Vytvoření clusteru AKS s uzlovými fondy virtuálních počítačů

Poznámka:

Ve škálovacím profilu je povolena pouze jedna velikost virtuálního počítače a maximální limit je pět profilů škálování virtuálních počítačů celkově pro fond uzlů virtuálních počítačů.

Vytvořte cluster AKS s fondy uzlů virtuálních počítačů pomocí příkazu az aks create se --vm-set-type příznakem nastaveným na "VirtualMachines".

Následující příklad vytvoří cluster myAKSCluster s fondem uzlů Virtual Machines obsahující dva uzly:

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --vm-set-type "VirtualMachines" \
    --vm-sizes "Standard_D4s_v3" \
    --node-count 2

Vytvořte cluster AKS s pooly uzlů virtuálních počítačů ve vlastní virtuální síti

Když nasadíte fondy uzlů Virtual Machines do vlastní virtuální sítě, musíte před vytvořením clusteru vytvořit spravovanou identitu přiřazenou uživatelem a udělit jí oprávnění Přispěvatel sítě v cílové podsíti.

  1. Vytvořte virtuální síť a podsíť.

    az network vnet create \
        --resource-group myResourceGroup \
        --name myVnet \
        --address-prefixes 10.1.0.0/16 \
        --subnet-name mySubnet \
        --subnet-prefix 10.1.0.0/24
    
  2. Získejte ID zdroje podsítě.

    SUBNET_ID=$(az network vnet subnet show \
        --resource-group myResourceGroup \
        --vnet-name myVnet \
        --name mySubnet \
        --query id \
        --output tsv)
    
  3. Vytvořte uživatelsky přiřazenou spravovanou identitu.

    az identity create \
        --name myAKSIdentity \
        --resource-group myResourceGroup
    
  4. Získejte ID objektu zabezpečení a ID prostředku spravované identity.

    IDENTITY_PRINCIPAL_ID=$(az identity show \
        --name myAKSIdentity \
        --resource-group myResourceGroup \
        --query principalId \
        --output tsv)
    
    IDENTITY_RESOURCE_ID=$(az identity show \
        --name myAKSIdentity \
        --resource-group myResourceGroup \
        --query id \
        --output tsv)
    
  5. Přiřaďte spravované identitě roli Network Contributor pro cílovou podsíť.

    az role assignment create \
        --assignee $IDENTITY_PRINCIPAL_ID \
        --role "Network Contributor" \
        --scope $SUBNET_ID
    

    Rozšíření oprávnění udělených spravované identitě clusteru může trvat až 60 minut.

  6. Před vytvořením clusteru ověřte, že v cílové podsíti existuje přiřazení role.

    az role assignment list \
        --assignee $IDENTITY_PRINCIPAL_ID \
        --role "Network Contributor" \
        --scope $SUBNET_ID \
        --query "[].{Role:roleDefinitionName, Scope:scope}" \
        --output table
    

    Pokračujte, jakmile se ve výstupu zobrazí role Network Contributor v rozsahu cílové podsítě.

  7. Vytvořte cluster AKS s fondy uzlů virtuálních počítačů ve vlastní virtuální síti.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --vm-set-type "VirtualMachines" \
        --vm-sizes "Standard_D4s_v3" \
        --node-count 2 \
        --vnet-subnet-id $SUBNET_ID \
        --assign-identity $IDENTITY_RESOURCE_ID
    

Přidání fondu uzlů virtuálních počítačů do existujícího clusteru

Přidejte fond uzlů virtuálních počítačů do existujícího clusteru pomocí příkazu az aks nodepool add s příznakem --vm-set-type nastaveným na "VirtualMachines".

Následující příklad přidá fond uzlů virtuálních počítačů s názvem myvmpool do clusteru myAKSCluster . Pool uzlů vytvoří ManualScaleProfile s nastavením --vm-sizes na Standard_D4s_v3 a --node-count s hodnotou 3.

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --vm-set-type "VirtualMachines" \
    --vm-sizes "Standard_D4s_v3" \
    --node-count 3

Přidání profilu ručního škálování do fondu uzlů

Přidejte do fondu uzlů profil ručního škálování pomocí az aks nodepool manual-scale add, s příznakem --vm-sizes nastaveným na "Standard_D2s_v3" a node-count nastaveným na 2.

Následující příklad přidá profil pro ruční škálování do fondu uzlů myvmpool v clusteru myAKSCluster. Fond uzlů obsahuje dva uzly s VM SKU Standard_D2s_v3.

az aks nodepool manual-scale add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --vm-sizes "Standard_D2s_v3" \
    --node-count 2

Aktualizace existujícího profilu ručního škálování

Aktualizujte existující profil ručního škálování ve fondu uzlů pomocí příkazu az aks nodepool manual-scale update s příznakem --vm-sizes nastaveným na "Standard_D2s_v3".

Poznámka:

Pomocí parametru --current-vm-sizes určete velikost existujícího fondu uzlů, který chcete aktualizovat. Můžete aktualizovat --vm-sizes nebo --node-count. Při použití jiných nástrojů nebo rozhraní REST API musíte při aktualizaci profilu škálování fondu uzlů předat úplné agentPoolProfiles.virtualMachinesProfile.scale pole.

Následující příklad aktualizuje profil ručního škálování ve fondu uzlů myvmpool v clusteru myAKSCluster. Příkaz aktualizuje počet uzlů na pět a změní SKU virtuálního počítače z Standard_D4s_v3 na Standard_D8s_v3:

az aks nodepool manual-scale update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --current-vm-sizes "Standard_D4s_v3" \
    --vm-sizes "Standard_D8s_v3" \
    --node-count 5

Odstranění profilu ručního škálování

Pomocí příkazu odstraňte existující profil ručního az aks nodepool manual-scale delete škálování.

Poznámka:

Parametr --current-vm-sizes určuje velikost existujícího fondu uzlů, který se má odstranit. Při použití jiných nástrojů nebo rozhraní REST API k aktualizaci profilu škálování fondu uzlů předejte úplné agentPoolProfiles.virtualMachinesProfile.scale pole.

Následující příklad odstraní profil ručního škálování pro SKU virtuálního počítače ve Standard_D8s_v3 fondu uzlů.

az aks nodepool manual-scale delete \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --current-vm-sizes "Standard_D8s_v3"

Automatické škálování clusteru s fondy uzlů Virtual Machines

Fondy uzlů virtuálních počítačů podporují automatické škálování clusteru. Tato podpora umožňuje automatické škálování pro fondy uzlů se stejnou velikostí virtuálních počítačů i pro fondy uzlů s více velikostmi virtuálních počítačů. Tuto funkci můžete povolit pomocí příznaku --enable-cluster-autoscaler při vytváření clusteru, při přidávání nového fondu uzlů nebo při aktualizaci existujícího ručního fondu uzlů.

Při použití automatického škálování clusteru s fondy uzlů virtuálního počítače je chování následující:

  • Horizontální navýšení kapacity: automatické škálování reaguje na tlak způsobený čekajícími pody a může navýšit počet uzlů ve fondu uzlů s více velikostmi virtuálních počítačů.
  • Škálování dolů: autoscaler vybere konkrétní uzel podle vytížení uzlu. Můžete nakonfigurovat scale-down-utilization-threshold tak, aby určovalo, kdy automatické škálování clusteru spustí akci škálování. Další informace o konfiguraci automatického škálování najdete v dokumentaci k automatickému škálování clusteru .

Omezení

  • Tato funkce je dostupná jenom ve veřejném cloudu.
  • Uzly GPU se v současné době nepodporují.

Vytvořte cluster AKS s fondy uzlů Virtual Machines a s povoleným automatickým škálováním clusteru

  • Vytvořte cluster AKS s fondy uzlů virtuálních počítačů pomocí příkazu s az aks create příznakem nastaveným na --vm-set-type a s příznakem "VirtualMachines".--enable-cluster-autoscaler

Následující příklad vytvoří cluster myAKSCluster s fondem uzlů Virtual Machines, který používá velikost Standard_D4s_v3uzlu, minimální počet uzlů 2 a maximální počet uzlů 5:

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --vm-set-type "VirtualMachines" \
    --node-vm-size "Standard_D4s_v3" \
    --enable-cluster-autoscaler \
    --min-count 2 \
    --max-count 5

Přidejte pool uzlů virtuálních počítačů s povoleným automatickým škálováním clusteru do existujícího clusteru.

  • Pomocí příkazu az aks nodepool add s nastavením příznaku --vm-set-type a s příznakem "VirtualMachines" vytvořte fond uzlů virtuálních počítačů --enable-cluster-autoscaler.

Následující příklad přidá do clusteru myAKSCluster fond uzlů virtuálních počítačů myvmpool s povoleným automatickým škálováním, při použití velikosti virtuálního počítače "Standard_D4s_v3", s minimálním počtem uzlů 2 a maximálním počtem uzlů 5:

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --vm-set-type "VirtualMachines" \
    --node-vm-size "Standard_D4s_v3" \
    --enable-cluster-autoscaler \
    --min-count 2 \
    --max-count 5

Aktualizace nastavení automatického škálování clusteru pro fond uzlů Virtual Machines

Následující příklad aktualizuje nastavení fondu uzlů virtuálních počítačů myvmpool v clusteru s názvem myAKSCluster pomocí velikosti virtuálního počítače Standard_D4s_v3:

az aks nodepool auto-scale update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --current-node-vm-size "Standard_D4s_v3" \
    --min-count 3 \
    --max-count 7

Přepnutí Virtual Machines profilů škálování fondu uzlů z ručního režimu do režimu automatického škálování

Následující příklad aktualizuje fond uzlů Virtual Machines myvmpool v clusteru s názvem myAKSCluster a převede všechny profily ručního škálování na profily automatického škálování se stejným minimálním a maximálním počtem uzlů:

az aks nodepool update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --enable-cluster-autoscaler \
    --min-count 2 \
    --max-count 5

Zakázání automatického škálování clusteru ve fondu uzlů Virtual Machines

Automatické škálování clusteru můžete zakázat nebo přepnout všechny profily škálování ve fondu uzlů virtuálního počítače z Auto režimu do Manual režimu.

Následující příklad zakáže automatické škálování clusteru pro fond uzlů Virtual Machines myvmpool v clusteru s názvem myAKSCluster. Přepne všechny profily škálování z Auto režimu do Manual režimu:

az aks nodepool update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --disable-cluster-autoscaler

Další kroky

V tomto článku jste zjistili, jak používat fondy uzlů virtuálních počítačů v AKS. Další informace o fondech uzlů v AKS najdete v tématu Vytvoření fondů uzlů.