Oktatóanyag: Virtuálisgép-méretezési csoport automatikus méretezése az Azure CLI-vel

Figyelemfelhívás

Ez a cikk a CentOS-ra, egy olyan Linux-disztribúcióra hivatkozik, amely közel áll az élettartam (EOL) állapotához. Fontolja meg a használatát, és ennek megfelelően tervezze meg. További információ: CentOS End Of Life útmutató.

Méretezési csoport létrehozásakor meghatározza a futtatni kívánt virtuálisgép-példányok számát. Az alkalmazás igényeihez igazodva automatikusan növelheti vagy csökkentheti a virtuálisgép-példányok számát. Az automatikus méretezésnek köszönhetően lépést tarthat az ügyfeleik igényeivel és az alkalmazás teljes élettartama alatt reagálhat az alkalmazás teljesítményében bekövetkezett változásokra. Ezen oktatóanyag segítségével megtanulhatja a következőket:

  • Automatikus skálázás használata méretezési csoportokkal
  • Automatikus skálázási szabályok létrehozása és használata
  • Virtuálisgép-példányok és automatikus skálázás-aktiválási szabályok terhelési tesztje
  • Visszaméretezés, ha az igény csökken

Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.

Előfeltételek

  • Ehhez az oktatóanyaghoz az Azure CLI 2.0.32-es vagy újabb verziója szükséges. Az Azure Cloud Shell használata esetén a legújabb verzió már telepítve van.

Méretezési csoport létrehozása

Hozzon létre egy erőforráscsoportot az az group create paranccsal.

az group create --name myResourceGroup --location eastus

Most hozzon létre egy virtuálisgép-méretezési csoportot az az vmss create használatával. Az alábbi példa egy 2 példányszámú méretezési csoportot hoz létre, és SSH-kulcsokat hoz létre, ha nem léteznek.

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

Automatikus skálázási profil meghatározása

Az automatikus skálázás méretezési csoportban történő engedélyezéséhez először határozza meg az automatikus skálázási profilt. Ez a profil határozza meg a méretezési csoport alapértelmezett, minimális és maximális kapacitását. Ezek a korlátok lehetővé teszik a költségek szabályozását azáltal, hogy nem hoz létre folyamatosan virtuálisgép-példányokat, és kiegyensúlyozza az elfogadható teljesítményt a méretarányos eseményben maradó példányok minimális számával. Automatikus skálázási profilt az az monitor autoscale create paranccsal hozhat létre. A következő példa a virtuálisgép-példányok alapértelmezett és egyben minimális (2), valamint a maximális (10) értékét állítja be:

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

Automatikus felskálázási szabály létrehozása

Az alkalmazás növekvő igényeivel párhuzamosan a méretezési csoportban lévő virtuálisgép-példányok terhelése is nő. Ha a megnövekedett terhelés állandó, nem csak pillanatnyi igény, akkor megadhatja, hogy az automatikus skálázási szabály növelje meg a virtuálisgép-példányok számát a méretezési csoportban. Ezen virtuálisgép-példányok létrehozását és az alkalmazások telepítését követően a méretezési csoport megkezdi a forgalom elosztását közöttük a terheléselosztón keresztül. Beállíthatja, hogy milyen metrikákat monitoroz, mennyi ideig kell az alkalmazás terhelésének megfelelnie egy adott küszöbértéknek, és hány virtuálisgép-példányt kell hozzáadnia a méretezési csoporthoz.

Hozzon létre egy szabályt az az monitor automatikus skálázási szabályával, amely növeli a méretezési csoportban lévő virtuálisgép-példányok számát, ha az átlagos processzorterhelés 5 perc alatt meghaladja a 70%-ot. A szabály aktiválásakor a virtuálisgép-példányok száma hárommal nő.

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

Automatikus leskálázási szabály létrehozása

Az este vagy a hétvége folyamán az alkalmazás igényei csökkenhetnek. Ha a csökkent terhelés egy adott időtartam alatt állandó, akkor megadhatja, hogy az automatikus skálázási szabály csökkentse a virtuálisgép-példányok számát a méretezési csoportban. A horizontális leskálázási művelet csökkenti a méretezési csoport futtatásának költségeit, mivel csak az aktuális igényt kielégítő számú példányt futtat.

Hozzunk létre egy másik szabályt az az monitor autoscale rule create paranccsal a méretezési csoportban lévő virtuálisgép-példányok csökkentésére, ha az átlagos processzorterhelés ezután 5 percen keresztül nem éri el a 30%-ot. Az alábbi példa a virtuálisgép-példányok mennyiségét eggyel leskálázó szabályt definiálja.

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

Processzorterhelés létrehozása a méretezési csoportban

Az automatikus skálázási szabályok teszteléséhez hozzon létre némi processzorterhelést a méretezési csoportban lévő virtuálisgép-példányokhoz. Ezen szimulált processzorterhelés hatására az automatikus méretezési szabályok horizontálisan felskáláznak, és megnövelik a virtuálisgép-példányok számát. A szimulált processzorterhelés ezt követő csökkentésével az automatikus méretezési szabály horizontálisan leskáláz, és csökkenti a virtuálisgép-példányok számát.

Ha egy adott példányhoz szeretne csatlakozni, tekintse meg az oktatóanyagot: Csatlakozás a virtuálisgép-méretezési csoport példányaihoz

Miután bejelentkezett, telepítse a stressz vagy a stress-ng segédprogramot. Indítson el 10terhelési feldolgozót, amelyek processzorterhelést hoznak létre. Ezek a feldolgozók 420 másodpercig futnak. Ez elegendő idő ahhoz, hogy az automatikus méretezési szabályok alkalmazzák a kívánt műveletet.

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

Ha a stress segédprogram a stress: info: [2688] dispatching hogs: 10 cpu, 0 io, 0 vm, 0 hdd kimenethez hasonló értékeket mutat, nyomja le az Enter billentyűt a parancssorhoz való visszatéréshez.

Annak megerősítéséhez, hogy a stress segédprogram processzorterhelést hoz létre, vizsgálja meg az aktív rendszerterhelést a top segédprogram segítségével:

top

Lépjen ki a top segédprogramból, majd zárja be a virtuálisgép-példánnyal létesített kapcsolatot. A stress segédprogram továbbra is fut a virtuálisgép-példányon.

Ctrl-c
exit

Csatlakozzon a másik virtuálisgép-példányhoz az előző az vmss list-instance-connection-info paranccsal listázott portszám segítségével:

ssh azureuser@13.92.224.66 -p 50003

Telepítse és futtassa a stressz - vagy stressz-ng műveletet, majd kezdjen tíz feldolgozót ezen a második virtuálisgép-példányon.

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

Ismét, ha a stress segédprogram a stress: info: [2713] dispatching hogs: 10 cpu, 0 io, 0 vm, 0 hdd kimenethez hasonló értékeket mutat, nyomja le az Enter billentyűt a parancssorhoz való visszatéréshez.

Zárja be a második virtuálisgép-példánnyal létesített kapcsolatot. A stress segédprogram továbbra is fut a virtuálisgép-példányon.

exit

Aktív automatikus skálázási szabályok monitorozása

A méretezési csoportban lévő virtuálisgép-példányok számának monitorozásához használja a watch segédprogramot. Az egyes virtuálisgép-példányokon 5 percet vesz igénybe, mire az automatikus skálázási szabályok megkezdik a horizontális felskálázási folyamatot a stress segédprogram által létrehozott processzorterhelésre válaszul:

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

Ha elérte a processzor küszöbértékét, az automatikus méretezési szabályok megnövelik a méretezési csoportban lévő virtuálisgép-példányok számát. Az alábbi kimenet három virtuális gép létrejöttét mutatja, amint a méretezési csoport automatikusan felskálázódik:

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

Amint a stress segédprogram leáll a kezdeti virtuálisgép-példányokon, az átlagos processzorterhelés visszatér a normális szintre. Újabb 5 perc elteltével az automatikus méretezési szabályok horizontálisan leskálázzák a virtuálisgép-példányok számát. A horizontális leskálázási műveletek először a legmagasabb azonosítóval rendelkező virtuálisgép-példányokat távolítják el. Ha egy méretezési csoport az Availability Sets vagy az Availability Zones funkciót használja, a horizontális leskálázási műveletek egyenletesen lesznek elosztva a virtuálisgép-példányok között. Az alábbi kimeneti példa egy virtuálisgép-példány törlését mutatja, ahogy a méretezési csoport automatikusan leskálázódik:

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

Lépjen ki a watch segédprogramból a Ctrl-c paranccsal. A méretezési csoport folytatja az 5 percenkénti horizontális leskálázást, és eltávolít egy virtuálisgép-példányt, amíg el nem éri a minimális két példányos értéket.

Az erőforrások eltávolítása

A méretezési csoport és további erőforrások eltávolításához törölje az erőforráscsoportot és az ahhoz tartozó összes erőforrást az az group delete paranccsal. A --no-wait paraméter visszaadja a vezérlést a parancssornak, és nem várja meg a művelet befejeztét. A --yes paraméter megerősíti, hogy további kérdés nélkül szeretné törölni az erőforrásokat.

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

Következő lépések

Ez az oktatóanyag bemutatta, hogyan lehet automatikusan horizontálisan le- illetve felskálázni egy méretezési csoportot az Azure CLI használatával:

  • Automatikus skálázás használata méretezési csoportokkal
  • Automatikus skálázási szabályok létrehozása és használata
  • Virtuálisgép-példányok és automatikus skálázás-aktiválási szabályok terhelési tesztje
  • Visszaméretezés, ha az igény csökken