Verwalten einer VM-Skalierungsgruppe mit Azure PowerShell

Hinweis

Viele der in diesem Dokument aufgeführten Schritte gelten für Virtual Machine Scale Sets mit dem Orchestrierungsmodus „Einheitlich“. Für neue Workloads empfehlen wir den Modus „Flexible Orchestrierung“. Weitere Informationen finden Sie unter Orchestrierungsmodi für VM-Skalierungsgruppen in Azure.

Während des Lebenszyklus einer Skalierungsgruppe müssen unter Umständen verschiedene Verwaltungsaufgaben durchgeführt werden. Darüber hinaus empfiehlt es sich, Skripts zum Automatisieren von verschiedenen Aufgaben im Lebenszyklus zu erstellen. In diesem Artikel werden einige der gängigen Microsoft Azure PowerShell-Cmdlets behandelt, mit denen Sie diese Aufgaben ausführen können.

Bei Bedarf können Sie eine VM-Skalierungsgruppe mit Azure PowerShell erstellen.

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren des Azure Az PowerShell-Moduls. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Anzeigen von Informationen zu einer Skalierungsgruppe

Verwenden Sie Get-AzVmss, um die allgemeinen Informationen zu einer Skalierungsgruppe anzuzeigen. Im folgenden Beispiel werden Informationen zur Skalierungsgruppe namens myScaleSet in der Ressourcengruppe myResourceGroup abgerufen. Geben Sie Ihre eigenen Namen wie folgt ein:

Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Anzeigen von virtuellen Computern in einer Skalierungsgruppe

Verwenden Sie Get-AzVmssVM, um eine Liste der VM-Instanzen in einer Skalierungsgruppe anzuzeigen. Im folgenden Beispiel werden alle VM-Instanzen in der Skalierungsgruppe namens myScaleSet und in der Ressourcengruppe myResourceGroup abgerufen. Geben Sie für diese Namen Ihre eigenen Werte an:

Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Wenn Sie zusätzliche Informationen zu einer bestimmten VM-Instanz anzeigen möchten, fügen Sie Get-AzVmssVM den Parameter -InstanceId hinzu, und geben Sie die gewünschte Instanz an. Im folgenden Beispiel werden Informationen zur VM-Instanz 0 in der Skalierungsgruppe namens myScaleSet und der Ressourcengruppe myResourceGroup angezeigt. Geben Sie Ihre eigenen Namen wie folgt ein:

Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"

Sie können auch ausführliche instanceView-Informationen für alle Instanzen in einem API-Befehl abrufen, um die API-Einschränkung bei großen Installationen zu vermeiden.

Get-AzVmssVM -InstanceView -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
GET "https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSSName>/virtualMachines?api-version=2019-03-01&%24expand=instanceView"

Ändern der Kapazität einer Skalierungsgruppe

Die obigen Befehle dienen zum Anzeigen von Informationen zu Ihrer Skalierungsgruppe und zu den VM-Instanzen. Wenn Sie die Anzahl von Instanzen in der Skalierungsgruppe erhöhen oder verringern möchten, können Sie die Kapazität ändern. Die Skalierungsgruppe erstellt oder entfernt automatisch die erforderliche Anzahl von virtuellen Computern und konfiguriert die virtuellen Computer anschließend für den Empfang von Anwendungsdatenverkehr.

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 Kapazität der Skalierungsgruppe myScaleSet in der Ressourcengruppe myResourceGroup in 5 Instanzen geändert. Geben Sie Ihre eigenen Werte wie folgt an:

# Get current scale set
$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

# Set and update the capacity of your scale set
$vmss.sku.capacity = 5
Update-AzVmss -ResourceGroupName "myResourceGroup" -Name "myScaleSet" -VirtualMachineScaleSet $vmss

Die Aktualisierung der Skalierungsgruppenkapazität dauert ein paar Minuten. Wenn Sie die Kapazität einer Skalierungsgruppe verringern, werden die virtuellen Computer mit den höchsten Instanz-IDs zuerst entfernt.

Beenden und Starten von virtuellen Computern in einer Skalierungsgruppe

Verwenden Sie Stop-AzVmss, um virtuelle Computer in einer Skalierungsgruppe zu beenden. Mit dem Parameter -InstanceId können Sie die zu beendenden virtuellen Computer angeben. Wenn Sie keine Instanz-ID angeben, werden alle virtuellen Computer in der Skalierungsgruppe beendet. Wenn Sie mehrere virtuelle Computer beenden möchten, trennen Sie die einzelnen Instanz-IDs durch ein Komma.

Im folgenden Beispiel wird die VM-Instanz 0 in der Skalierungsgruppe namens myScaleSet und der Ressourcengruppe myResourceGroup beendet. Geben Sie Ihre eigenen Werte wie folgt an:

Stop-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"

Standardmäßig wird die Zuordnung beendeter VMs aufgehoben, woraufhin 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 virtuellen Computern in einer Skalierungsgruppe

Verwenden Sie Start-AzVmss, um virtuelle Computer in einer Skalierungsgruppe zu starten. Mit dem Parameter -InstanceId können Sie die zu startenden virtuellen Computer angeben. Wenn Sie keine Instanz-ID angeben, werden alle virtuellen Computer in der Skalierungsgruppe gestartet. Wenn Sie mehrere virtuelle Computer starten möchten, trennen Sie die einzelnen Instanz-IDs durch ein Komma.

Im folgenden Beispiel wird die VM-Instanz 0 in der Skalierungsgruppe namens myScaleSet und der Ressourcengruppe myResourceGroup gestartet. Geben Sie Ihre eigenen Werte wie folgt an:

Start-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"

Neustarten von virtuellen Computern in einer Skalierungsgruppe

Verwenden Sie Restart-AzVmss, um virtuelle Computer in einer Skalierungsgruppe neu zu starten. Mit dem Parameter -InstanceId können Sie die neu zu startenden virtuellen Computer angeben. Wenn Sie keine Instanz-ID angeben, werden alle virtuellen Computer in der Skalierungsgruppe neu gestartet. Wenn Sie mehrere virtuelle Computer neu starten möchten, trennen Sie die einzelnen Instanz-IDs durch ein Komma.

Im folgenden Beispiel wird die VM-Instanz 0 in der Skalierungsgruppe namens myScaleSet und der Ressourcengruppe myResourceGroup neu gestartet. Geben Sie Ihre eigenen Werte wie folgt an:

Restart-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"

Entfernen von virtuellen Computern aus einer Skalierungsgruppe

Verwenden Sie Remove-AzVmss, um virtuelle Computer in einer Skalierungsgruppe zu entfernen. Mit dem Parameter -InstanceId können Sie die zu entfernenden virtuellen Computer angeben. Wenn Sie keine Instanz-ID angeben, werden alle virtuellen Computer in der Skalierungsgruppe entfernt. Wenn Sie mehrere virtuelle Computer entfernen möchten, trennen Sie die einzelnen Instanz-IDs durch ein Komma.

Im folgenden Beispiel wird die VM-Instanz 0 in der Skalierungsgruppe namens myScaleSet und der Ressourcengruppe myResourceGroup entfernt. Geben Sie Ihre eigenen Werte wie folgt an:

Remove-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"

Nächste Schritte

Weitere gängige Aufgaben für Skalierungsgruppen sind beispielsweise das Bereitstellen einer Anwendung und das Upgraden von VM-Instanzen. Außerdem können Sie mit Azure PowerShell Regeln für die automatische Skalierung konfigurieren.