Udostępnij za pośrednictwem


Samouczek: automatyczne skalowanie zestawu skalowania maszyn wirtualnych przy użyciu interfejsu wiersza polecenia platformy Azure

Podczas tworzenia zestawu skalowania musisz zdefiniować liczbę wystąpień maszyn wirtualnych, które chcesz uruchamiać. W odpowiedzi na zmieniające się zapotrzebowanie aplikacji możesz automatycznie zwiększać lub zmniejszać liczbę wystąpień maszyn wirtualnych. Skalowanie automatyczne pozwala spełniać potrzeby klientów lub reagować na zmiany wydajności aplikacji w całym cyklu jej życia. Z tego samouczka dowiesz się, jak wykonywać następujące działania:

  • Używanie funkcji skalowania automatycznego z zestawem skalowania
  • Tworzenie reguł skalowania automatycznego i korzystanie z nich
  • Symulowanie obciążenia procesora CPU w celu wyzwalania reguł skalowania automatycznego
  • Monitorowanie automatycznego skalowania w miarę zmian zapotrzebowania

Jeśli nie masz jeszcze konta platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Wymagania wstępne

  • Ten samouczek wymaga wersji 2.0.32 lub nowszej interfejsu wiersza polecenia platformy Azure. W przypadku korzystania z usługi Azure Cloud Shell najnowsza wersja jest już zainstalowana.

Utwórz zestaw skalowania

Utwórz grupę zasobów za pomocą 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

Teraz utwórz zestaw skalowania maszyn wirtualnych za pomocą polecenia az vmss create. Poniższy przykład tworzy zestaw skalowania z liczbą wystąpień wynoszącą 2, generuje klucze SSH, jeśli nie istnieją, i używa prawidłowego obrazu 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

Definiowanie profilu skalowania automatycznego

Aby włączyć skalowanie automatyczne na zestawie skalowania, najpierw zdefiniuj profil skalowania automatycznego. Ten profil obejmuje definiowanie domyślnej, minimalnej i maksymalnej pojemności zestawu skalowania. Dzięki tym limitom możesz kontrolować koszty, ponieważ wystąpienia maszyn wirtualnych nie są tworzone w sposób ciągły, zaś akceptowalna wydajność jest zrównoważona z minimalną liczbą wystąpień, które pozostają w zdarzeniu skalowania w pionie. Utwórz profil skalowania automatycznego za pomocą polecenia az monitor autoscale create. W poniższym przykładzie ustawiono minimalną i domyślną liczbę 2 wystąpień maszyn wirtualnych oraz maksymalną liczbę 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

Tworzenie reguły skalowania automatycznego w poziomie

Gdy rośnie zapotrzebowanie na aplikację, zwiększa się obciążenie wystąpień maszyn wirtualnych w zestawie skalowania. Jeśli to zwiększone obciążenie jest stałe, a nie tylko krótkotrwałe zapotrzebowanie, możesz skonfigurować reguły automatycznego skalowania, aby zwiększyć liczbę wystąpień maszyn wirtualnych. Po utworzeniu tych wystąpień i wdrożeniu aplikacji zestaw skalowania zacznie dystrybuować ruch do nich za pośrednictwem modułu równoważenia obciążenia. Możesz kontrolować, które metryki mają być monitorowane, jak długo obciążenie musi spełniać określony próg oraz liczbę wystąpień maszyn wirtualnych do dodania.

Utwórz regułę za pomocą polecenia az monitor autoscale rule create , która zwiększa liczbę wystąpień maszyn wirtualnych, gdy średnie obciążenie procesora CPU jest większe niż 70% w okresie 5 minut. Wyzwolenie reguły powoduje zwiększenie liczby wystąpień maszyn wirtualnych o trzy.

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

Tworzenie reguły skalowania automatycznego w pionie

Gdy zapotrzebowanie na aplikację spadnie, obciążenie wystąpień maszyn wirtualnych spadnie. Jeśli to zmniejszone obciążenie będzie się powtarzać w danym okresie, możesz skonfigurować reguły skalowania automatycznego, aby zmniejszyć liczbę wystąpień maszyn wirtualnych w zestawie skalowania. Ta akcja skalowania w dół pomaga zmniejszyć koszty, uruchamiając tylko niezbędną liczbę wystąpień wymaganą do zaspokojenia bieżącego zapotrzebowania.

Utwórz kolejną regułę za pomocą polecenia az monitor autoscale rule create , która zmniejsza liczbę wystąpień maszyn wirtualnych, gdy średnie obciążenie procesora CPU spadnie poniżej 30% w okresie 5 minut. Poniższy przykład skaluje liczbę wystąpień maszyn wirtualnych o jedną.

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

Symulowanie obciążenia CPU w systemie skalowania

Aby przetestować reguły skalowania automatycznego, należy symulować trwałe obciążenie CPU na maszynach wirtualnych w zestawie skalowania. W tym minimalistycznym podejściu unikamy instalowania dodatkowych pakietów, używając wbudowanego polecenia yes do wygenerowania obciążenia CPU. Następujące polecenie uruchamia 3 procesy w tle, które przesyłają dane do /dev/null przez 60 sekund, a następnie je kończy.

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

To polecenie symuluje obciążenie procesora CPU bez wprowadzania błędów instalacji pakietu.

Monitorowanie aktywnych reguł skalowania automatycznego

Aby monitorować liczbę wystąpień maszyn wirtualnych w zestawie skalowania, użyj polecenia watch. Rozpoczęcie procesu rozszerzania zasobów w odpowiedzi na obciążenie CPU może potrwać nawet do 5 minut. Jednak gdy tak się stanie, możesz zakończyć oglądanie za pomocą CTRL + C .

Do tego czasu zestaw skalowania automatycznie zwiększy liczbę wystąpień maszyn wirtualnych, aby zaspokoić zapotrzebowanie. Następujące polecenie przedstawia listę wystąpień maszyn wirtualnych w zestawie skalowania:

az vmss list-instances \
  --resource-group $MY_RESOURCE_GROUP_NAME \
  --name $MY_SCALE_SET_NAME \
  --output table

Po osiągnięciu progu procesora CPU reguły skalowania automatycznego zwiększają liczbę wystąpień maszyn wirtualnych w zestawie skalowania. W danych wyjściowych zostanie wyświetlona lista wystąpień maszyn wirtualnych w miarę tworzenia nowych wystąpień.

  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

Gdy obciążenie CPU ustąpi, średnie obciążenie wróci do normalnego poziomu. Po kolejnych pięciu minutach reguły skalowania automatycznego inicjują skalowanie w pionie liczby wystąpień maszyn wirtualnych. Akcje zmniejszania skali najpierw usuwają wystąpienia maszyn wirtualnych z najwyższymi identyfikatorami. Gdy zestaw skalowania używa zestawów dostępności lub stref dostępności, akcje zmniejszania skali są równomiernie rozdzielane między wystąpieniami maszyn wirtualnych. Następujące przykładowe dane wyjściowe pokazują, że jedno wystąpienie maszyny wirtualnej jest usuwane w wyniku automatycznego skalowania zestawu skalowania.

6  True                  WestUS2     myScaleSet_6  Deleting             myResourceGroupxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Uprzątnij zasoby

Aby usunąć zestaw skalowania i skojarzone zasoby, usuń ręcznie grupę zasobów przy użyciu preferowanej metody.

Dalsze kroki

W tym samouczku przedstawiono automatyczne skalowanie zestawu skalowania w pionie lub w poziomie za pomocą interfejsu wiersza polecenia platformy Azure:

  • Używanie funkcji skalowania automatycznego z zestawem skalowania
  • Tworzenie reguł skalowania automatycznego i korzystanie z nich
  • Symulowanie obciążenia procesora CPU w celu wyzwalania reguł skalowania automatycznego
  • Monitorowanie automatycznego skalowania w miarę zmian zapotrzebowania