Použití vlastních zásad škálování na méně instancí se škálovacími sadami virtuálních počítačů Azure

Nasazení škálovací sady virtuálních počítačů je možné škálovat nebo škálovat na základě pole metrik, včetně metrik definovaných platformou a uživatelem definovaných vlastních metrik. Zatímco se při škálování na více instancí vytváří nové virtuální počítače založené na modelu škálovací sady, škálování na méně instancí ovlivňuje spouštění virtuálních počítačů, které mohou mít při vývoji úloh škálovací sady různé konfigurace nebo funkce.

Funkce zásad škálování na více instancí poskytuje uživatelům způsob konfigurace pořadí škálování virtuálních počítačů prostřednictvím tří konfigurací horizontálního škálování:

  1. Výchozí
  2. NewestVM
  3. OldestVM

Výchozí zásady horizontálního snížení kapacity

Flexibilní orchestrace

Ve výchozím nastavení použije škálovací sada virtuálních počítačů tuto zásadu k určení, ve kterých instancích se budou škálovat. U výchozích zásad jsou virtuální počítače vybrané pro horizontální navýšení kapacity v následujícím pořadí:

  1. Vyvážení virtuálních počítačů napříč zónami dostupnosti (pokud je škálovací sada nasazená v zónové konfiguraci)
  2. Vyrovnávání virtuálních počítačů napříč doménami selhání (nejlepší úsilí)
  3. Odstranění virtuálního počítače s nejvyšším ID instance

Uživatelé nemusí zadávat zásady horizontálního snížení kapacity, pokud chtějí, aby se sledovalo výchozí pořadí.

Jednotná orchestrace

Ve výchozím nastavení použije škálovací sada virtuálních počítačů tuto zásadu k určení, ve kterých instancích se budou škálovat. U výchozích zásad jsou virtuální počítače vybrané pro horizontální navýšení kapacity v následujícím pořadí:

  1. Vyvážení virtuálních počítačů napříč zónami dostupnosti (pokud je škálovací sada nasazená v zónové konfiguraci)
  2. Vyrovnávání virtuálních počítačů napříč doménami selhání (nejlepší úsilí)
  3. Odstranění virtuálního počítače s nejvyšším ID instance

Uživatelé nemusí zadávat zásady horizontálního snížení kapacity, pokud chtějí, aby se sledovalo výchozí pořadí.

Vyrovnávání mezi zónami dostupnosti nebo doménami selhání nepřesunuje instance napříč zónami dostupnosti nebo doménami selhání. Vyrovnávání se dosahuje odstraněním virtuálních počítačů z nevyvážených zón dostupnosti nebo domén selhání, dokud nedojde k vyvážení distribuce virtuálních počítačů.

Nejnovější zásady škálování na více virtuálních počítačů

Tato zásada po vyvážení virtuálních počítačů napříč zónami dostupnosti (pro zónová nasazení) odstraní nejnovější nebo naposledy vytvořený virtuální počítač ve škálovací sadě. Povolení této zásady vyžaduje změnu konfigurace v modelu škálovací sady virtuálních počítačů.

Nejstarší zásady škálování na více virtuálních počítačů

Tato zásada odstraní nejstarší vytvořený virtuální počítač ve škálovací sadě po vyrovnávání virtuálních počítačů napříč zónami dostupnosti (pro zónová nasazení). Povolení této zásady vyžaduje změnu konfigurace v modelu škálovací sady virtuálních počítačů.

Povolení zásad škálování na více instancí

Zásada horizontálního snížení kapacity je definována v modelu škálovací sady virtuálních počítačů. Jak je uvedeno v předchozích částech, při použití zásad "NejnovějšíVM" a "NejstaršíVM" se vyžaduje definice zásad škálování na více instancí. Škálovací sada virtuálních počítačů automaticky použije zásadu horizontálního snížení kapacity, pokud se v modelu škálovací sady nenajde žádná definice zásad škálování na více instancí.

Zásady škálování na více instancí je možné definovat v modelu škálovací sady virtuálních počítačů následujícími způsoby:

portál Azure

Následující kroky definují zásadu horizontálního snížení kapacity při vytváření nové škálovací sady.

  1. Přejděte do škálovacích sad virtuálních počítačů.
  2. Vyberte + Přidat a vytvořte novou škálovací sadu.
  3. Přejděte na kartu Měřítko .
  4. Vyhledejte oddíl zásady horizontálního snížení kapacity.
  5. V rozevíracím seznamu vyberte zásadu horizontálního snížení kapacity.
  6. Po vytvoření nové škálovací sady vyberte tlačítko Zkontrolovat a vytvořit .

Pomocí rozhraní API

Spuštění put ve škálovací sadě virtuálních počítačů pomocí rozhraní API 2019-03-01:

PUT
https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<myRG>/providers/Microsoft.Compute/virtualMachineScaleSets/<myVMSS>?api-version=2019-03-01

{ 
"location": "<VMSS location>", 
    "properties": { 
        "scaleInPolicy": {  
            "rules": ["OldestVM"]  
        } 
    }    
} 

Azure PowerShell

Důležité

Od listopadu 2023 se škálovací sady virtuálních počítačů vytvořené pomocí PowerShellu a Azure CLI ve výchozím nastavení nastaví do flexibilního režimu orchestrace, pokud není zadaný žádný režim orchestrace. Další informace o této změně a akcích, které byste měli provést, najdete v tématu Zásadní změna pro zákazníky PowerShellu nebo rozhraní příkazového řádku VMSS – Microsoft Community Hub.

Vytvořte skupinu prostředků a pak vytvořte novou škálovací sadu se sadou zásad horizontálního snížení kapacity jako NejstaršíVM.

New-AzResourceGroup -ResourceGroupName "myResourceGroup" -Location "<VMSS location>"
New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -Location "<VMSS location>" `
  -VMScaleSetName "myScaleSet" `
  -OrchestrationMode "Flexible" `
  -ScaleInPolicy “OldestVM”

Azure CLI

Důležité

Od listopadu 2023 se škálovací sady virtuálních počítačů vytvořené pomocí PowerShellu a Azure CLI ve výchozím nastavení nastaví do flexibilního režimu orchestrace, pokud není zadaný žádný režim orchestrace. Další informace o této změně a akcích, které byste měli provést, najdete v tématu Zásadní změna pro zákazníky PowerShellu nebo rozhraní příkazového řádku VMSS – Microsoft Community Hub.

Následující příklad přidá zásadu horizontálního snížení kapacity při vytváření nové škálovací sady. Nejprve vytvořte skupinu prostředků a pak vytvořte novou škálovací sadu se zásadou horizontálního snížení kapacity jako nejstarší virtuální počítač.

az group create --name <myResourceGroup> --location <VMSSLocation>
az vmss create \
  --resource-group <myResourceGroup> \
  --name <myVMScaleSet> \
  --orchestration-mode flexible \
  --image Ubuntu2204 \
  --admin-username <azureuser> \
  --generate-ssh-keys \
  --scale-in-policy OldestVM

Použití šablony

Do šablony v části Vlastnosti přidejte scaleInPolicy vlastnost:

"scaleInPolicy": {  
      "rules": ["OldestVM"]  
}

Tyto bloky kódu určují, že škálovací sada virtuálních počítačů odstraní nejstarší virtuální počítač ve škálovací sadě s vyrovnáváním zóny při aktivaci horizontálního snížení kapacity (prostřednictvím automatického škálování nebo ručního odstranění).

Pokud škálovací sada virtuálních počítačů není vyvážená, škálovací sada nejprve odstraní virtuální počítače napříč nevyrovnanou zónou. V rámci nevyvážených zón škálovací sada pomocí zadané zásady škálování určí, ve kterém virtuálním počítači se má škálovat. V takovém případě v rámci nevyvážené zóny škálovací sada vybere nejstarší virtuální počítač v této zóně, který se má odstranit.

V případě jiné než zónové škálovací sady virtuálních počítačů zásada vybere nejstarší virtuální počítač ve škálovací sadě pro odstranění.

Stejný postup platí při použití zásad škálování na více virtuálních počítačů s nejnovějším virtuálním počítačem.

Úprava zásad škálování na více instancí

Úprava zásad škálování na více instancí se řídí stejným postupem jako použití zásad škálování na více instancí. Pokud chcete například změnit zásadu z nejstaršího virtuálního počítače na NejnovějšíVM, můžete to udělat takto:

portál Azure

Zásady škálování existující škálovací sady můžete upravit prostřednictvím webu Azure Portal.

  1. V existující škálovací sadě virtuálních počítačů vyberte v nabídce na levé straně možnost Škálování .
  2. Vyberte kartu Zásady škálování na více instancí.
  3. V rozevíracím seznamu vyberte zásadu horizontálního snížení kapacity.
  4. Až budete hotovi, zvolte tlačítko Uložit.

Pomocí rozhraní API

Spuštění put ve škálovací sadě virtuálních počítačů pomocí rozhraní API 2019-03-01:

PUT
https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<myRG>/providers/Microsoft.Compute/virtualMachineScaleSets/<myVMSS>?api-version=2019-03-01 

{ 
"location": "<VMSS location>", 
    "properties": { 
        "scaleInPolicy": {  
            "rules": ["NewestVM"]  
        } 
    }    
}

Azure PowerShell

Aktualizujte zásadu horizontálního snížení kapacity existující škálovací sady:

Update-AzVmss `
 -ResourceGroupName "myResourceGroup" `
 -VMScaleSetName "myScaleSet" `
 -ScaleInPolicy “OldestVM”

Azure CLI

Následuje příklad aktualizace zásad škálování existující škálovací sady:

az vmss update \  
  --resource-group <myResourceGroup> \
  --name <myVMScaleSet> \
  --scale-in-policy OldestVM

Použití šablony

V šabloně v části Vlastnosti upravte šablonu následujícím způsobem a znovu nasaďte:

"scaleInPolicy": {  
      "rules": ["NewestVM"]  
} 

Stejný postup platí, pokud se rozhodnete změnit "NejnovějšíVM" na Výchozí nebo NejstaršíVM.

Ochrana instancí a zásady škálování na více instancí

Škálovací sady virtuálních počítačů poskytují dva typy ochrany instancí:

  1. Ochrana před horizontálním snížením kapacity
  2. Ochrana před akcemi škálovací sady

Chráněný virtuální počítač se neodstraní prostřednictvím akce horizontálního snížení kapacity bez ohledu na použitou zásadu škálování. Pokud je například VM_0 (nejstarší virtuální počítač ve škálovací sadě) chráněný před horizontálním navýšením kapacity a škálovací sada má povolenou zásadu horizontálního snížení kapacity "NejstaršíVM", VM_0 se nepovažuje za škálování, i když se jedná o nejstarší virtuální počítač ve škálovací sadě.

Chráněný virtuální počítač může kdykoli ručně odstranit uživatel bez ohledu na zásady škálování povolené ve škálovací sadě.

Příklady použití

Následující příklady ukazují, jak škálovací sada virtuálních počítačů vybere virtuální počítače, které se mají odstranit při aktivaci události horizontálního snížení kapacity. Virtuální počítače s nejvyšším ID instancí se předpokládají jako nejnovější virtuální počítače ve škálovací sadě a virtuální počítače s nejmenšími ID instancí se předpokládají jako nejstarší virtuální počítače ve škálovací sadě.

Nejstarší zásady škálování na více virtuálních počítačů

Událost ID instancí v zóně1 ID instancí v zóně2 ID instancí v zóně3 Výběr horizontálního snížení kapacity
Počáteční 3, 4, 5, 10 2, 6, 9, 11 1, 7, 8
Horizontální snížení kapacity 3, 4, 5, 10 2, 6, 9, 11 1, 7, 8 Vyberte si mezi zónou 1 a 2, i když zóna 3 má nejstarší virtuální počítač. Odstraňte virtuální počítač 2 ze zóny 2, protože se jedná o nejstarší virtuální počítač v této zóně.
Horizontální snížení kapacity 3, 4, 5, 10 6, 9, 11 1, 7, 8 Zvolte zónu 1, i když zóna 3 má nejstarší virtuální počítač. Odstraňte virtuální počítač VM3 ze zóny 1, protože se jedná o nejstarší virtuální počítač v této zóně.
Horizontální snížení kapacity 4, 5, 10 6, 9, 11 1, 7, 8 Zóny jsou vyváženy. Odstraňte virtuální počítač v zóně 3, protože se jedná o nejstarší virtuální počítač ve škálovací sadě.
Horizontální snížení kapacity 4, 5, 10 6, 9, 11 7, 8 Zvolte mezi zónou 1 a zónou 2. Odstraňte virtuální počítač VM4 v zóně 1, protože se jedná o nejstarší virtuální počítač napříč dvěma zónami.
Horizontální snížení kapacity 5, 10 6, 9, 11 7, 8 Zvolte zónu 2, i když zóna 1 má nejstarší virtuální počítač. Odstraňte virtuální počítač VM6 v zóně 1, protože se jedná o nejstarší virtuální počítač v této zóně.
Horizontální snížení kapacity 5, 10 9, 11 7, 8 Zóny jsou vyváženy. Odstraňte virtuální počítač VM5 v zóně 1, protože se jedná o nejstarší virtuální počítač ve škálovací sadě.

V případě jiných než zónových škálovacích sad virtuálních počítačů zásada vybere nejstarší virtuální počítač ve škálovací sadě pro odstranění. Pro odstranění se přeskočí jakýkoli "chráněný" virtuální počítač.

Nejnovější zásady škálování na více virtuálních počítačů

Událost ID instancí v zóně1 ID instancí v zóně2 ID instancí v zóně3 Výběr horizontálního snížení kapacity
Počáteční 3, 4, 5, 10 2, 6, 9, 11 1, 7, 8
Horizontální snížení kapacity 3, 4, 5, 10 2, 6, 9, 11 1, 7, 8 Zvolte mezi zónou 1 a 2. Odstraňte virtuální počítač VM11 ze zóny 2, protože se jedná o nejnovější virtuální počítač napříč dvěma zónami.
Horizontální snížení kapacity 3, 4, 5, 10 2, 6, 9 1, 7, 8 Zvolte zónu 1, protože má více virtuálních počítačů než ostatní dvě zóny. Odstraňte virtuální počítač VM10 ze zóny 1, protože se jedná o nejnovější virtuální počítač v této zóně.
Horizontální snížení kapacity 3, 4, 5 2, 6, 9 1, 7, 8 Zóny jsou vyváženy. Odstraňte virtuální počítač v zóně 2, protože se jedná o nejnovější virtuální počítač ve škálovací sadě.
Horizontální snížení kapacity 3, 4, 5 2, 6 1, 7, 8 Vyberte si mezi zónou 1 a zónou 3. Odstraňte virtuální počítač VM8 v zóně 3, protože se jedná o nejnovější virtuální počítač v této zóně.
Horizontální snížení kapacity 3, 4, 5 2, 6 1, 7 Zvolte zónu 1, i když má zóna 3 nejnovější virtuální počítač. Odstraňte virtuální počítač VM5 v zóně 1, protože se jedná o nejnovější virtuální počítač v této zóně.
Horizontální snížení kapacity 3, 4 2, 6 1, 7 Zóny jsou vyváženy. Odstraňte virtuální počítač 7 v zóně 3, protože se jedná o nejnovější virtuální počítač ve škálovací sadě.

V případě jiných než zónových škálovacích sad virtuálních počítačů zásada vybere nejnovější virtuální počítač ve škálovací sadě pro odstranění. Pro odstranění se přeskočí jakýkoli "chráněný" virtuální počítač.

Odstraňování potíží

  1. Nepovedlo se povolit scaleInPolicy Pokud se zobrazí chyba BadRequest s chybovou zprávou "Nepodařilo se najít člena scaleInPolicy u objektu typu properties", zkontrolujte verzi rozhraní API použitou pro škálovací sadu virtuálních počítačů. Pro tuto funkci se vyžaduje rozhraní API verze 2019-03-01 nebo vyšší.

  2. Nesprávný výběr virtuálních počítačů pro horizontální snížení kapacity Najdete v příkladech v tomto dokumentu. Pokud je škálovací sada virtuálních počítačů zónovým nasazením, zásada horizontálního snížení kapacity se použije jako první na nevyrovnané zóny a po vyvážení zóny se pak napříč škálovací sadou. Pokud pořadí horizontálního snížení kapacity není konzistentní s příklady uvedenými tady, vytvořte dotaz s týmem škálovací sady virtuálních počítačů pro řešení potíží.

Další kroky

Zjistěte, jak nasadit aplikaci ve škálovacích sadách virtuálních počítačů.