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. Screenshot that shows an example of Try It for Azure Cloud Shell.
Rufen Sie https://shell.azure.com auf, oder klicken Sie auf die Schaltfläche Cloud Shell starten, um Cloud Shell im Browser zu öffnen. Button to launch Azure Cloud Shell.
Wählen Sie im Azure-Portal rechts oben im Menü die Schaltfläche Cloud Shell aus. Screenshot that shows the Cloud Shell button in the Azure portal

So verwenden Sie Azure Cloud Shell:

  1. Starten Sie Cloud Shell.

  2. Wählen Sie die Schaltfläche Kopieren für einen Codeblock (oder Befehlsblock) aus, um den Code oder Befehl zu kopieren.

  3. 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.

  4. 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.