Tutorial: Erstellen und Verwalten einer VM-Skalierungsgruppe mit der Azure CLI
Mithilfe einer VM-Skalierungsgruppe können Sie eine Gruppe von VMs bereitstellen und verwalten. Während des Lebenszyklus einer Skalierungsgruppe müssen unter Umständen verschiedene Verwaltungsaufgaben durchgeführt werden. In diesem Tutorial lernen Sie Folgendes:
- Erstellen einer Ressourcengruppe
- Erstellen einer VM-Skalierungsgruppe
- Horizontal hoch- und herunterskalieren
- Beenden, Starten und Neustarten von VM-Instanzen
Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.
Voraussetzungen
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in 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. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.
Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden 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 diesen Artikel ist mindestens Version 2.0.29 der Azure CLI erforderlich. Bei Verwendung von Azure Cloud Shell ist die aktuelle Version bereits installiert.
Erstellen einer Ressourcengruppe
Eine Azure-Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden. Vor der VM-Skalierungsgruppe muss zunächst eine Ressourcengruppe erstellt werden. Erstellen Sie mithilfe des Befehls az group create eine Ressourcengruppe. In diesem Beispiel wird eine Ressourcengruppe mit dem Namen myResourceGroup in der Region eastus erstellt.
az group create --name myResourceGroup --location eastus
Der Ressourcengruppenname wird im gesamten Tutorial beim Erstellen oder Ändern einer Skalierungsgruppe angegeben.
Erstellen einer Skalierungsgruppe
Wichtig
Ab November 2023 werden VM-Skalierungsgruppen, die mit PowerShell und der Azure CLI erstellt wurden, standardmäßig auf den flexiblen Orchestrierungsmodus festgelegt, wenn kein Orchestrierungsmodus angegeben wird. Weitere Informationen zu dieser Änderung und zu den Maßnahmen, die Sie ergreifen sollten, finden Sie unter Breaking Change für PowerShell-/CLI-Kunden mit VMSS – Microsoft Community Hub.
Verwenden Sie zum Erstellen einer VM-Skalierungsgruppe den Befehl az vmss create. Im folgenden Beispiel wird eine Skalierungsgruppe mit dem Namen myScaleSet erstellt, und es werden SSH-Schlüssel generiert, falls sie noch nicht vorhanden sind:
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--orchestration-mode flexible \
--image <SKU image> \
--admin-username azureuser \
--generate-ssh-keys
Die Erstellung und Konfiguration aller Ressourcen und VM-Instanzen der Skalierungsgruppe dauert einige Minuten. Um Datenverkehr an die einzelnen VM-Instanzen zu verteilen, wird auch ein Lastenausgleich erstellt.
Anzeigen von Informationen zu den VM-Instanzen in Ihrer Skalierungsgruppe
Verwenden Sie az vm list wie folgt, um eine Liste mit den VM-Instanzen in einer Skalierungsgruppe anzuzeigen:
az vm list --resource-group myResourceGroup --output table
Die folgende Beispielausgabe zeigt zwei VM-Instanzen in der Skalierungsgruppe:
Name ResourceGroup Location Zones
------------------- --------------- ---------- -------
myScaleSet_instance1 myResourceGroup eastus
myScaleSet_instance2 myResourceGroup eastus
Um zusätzliche Informationen zu einer bestimmten VM-Instanz anzuzeigen, verwenden Sie az vm show und geben dabei den VM-Namen an.
az vm show --resource-group myResourceGroup --name myScaleSet_instance1
{
"hardwareProfile": {
"vmSize": "Standard_DS1_v2",
},
"id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myScaleSet_instance1",
"location": "eastus",
"name": "myScaleSet_instance1",
"networkProfile": {
"networkInterfaces": [
{
"deleteOption": "Delete",
"id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/mysca2215Nic-0396c71c",
"primary": true,
"resourceGroup": "myResourceGroup"
}
]
},
"osProfile": {
"adminUsername": "azureuser",
"allowExtensionOperations": true,
"computerName": "myScaleSN30BP1",
"linuxConfiguration": {
"disablePasswordAuthentication": true,
"enableVmAgentPlatformUpdates": false,
"patchSettings": {
"assessmentMode": "ImageDefault",
"patchMode": "ImageDefault"
},
"provisionVmAgent": true,
"ssh": {
"publicKeys": [
{
"keyData": "ssh-rsa",
"path": "/home/azureuser/.ssh/authorized_keys"
}
]
}
},
"requireGuestProvisionSignal": true,
"secrets": [],
},
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"storageProfile": {
"dataDisks": [],
"imageReference": {
"exactVersion": "XXXXX",
"offer": "myOffer",
"publisher": "myPublisher",
"sku": "mySKU",
"version": "latest"
},
"osDisk": {
"caching": "ReadWrite",
"createOption": "FromImage",
"deleteOption": "Delete",
"diskSizeGb": 30,
"managedDisk": {
"id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myScaleSet_instance1_disk1",
"resourceGroup": "myResourceGroup",
"storageAccountType": "Premium_LRS"
},
"name": "myScaleSet_instance1_disk1",
"osType": "Linux",
}
},
"tags": {},
"timeCreated": "2022-11-16T20:32:15.024581+00:00",
"type": "Microsoft.Compute/virtualMachines",
"virtualMachineScaleSet": {
"id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet",
"resourceGroup": "myResourceGroup"
},
}
Erstellen einer Skalierungsgruppe mit einer bestimmten VM-Instanzgröße
Bei der Erstellung der Skalierungsgruppe zu Beginn des Tutorials wurde für die VM-Instanzen die VM-Standard-SKU Standard_D1_v2 angegeben. Auf der Grundlage der Ausgabe von az vm list-sizes können Sie eine andere VM-Instanzgröße angeben. Im folgenden Beispiel wird eine Skalierungsgruppe mit dem Parameter --vm-sku
erstellt, um die VM-Instanzgröße Standard_F1 anzugeben. Da die Erstellung und Konfiguration aller Ressourcen und VM-Instanzen der Skalierungsgruppe einige Minuten dauert, müssen Sie die folgende Skalierungsgruppe nicht bereitstellen:
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--orchestration-mode flexible \
--image <SKU image> \
--vm-sku Standard_F1 \
--admin-user azureuser \
--generate-ssh-keys
Ändern der Kapazität einer Skalierungsgruppe
Bei der Erstellung der Skalierungsgruppe zu Beginn des Tutorials wurden standardmäßig zwei VM-Instanzen bereitgestellt. Sie können az vmss create zusammen mit dem Parameter --instance-count
angeben, um die Anzahl von Instanzen zu ändern, die mit einer Skalierungsgruppe erstellt werden. Wenn Sie die Anzahl von VM-Instanzen in Ihrer bereits vorhandenen Skalierungsgruppe erhöhen oder verringern möchten, können Sie manuell die Kapazität ändern. Die Skalierungsgruppe erstellt oder entfernt die erforderliche Anzahl von VM-Instanzen und konfiguriert anschließend den Lastenausgleich für die Verteilung des Datenverkehrs.
Die Anzahl von VM-Instanzen in der Skalierungsgruppe kann mit az vmss scale manuell erhöht oder verringert werden. Im folgenden Beispiel wird die Anzahl von VM-Instanzen in der Skalierungsgruppe auf 3 festgelegt:
az vmss scale \
--resource-group myResourceGroup \
--name myScaleSet \
--new-capacity 3
Die Aktualisierung der Skalierungsgruppenkapazität dauert ein paar Minuten. Um die aktuelle Anzahl der Instanzen in der Skalierungsgruppe anzuzeigen, verwenden Sie az vm list und fragen die zugeordnete Ressourcengruppe ab.
az vm list --resource-group myResourceGroup --output table
Name ResourceGroup Location Zones
------------------- --------------- ---------- -------
myScaleSet_instance1 myResourceGroup eastus
myScaleSet_instance2 myResourceGroup eastus
myScaleSet_instance3 myResourceGroup eastus
Beenden von VM-Instanzen in einer Skalierungsgruppe und Aufheben ihrer Zuordnung
Verwenden Sie az vmss stop, um alle VM-Instanzen in einer Skalierungsgruppe zu beenden.
az vmss stop \
--resource-group myResourceGroup \
--name myScaleSet
Um einzelne VM-Instanzen in einer Skalierungsgruppe zu beenden, verwenden Sie az vm stop und geben den Namen der Instanz an.
az vm stop \
--resource-group myResourceGroup \
--name myScaleSet_instance1
Beendete VM-Instanzen bleiben weiter zugeordnet, und es fallen weiterhin Computegebühren für sie an. Wenn Sie die VM-Instanzen stattdessen freigeben möchten, sodass nur Speichergebühren anfallen, verwenden Sie az vm deallocate und geben die Namen der Instanzen an, die Sie freigeben möchten.
az vm deallocate \
--resource-group myResourceGroup \
--name myScaleSet_instance1
Starten von VM-Instanzen in einer Skalierungsgruppe
Verwenden Sie az vmss start, um alle VM-Instanzen in einer Skalierungsgruppe zu starten.
az vmss start \
--resource-group myResourceGroup \
--name myScaleSet
Um eine einzelne VM-Instanz in einer Skalierungsgruppe zu starten, verwenden Sie az vm start und geben den Instanznamen an.
az vm start \
--resource-group myResourceGroup \
--name myScaleSet_instance1
Neustarten von VM-Instanzen in einer Skalierungsgruppe
Verwenden Sie az vmss restart, um alle VM-Instanzen in einer Skalierungsgruppe neu zu starten.
az vmss restart \
--resource-group myResourceGroup \
--name myScaleSet
Um eine einzelne VM-Instanz in einer Skalierungsgruppe neu zu starten, verwenden Sie az vm restart und geben den Instanznamen an.
az vm restart \
--resource-group myResourceGroup \
--name myScaleSet_instance1
Bereinigen von Ressourcen
Wenn Sie eine Ressourcengruppe löschen, werden auch alle darin enthaltenen Ressourcen (wie VM-Instanzen, das virtuelle Netzwerk und die Datenträger) gelöscht. Der Parameter --no-wait
gibt die Steuerung an die Eingabeaufforderung zurück, ohne zu warten, bis der Vorgang abgeschlossen ist. Mit dem Parameter --yes
wird bestätigt, dass Sie die Ressourcen löschen möchten, ohne hierzu eine zusätzliche Aufforderung zu erhalten.
az group delete --name myResourceGroup --no-wait --yes
Nächste Schritte
In diesem Tutorial haben Sie gelernt, wie Sie mit der Azure-Befehlszeilenschnittstelle einige grundlegende Erstellungs- und Verwaltungsaufgaben für Skalierungsgruppen ausführen:
- Erstellen einer Ressourcengruppe
- Erstellen einer Skalierungsgruppe
- Anzeigen und Verwenden bestimmter VM-Größen
- Manuelles Skalieren einer Skalierungsgruppe
- Ausführen allgemeiner Verwaltungsaufgaben für Skalierungsgruppen, z. B. Beenden, Starten und Neustarten der Skalierungsgruppe
Im nächsten Tutorial erfahren Sie, wie Sie eine Verbindung mit den Instanzen Ihrer Skalierungsgruppe herstellen.