Kurz: Automatické škálování škálovací sady virtuálních počítačů pomocí Azure CLI

Upozornění

Tento článek odkazuje na CentOS, linuxovou distribuci, která se blíží stavu Konec životnosti (EOL). Zvažte své použití a odpovídajícím způsobem naplánujte. Další informace najdete v doprovodných materiálech CentOS End Of Life.

Při vytváření škálovací sady definujete počet instancí virtuálních počítačů, které chcete spouštět. S měnícími se požadavky na aplikaci můžete počet instancí virtuálních počítačů automaticky zvyšovat nebo snižovat. Možnost automatického škálování umožňuje držet krok s požadavky zákazníků nebo reagovat na změny výkonu aplikace v průběhu jejího životního cyklu. V tomto kurzu se naučíte:

  • Použití automatického škálování u škálovací sady
  • Vytvoření a použití pravidel automatického škálování
  • Zátěžový test instancí virtuálních počítačů a aktivace pravidel automatického škálování
  • Opětovné automatické horizontální snížení kapacity po snížení požadavků

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

Požadavky

  • Tento kurz vyžaduje verzi 2.0.32 nebo novější azure CLI. Pokud používáte Azure Cloud Shell, je už nainstalovaná nejnovější verze.

Vytvoření škálovací sady

Vytvořte skupinu prostředků pomocí příkazu az group create.

az group create --name myResourceGroup --location eastus

Teď vytvořte škálovací sadu virtuálních počítačů pomocí příkazu az vmss create. Následující příklad vytvoří škálovací sadu s počtem instancí 2 a vygeneruje klíče SSH, pokud neexistují.

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image <SKU image> \
  --orchestration-mode Flexible \
  --instance-count 2 \
  --admin-username azureuser \
  --generate-ssh-keys

Definice profilu automatického škálování

Pokud chcete povolit automatické škálování na škálovací sadě, je nejdříve potřeba definovat profil automatického škálování. Tento profil definuje výchozí, minimální a maximální kapacitu škálovací sady. Tato omezení umožňují řídit náklady tím, že neustále nevytvářejí instance virtuálních počítačů a vyrovnávají přijatelný výkon s minimálním počtem instancí, které zůstávají v události škálování. Vytvořte profil automatického škálování pomocí příkazu az monitor autoscale create. Následující příklad nastaví výchozí a minimální kapacitu na 2 instance virtuálních počítačů a maximální kapacitu na 10:

az monitor autoscale create \
  --resource-group myResourceGroup \
  --resource myScaleSet \
  --resource-type Microsoft.Compute/virtualMachineScaleSets \
  --name autoscale \
  --min-count 2 \
  --max-count 10 \
  --count 2

Vytvoření pravidla automatického horizontálního navýšení kapacity

Pokud se požadavky na vaši aplikaci zvýší, zvýší se i zatížení instancí virtuálních počítačů ve škálovací sadě. Pokud je toto zvýšené zatížení konzistentní, a nejedná se pouze o krátkou poptávku, můžete nakonfigurovat pravidla automatického škálování pro zvýšení počtu instancí virtuálních počítačů ve škálovací sadě. Po vytvoření těchto instancí virtuálních počítačů a nasazení aplikací do nich začne škálovací sada distribuovat provoz prostřednictvím nástroje pro vyrovnávání zatížení. Určujete, jaké metriky se mají monitorovat, jak dlouho musí zatížení aplikace splňovat danou prahovou hodnotu a kolik instancí virtuálních počítačů se má přidat do škálovací sady.

Vytvořte pravidlo pomocí pravidla az monitor autoscale, které zvýší počet instancí virtuálních počítačů ve škálovací sadě, pokud je průměrné zatížení procesoru větší než 70 % během 5minutového období. Když se pravidlo aktivuje, počet instancí virtuálních počítačů se zvýší o tři.

az monitor autoscale rule create \
  --resource-group myResourceGroup \
  --autoscale-name autoscale \
  --condition "Percentage CPU > 70 avg 5m" \
  --scale out 3

Vytvoření pravidla automatického horizontálního snížení kapacity

Večer nebo o víkendu se požadavky na vaši aplikaci můžou snížit. Pokud je toto snížené zatížení po určitou dobu konzistentní, můžete nakonfigurovat pravidla automatického škálování pro snížení počtu instancí virtuálních počítačů ve škálovací sadě. Tato akce horizontálního snížení kapacity sníží náklady na provoz škálovací sady, protože budete spouštět pouze takový počet instancí, který je potřeba ke zpracování aktuálních požadavků.

Pomocí příkazu az monitor autoscale rule create vytvořte další pravidlo, které sníží počet instancí virtuálních počítačů ve škálovací sadě, pokud se průměrné zatížení CPU sníží pod 30 % po dobu 5 minut. Následující příklad definuje pravidlo pro škálování počtu instancí virtuálních počítačů na méně instancí o jednu.

az monitor autoscale rule create \
  --resource-group myResourceGroup \
  --autoscale-name autoscale \
  --condition "Percentage CPU < 30 avg 5m" \
  --scale in 1

Generování zatížení CPU ve škálovací sadě

Pokud chcete pravidla automatického škálování otestovat, vygenerujte nějaké zatížení CPU instancí virtuálních počítačů ve škálovací sadě. Toto simulované zatížení CPU způsobí, že pravidla automatického škálování provedou škálování na více instancí a zvýší počet instancí virtuálních počítačů. S následným snížením zatížení CPU pravidla automatického škálování provedou škálování počtu instancí virtuálních počítačů na méně instancí.

Informace o připojení k jednotlivým instancím najdete v kurzu: Připojení k instancím škálovací sady virtuálních počítačů.

Po přihlášení nainstalujte nástroj stress nebo stress-ng . Spusťte 10 pracovních procesů stress, které vygenerují zatížení CPU. Tyto pracovní procesy budou spuštěné 420 sekund, což je dostatečná doba na to, aby pravidla automatického škálování implementovala požadovanou akci.

sudo apt-get update
sudo apt-get -y install stress
sudo stress --cpu 10 --timeout 420 &

Jakmile nástroj stress zobrazí podobný výstup: stress: info: [2688] dispatching hogs: 10 cpu, 0 io, 0 vm, 0 hdd, stisknutím klávesy Enter se vraťte do příkazového řádku.

Pokud chcete potvrdit, že nástroj stress generuje zatížení CPU, prozkoumejte zatížení aktivního systému pomocí nástroje top:

top

Ukončete nástroj top a pak ukončete připojení k instanci virtuálního počítače. Nástroj stress zůstane na instanci virtuálního počítače spuštěný.

Ctrl-c
exit

Připojte se k druhé instanci virtuálního počítače s použitím čísla portu uvedeného ve výstupu předchozího příkazu az vmss list-instance-connection-info:

ssh azureuser@13.92.224.66 -p 50003

Nainstalujte a spusťte zátěž nebo zátěž a pak na této druhé instanci virtuálního počítače spusťte deset pracovních procesů.

sudo apt-get -y install stress
sudo stress --cpu 10 --timeout 420 &

Jakmile nástroj stress zobrazí podobný výstup: stress: info: [2713] dispatching hogs: 10 cpu, 0 io, 0 vm, 0 hdd, opět se stisknutím klávesy Enter vraťte do příkazového řádku.

Ukončete připojení k druhé instanci virtuálního počítače. Nástroj stress zůstane na instanci virtuálního počítače spuštěný.

exit

Monitorování aktivních pravidel automatického škálování

K monitorování počtu instancí virtuálních počítačů ve škálovací sadě použijte nástroj watch. Zahájení procesu škálování na více instancí na základě zatížení CPU generovaného nástrojem stress na jednotlivých instancích virtuálních počítačů pravidly automatického škálování trvá přibližně 5 minut:

watch az vmss list-instances \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --output table

Po dosažení prahové hodnoty CPU pravidla automatického škálování navýší počet instancí virtuálních počítačů ve škálovací sadě. Následující výstup ukazuje tři virtuální počítače vytvořené při automatickém horizontálním navýšení kapacity škálovací sady:

Every 2.0s: az vmss list-instances --resource-group myResourceGroup --name myScaleSet --output table

  InstanceId  LatestModelApplied    Location    Name          ProvisioningState    ResourceGroup    VmId
------------  --------------------  ----------  ------------  -------------------  ---------------  ------------------------------------
           1  True                  eastus      myScaleSet_1  Succeeded            myResourceGroup  4f92f350-2b68-464f-8a01-e5e590557955
           2  True                  eastus      myScaleSet_2  Succeeded            myResourceGroup  d734cd3d-fb38-4302-817c-cfe35655d48e
           4  True                  eastus      myScaleSet_4  Creating             myResourceGroup  061b4c90-0d73-49fc-a066-19eab0b3d95c
           5  True                  eastus      myScaleSet_5  Creating             myResourceGroup  4beff8b9-4e65-40cb-9652-43899309da27
           6  True                  eastus      myScaleSet_6  Creating             myResourceGroup  9e4133dd-2c57-490e-ae45-90513ce3b336

Jakmile se nástroj stress na původních instancích virtuálních počítačů zastaví, průměrné zatížení CPU se vrátí do normálu. Po dalších 5 minutách pak pravidla automatického škálování škálují počet instancí virtuálních počítačů na méně instancí. Akce horizontálního snížení kapacity odeberou nejprve instance virtuálních počítačů s nejvyšším ID. Když škálovací sada používá skupiny nebo zóny dostupnosti, akce pro horizontální snížení kapacity se mezi tyto instance virtuálních počítačů rovnoměrně rozloží. Následující příklad výstupu ukazuje jednu instanci virtuálního počítače odstraněnou při automatickém horizontálním snížení kapacity škálovací sady:

6  True                  eastus      myScaleSet_6  Deleting             myResourceGroup  9e4133dd-2c57-490e-ae45-90513ce3b336

Stisknutím Ctrl-c ukončete nástroj watch. Škálovací sada se nadále bude každých 5 minut škálovat na méně instancí odebráním jedné instance virtuálního počítače, dokud se nedosáhne minimálního počtu 2 instancí.

Vyčištění prostředků

Pokud chcete odebrat škálovací sadu a další prostředky, odstraňte skupinu prostředků a všechny její prostředky pomocí příkazu az group delete. Parametr --no-wait vrátí řízení na příkazový řádek bez čekání na dokončení operace. Parametr --yes potvrdí, že chcete prostředky odstranit, aniž by se na to zobrazoval další dotaz.

az group delete --name myResourceGroup --yes --no-wait

Další kroky

V tomto kurzu jste zjistili, jak automaticky škálovat škálovací sady na méně nebo více instancí pomocí Azure CLI:

  • Použití automatického škálování u škálovací sady
  • Vytvoření a použití pravidel automatického škálování
  • Zátěžový test instancí virtuálních počítačů a aktivace pravidel automatického škálování
  • Opětovné automatické horizontální snížení kapacity po snížení požadavků