Kurz: Automatické škálování škálovací sady virtuálních počítačů pomocí Azure CLI
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
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shellu.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Přihlášení pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
- 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í.
Pokud se chcete připojit k jednotlivé instanci, přečtěte si kurz : 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 zátěžových pracovních procesů, které generují zatížení procesoru. 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ů