Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Beim Erstellen einer Skalierungsgruppe definieren Sie die Anzahl von VM-Instanzen, die Sie ausführen möchten. Wenn sich die Nachfrage nach Ihrer Anwendung ändert, können Sie die Anzahl von VM-Instanzen automatisch erhöhen oder verringern lassen. Dank der Möglichkeit zum automatischen Skalieren können Sie über den gesamten Lebenszyklus Ihrer App die Kundennachfrage decken oder auf Änderungen der Anwendungsleistung reagieren. In diesem Tutorial lernen Sie Folgendes:
- Verwenden der automatischen Skalierung mit einer Skalierungsgruppe
- Erstellen und Verwenden von Regeln für die automatische Skalierung
- Simulieren der CPU-Auslastung zum Auslösen von Regeln für die automatische Skalierung
- Überwachen von Aktionen für die Autoskalierung, wenn sich die Anforderungen ändern
Wenn Sie nicht über ein Azure-Konto verfügen, erstellen Sie ein kostenloses Konto , bevor Sie beginnen.
Voraussetzungen
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter "Erste Schritte mit Azure Cloud Shell".
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Um den Authentifizierungsprozess abzuschließen, führen Sie die in Ihrem Terminal angezeigten Schritte aus. Weitere Anmeldeoptionen finden Sie unter Authentifizieren bei Azure mithilfe der Azure CLI.
Installieren Sie die Azure CLI-Erweiterung bei der ersten Verwendung, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden und Verwalten von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.
- Für dieses Tutorial ist mindestens Version 2.0.32 der Azure CLI erforderlich. Bei Verwendung von Azure Cloud Shell ist die aktuelle Version bereits installiert.
Erstellen einer Skalierungsgruppe
Erstellen Sie mit az group create eine Ressourcengruppe.
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
Erstellen Sie dann mit az vmss create eine VM-Skalierungsgruppe. Im folgenden Beispiel wird ein Skalierungssatz mit einer Instanzenanzahl von 2 erstellt, SSH-Schlüssel generiert, sofern sie nicht vorhanden sind, und ein gültiges Image Ubuntu2204 verwendet.
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
Definieren eines Profils für die automatische Skalierung
Zum Aktivieren der automatischen Skalierung für eine Skalierungsgruppe legen Sie zuerst ein Profil für die automatische Skalierung fest. Dieses Profil definiert die standardmäßige, minimale und maximale Kapazität der Skalierungsgruppe. Diese Grenzwerte sind hilfreich bei der Kostenkontrolle und sorgen nicht nur dafür, dass nicht fortlaufend VM-Instanzen erstellt werden, sondern gewährleisten auch ein ausgewogenes Verhältnis zwischen angemessener Leistung und einer minimalen Anzahl von Instanzen, die beim horizontalen Herunterskalieren erhalten bleiben. Erstellen Sie mit az monitor autoscale create ein Profil für die automatische Skalierung. Im folgenden Beispiel werden die Standard- und Mindestkapazität von 2 VM-Instanzen und maximal 10 festgelegt:
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
Erstellen einer Regel zum automatischen Aufskalieren
Wenn sich die Nachfrage für Ihre Anwendung erhöht, erhöht sich auch die Last für die VM-Instanzen in Ihrer Skalierungsgruppe. Wenn diese erhöhte Last konsistent ist und nicht nur eine kurze Anforderung erforderlich ist, können Sie Regeln für die automatische Skalierung konfigurieren, um die Anzahl der VM-Instanzen zu erhöhen. Nachdem diese Instanzen erstellt und Ihre Anwendung bereitgestellt wurde, beginnt die Skalierungsgruppe damit, über das Lastenausgleichsmodul Datenverkehr darauf zu verteilen. Sie steuern, welche Metriken überwacht werden sollen, wie lange die Last einen bestimmten Schwellenwert erfüllen muss und wie viele VM-Instanzen hinzugefügt werden sollen.
Erstellen Sie mithilfe von az monitor autoscale rule create eine Regel, mit der die Anzahl von VM-Instanzen erhöht wird, wenn die durchschnittliche CPU-Auslastung für einen Zeitraum von 5 Minuten über 70 % liegt. Wenn die Regel ausgelöst wird, wird die Anzahl von VM-Instanzen um 3 erhöht.
az monitor autoscale rule create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--autoscale-name autoscale \
--condition "Percentage CPU > 70 avg 5m" \
--scale out 3
Erstellen einer Regel zum automatischen Abskalieren
Wenn die Anwendungsnachfrage verringert wird, wird die Auslastung der VM-Instanzen reduziert. Wenn diese verringerte Last über einen bestimmten Zeitraum beibehalten wird, können Sie Regeln für die automatische Skalierung konfigurieren, um die Anzahl der VM-Instanzen im Skalierungssatz zu verringern. Diese Skalierungsaktion trägt dazu bei, die Kosten zu reduzieren, indem nur die erforderliche Anzahl von Instanzen ausgeführt wird, die erforderlich sind, um die aktuelle Nachfrage zu erfüllen.
Erstellen Sie mit az monitor autoscale rule create eine weitere Regel, mit der die Anzahl von VM-Instanzen verringert wird, wenn die durchschnittliche CPU-Last für einen Zeitraum von 5 Minuten unter 30 Prozent liegt. Im folgenden Beispiel wird die Anzahl der VM-Instanzen um eins skaliert.
az monitor autoscale rule create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--autoscale-name autoscale \
--condition "Percentage CPU < 30 avg 5m" \
--scale in 1
Simulieren einer CPU-Last in einer Skalierungsgruppe
Um die Regeln für die automatische Skalierung zu testen, müssen Sie die anhaltende CPU-Auslastung der VM-Instanzen im Skalierungssatz simulieren. Bei diesem minimalistischen Ansatz vermeiden wir die Installation zusätzlicher Pakete mithilfe des integrierten Befehls zum Generieren der CPU-Auslastung yes . Der folgende Befehl startet drei Hintergrundprozesse, die kontinuierlich Daten für 60 Sekunden an /dev/null ausgeben und dann beendet werden.
for i in {1..3}; do
yes > /dev/null &
done
sleep 60
pkill yes
Mit diesem Befehl wird die CPU-Auslastung simuliert, ohne Dass Paketinstallationsfehler auftreten.
Überwachen der aktiven Regeln für die automatische Skalierung
Verwenden Sie den watch Befehl, um die Anzahl der VM-Instanzen in Ihrem Skalierungssatz zu überwachen. Es kann bis zu 5 Minuten dauern, bis die Regeln für die Autoskalierung den Skalierungsprozess in Reaktion auf die CPU-Auslastung einleiten. Sobald dies geschieht, können Sie die Überwachung jedoch mit STRG+C-Tasten beenden.
Anschließend erhöht der Skalierungssatz automatisch die Anzahl der VM-Instanzen, um die Anforderung zu erfüllen. Der folgende Befehl zeigt die Liste der VM-Instanzen im Skalierungssatz:
az vmss list-instances \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $MY_SCALE_SET_NAME \
--output table
Nachdem der CPU-Schwellenwert erreicht wurde, wird mit den Regeln für die automatische Skalierung die Anzahl von VM-Instanzen in der Skalierungsgruppe erhöht. Die Ausgabe zeigt die Liste der VM-Instanzen an, wenn neue erstellt werden.
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
Sobald die CPU-Auslastung nachlässt, kehrt die durchschnittliche CPU-Auslastung zur Normalität zurück. Nach weiteren fünf Minuten wird über die Regeln für die automatische Skalierung dann das Abskalieren für die Anzahl von VM-Instanzen durchgeführt. Skalierungsaktionen entfernen VM-Instanzen mit den höchsten IDs zuerst. Wenn ein Skalierungssatz Verfügbarkeitssätze oder Verfügbarkeitszonen verwendet, werden Skalierungsaktionen gleichmäßig über die VM-Instanzen verteilt. In der folgenden Beispielausgabe ist zu sehen, dass beim automatischen horizontalen Herunterskalieren der Skalierungsgruppe eine VM-Instanz gelöscht wurde:
6 True WestUS2 myScaleSet_6 Deleting myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Bereinigen von Ressourcen
Wenn Sie den Skalierungssatz und die zugehörigen Ressourcen entfernen möchten, löschen Sie die Ressourcengruppe mit Ihrer bevorzugten Methode manuell.
Nächste Schritte
In diesem Tutorial wurde beschrieben, wie Sie mit der Azure CLI eine Skalierungsgruppe automatisch ab- oder aufskalieren:
- Verwenden der automatischen Skalierung mit einer Skalierungsgruppe
- Erstellen und Verwenden von Regeln für die automatische Skalierung
- Simulieren der CPU-Auslastung zum Auslösen von Regeln für die automatische Skalierung
- Überwachen von Aktionen für die Autoskalierung, wenn sich die Anforderungen ändern