Tutorial: Erstellen und Verwalten einer VM-Skalierungsgruppe mit Azure PowerShell
Mit 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 besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Azure Cloud Shell
Azure hostet Azure Cloud Shell, eine interaktive Shell-Umgebung, die Sie über Ihren Browser nutzen können. Sie können entweder Bash oder PowerShell mit Cloud Shell verwenden, um mit Azure-Diensten zu arbeiten. Sie können die vorinstallierten Befehle von Cloud Shell verwenden, um den Code in diesem Artikel auszuführen, ohne etwas in Ihrer lokalen Umgebung installieren zu müssen.
Starten von Azure Cloud Shell:
Option | Beispiel/Link |
---|---|
Wählen Sie rechts oben in einem Code- oder Befehlsblock die Option Ausprobieren aus. Durch die Auswahl von Ausprobieren wird der Code oder Befehl nicht automatisch in Cloud Shell kopiert. | |
Rufen Sie https://shell.azure.com auf, oder klicken Sie auf die Schaltfläche Cloud Shell starten, um Cloud Shell im Browser zu öffnen. | |
Wählen Sie im Azure-Portal rechts oben im Menü die Schaltfläche Cloud Shell aus. |
So verwenden Sie Azure Cloud Shell:
Starten Sie Cloud Shell.
Wählen Sie die Schaltfläche Kopieren für einen Codeblock (oder Befehlsblock) aus, um den Code oder Befehl zu kopieren.
Fügen Sie den Code oder Befehl mit STRG+UMSCHALT+V unter Windows und Linux oder CMD+UMSCHALT+V unter macOS in die Cloud Shell-Sitzung ein.
Drücken Sie die EINGABETASTE, um den Code oder Befehl auszuführen.
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 mit dem Befehl New-AzResourceGroup eine Ressourcengruppe. In diesem Beispiel wird eine Ressourcengruppe mit dem Namen myResourceGroup in der Region EastUS erstellt.
New-AzResourceGroup -ResourceGroupName "myResourceGroup" -Location "EastUS"
Der Ressourcengruppenname wird im gesamten Tutorial beim Erstellen oder Ändern einer Skalierungsgruppe angegeben.
Erstellen einer VM-Skalierungsgruppe
Legen Sie mit Get-Credential zuerst den Benutzernamen und das Kennwort des Administrators der VM-Instanzen fest:
$cred = Get-Credential
Erstellen Sie nun mit New-AzVmss eine VM-Skalierungsgruppe. Um Datenverkehr an die einzelnen VM-Instanzen zu verteilen, wird auch ein Lastenausgleich erstellt. Der Lastenausgleich enthält Regeln zum Verteilen von Datenverkehr über den TCP-Port 80 und zum Zulassen von Remotedesktop-Datenverkehr über den TCP-Port 3389 und von PowerShell-Remoting über den TCP-Port 5985:
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.
New-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet" `
-OrchestrationMode "Flexible" `
-Location "EastUS" `
-Credential $cred
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 der VM-Instanzen in einer Skalierungsgruppe
Verwenden Sie Get-AzVM wie folgt, um eine Liste mit den VM-Instanzen in einer Skalierungsgruppe anzuzeigen:
Get-AzVM -ResourceGroupName "myResourceGroup"
Die folgende Beispielausgabe zeigt zwei VM-Instanzen in der Skalierungsgruppe:
ResourceGroupName Name Location VmSize OsType ProvisioningState
----------------- ---- -------- ------ ------ -----------------
myResourceGroup myScaleSet_instance1 eastus Standard_DS1_v2 Windows Succeeded
myResourceGroup myScaleSet_instance2 eastus Standard_DS1_v2 Windows Succeeded
Um zusätzliche Informationen zu einer bestimmten VM-Instanz anzuzeigen, verwenden Sie Get-AzVM und geben dabei den VM-Namen an.
Get-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"
ResourceGroupName : myresourcegroup
Id : /subscriptions/resourceGroups/myresourcegroup/providers/Microsoft.Compute/virtualMachines/myScaleSet_instance1
VmId : d27b5fde-d469-4087-b08f-87d0bd8df786
Name : myScaleSet_instance1
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets, AllowExtensionOperations, RequireGuestProvisionSignal}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
VirtualMachineScaleSet : {Id}
TimeCreated : 11/16/2022 11:02:02 PM
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. Sie können mit dem -VMSize
-Parameter eine andere VM-Instanzgröße angeben, um als VM-Instanzgröße Standard_F1 anzugeben.
New-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet" `
-OrchestrationMode "Flexible" `
-VMSize "Standard_F1" `
-Location "EastUS" `
-Credential $cred
Ändern der Kapazität einer Skalierungsgruppe
Bei der Erstellung der Skalierungsgruppe wurden standardmäßig zwei VM-Instanzen bereitgestellt. Wenn Sie die Anzahl von VM-Instanzen in der Skalierungsgruppe erhöhen oder verringern möchten, können Sie die Kapazität manuell ändern. Die Skalierungsgruppe erstellt oder entfernt die erforderliche Anzahl von VM-Instanzen und konfiguriert anschließend den Lastenausgleich für die Verteilung des Datenverkehrs.
Erstellen Sie zunächst mit Get-AzVmss ein Skalierungsgruppenobjekt, und geben Sie dann einen neuen Wert für sku.capacity
an. Verwenden Sie zum Anwenden der Kapazitätsänderung Update-AzVmss. Im folgenden Beispiel wird die Anzahl von VM-Instanzen in der Skalierungsgruppe auf 3 festgelegt:
# Get current scale set
$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
# Set and update the capacity of your scale set
$vmss.sku.capacity = 3
Update-AzVmss -ResourceGroupName "myResourceGroup" -Name "myScaleSet" -VirtualMachineScaleSet $vmss
Die Aktualisierung der Skalierungsgruppenkapazität dauert ein paar Minuten. Verwenden Sie Get-Az, um die Anzahl von Instanzen anzuzeigen, die jetzt in der Skalierungsgruppe enthalten sind:
Get-AzVm -ResourceGroupName "myResourceGroup"
In der folgenden Beispielausgabe ist zu sehen, dass die Kapazität der Skalierungsgruppe jetzt 3 beträgt:
ResourceGroupName Name Location VmSize OsType ProvisioningState
----------------- ---- -------- ------ ------ -----------------
myResourceGroup myScaleSet_instance1 eastus Standard_DS1_v2 Windows Succeeded
myResourceGroup myScaleSet_instance2 eastus Standard_DS1_v2 Windows Succeeded
myResourceGroup myScaleSet_instance3 eastus Standard_DS1_v2 Windows Succeeded
Beenden von VM-Instanzen in einer Skalierungsgruppe und Aufheben ihrer Zuordnung
Um einzelne VM-Instanzen zu beenden, verwenden Sie Stop-AzVm und geben die Instanznamen an.
Stop-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"
Standardmäßig wird die Zuordnung beendeter VMs aufgehoben, sodass keine Computegebühren mehr anfallen. Wenn Sie möchten, dass die VM in einem bereitgestellten Zustand verbleibt, nachdem sie beendet wurde, fügen Sie dem vorhergehenden Befehl den Parameter -StayProvisioned
hinzu. Für beendete virtuelle Computer, die bereitgestellt bleiben, fallen die üblichen Computegebühren an.
Starten von VM-Instanzen in einer Skalierungsgruppe
Verwenden Sie Start-AzVmss, um alle VM-Instanzen in einer Skalierungsgruppe zu starten.
Start-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
Um eine einzelne VM-Instanz in einer Skalierungsgruppe zu starten, verwenden Sie Start-AzVM und geben den Instanznamen an.
Start-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"
Neustarten von VM-Instanzen in einer Skalierungsgruppe
Verwenden Sie Restart-AzVmss, um alle VM-Instanzen in einer Skalierungsgruppe neu zu starten.
Restart-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
Um eine einzelne VM-Instanz neu zu starten, verwenden Sie [Restart-AzVM] und geben den Instanznamen an.
Restart-AzVM -ResourceGroupName "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 -Force
-Parameter bestätigt, dass Sie die Ressourcen ohne weitere Aufforderung löschen möchten. Der Parameter -AsJob
gibt die Steuerung an die Eingabeaufforderung zurück, ohne zu warten, bis der Vorgang abgeschlossen ist.
Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob
Nächste Schritte
In diesem Tutorial haben Sie gelernt, wie Sie mit Azure PowerShell einige grundlegende Erstellungs- und Verwaltungsaufgaben für Skalierungsgruppen durchfü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.