Sdílet prostřednictvím


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í
  • Simulace zatížení procesoru pro aktivaci pravidel automatického škálování
  • Monitorování akcí automatického škálování při změnách poptávky

Pokud nemáte účet Azure, vytvořte si bezplatný účet 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řte škálovací sadu

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

export RANDOM_SUFFIX=$(openssl rand -hex 3)
export REGION="WestUS2"
export MY_RESOURCE_GROUP_NAME="myResourceGroup$RANDOM_SUFFIX"
az group create --name $MY_RESOURCE_GROUP_NAME --location $REGION

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, vygeneruje klíče SSH, pokud neexistují, a používá platnou image Ubuntu2204.

export MY_SCALE_SET_NAME="myScaleSet$RANDOM_SUFFIX"
az vmss create \
  --resource-group $MY_RESOURCE_GROUP_NAME \
  --name $MY_SCALE_SET_NAME \
  --image Ubuntu2204 \
  --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 2 instancí virtuálních počítačů a maximálně 10:

az monitor autoscale create \
  --resource-group $MY_RESOURCE_GROUP_NAME \
  --resource $MY_SCALE_SET_NAME \
  --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 ne jen krátká poptávka, můžete nakonfigurovat pravidla automatického škálování, aby se zvýšil počet instancí virtuálních počítačů. Když se tyto instance vytvoří a vaše aplikace se nasadí, škálovací sada začne distribuovat provoz do nich prostřednictvím nástroje pro vyrovnávání zatížení. Určujete, které metriky se mají monitorovat, jak dlouho musí zatížení splňovat danou prahovou hodnotu a kolik instancí virtuálních počítačů se má přidat.

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

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

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

Když se poptávka po aplikacích sníží, zatížení instancí virtuálních počítačů se sníží. Pokud se toto snížené zatížení po určitou dobu zachová, můžete nakonfigurovat pravidla automatického škálování tak, aby se snížil počet instancí virtuálních počítačů ve škálovací sadě. Tato akce škálování pomáhá snížit náklady spuštěním pouze potřebného počtu instancí potřebných ke splnění aktuální poptávky.

Vytvořte další pravidlo pomocí příkazu az monitor autoscale rule create , které sníží počet instancí virtuálních počítačů, když průměrné zatížení procesoru klesne pod 30% za 5 minut. Následující příklad zvětšuje počet instancí virtuálních počítačů o jeden.

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

Simulace zatížení procesoru ve škálovací sadě

Pokud chcete otestovat pravidla automatického škálování, musíte simulovat trvalé zatížení procesoru u instancí virtuálních počítačů ve škálovací sadě. V tomto minimalistickém přístupu se vyhneme instalaci dalších balíčků pomocí integrovaného yes příkazu ke generování zatížení procesoru. Následující příkaz spustí 3 procesy na pozadí, které nepřetržitě vypíše data na /dev/null 60 sekund a pak je ukončí.

for i in {1..3}; do
  yes > /dev/null &
done
sleep 60
pkill yes

Tento příkaz simuluje zatížení procesoru bez zavedení chyb instalace balíčku.

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

Pokud chcete monitorovat počet instancí virtuálních počítačů ve škálovací sadě, použijte watch příkaz. Spuštění procesu škálování v reakci na zatížení procesoru může trvat až 5 minut. Jakmile k tomu dojde, můžete ukončit sledování pomocí kláves CTRL+C .

Škálovací sada pak automaticky zvýší počet instancí virtuálních počítačů tak, aby splňovaly poptávku. Následující příkaz zobrazí seznam instancí virtuálních počítačů ve škálovací sadě:

az vmss list-instances \
  --resource-group $MY_RESOURCE_GROUP_NAME \
  --name $MY_SCALE_SET_NAME \
  --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ě. Ve výstupu se zobrazí seznam instancí virtuálních počítačů, které se vytvoří jako nové.

  InstanceId  LatestModelApplied    Location    Name              ProvisioningState    ResourceGroup         VmId
------------  --------------------  ----------  ---------------   -------------------  --------------------  ------------------------------------
           1  True                  WestUS2     myScaleSet_1      Succeeded            myResourceGroupxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
           2  True                  WestUS2     myScaleSet_2      Succeeded            myResourceGroupxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
           4  True                  WestUS2     myScaleSet_4      Creating             myResourceGroupxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
           5  True                  WestUS2     myScaleSet_5      Creating             myResourceGroupxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
           6  True                  WestUS2     myScaleSet_6      Creating             myResourceGroupxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Po poklesu zatížení procesoru se průměrné zatížení procesoru vrátí do normálního stavu. 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 pro snížení kapacity odeberou instance virtuálních počítačů s nejvyšším ID jako první. Pokud škálovací sada používá skupiny dostupnosti nebo zóny dostupnosti, akce horizontálního snížení kapacity se rovnoměrně distribuují napříč instancemi virtuálních počítačů. Následující ukázkový výstup ukazuje, že se při automatickém škálování škálovací sady odstraní jedna instance virtuálního počítače:

6  True                  WestUS2     myScaleSet_6  Deleting             myResourceGroupxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Vyčistěte zdroje

Pokud chcete odebrat škálovací sadu a přidružené prostředky, odstraňte skupinu prostředků ručně pomocí preferované metody.

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í
  • Simulace zatížení procesoru pro aktivaci pravidel automatického škálování
  • Monitorování akcí automatického škálování při změnách poptávky