Zelfstudie: Een virtuele-machineschaalset maken en beheren met Azure PowerShell

Met een virtuele-machineschaalset kunt u een set virtuele machines implementeren en beheren. Gedurende de levenscyclus van een virtuele-machineschaalset moet u mogelijk een of meer beheertaken uitvoeren. In deze zelfstudie leert u het volgende:

  • Een brongroep maken
  • Een virtuele-machineschaalset maken
  • Uit- en inschalen
  • VM-exemplaren stoppen, starten en opnieuw starten

Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

Azure Cloud Shell

Azure host Azure Cloud Shell, een interactieve shell-omgeving die u via uw browser kunt gebruiken. U kunt Bash of PowerShell gebruiken met Cloud Shell om met Azure-services te werken. U kunt de vooraf geïnstalleerde Cloud Shell-opdrachten gebruiken om de code in dit artikel uit te voeren zonder dat u iets hoeft te installeren in uw lokale omgeving.

Om Azure Cloud Shell op te starten:

Optie Voorbeeld/koppeling
Selecteer Uitproberen in de rechterbovenhoek van een code- of opdrachtblok. Als u Try It selecteert, wordt de code of opdracht niet automatisch gekopieerd naar Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Ga naar https://shell.azure.com, of selecteer de knop Cloud Shell starten om Cloud Shell in uw browser te openen. Button to launch Azure Cloud Shell.
Klik op de knop Cloud Shell in het menu in de balk rechtsboven in de Azure-portal. Screenshot that shows the Cloud Shell button in the Azure portal

Azure Cloud Shell gebruiken:

  1. Start Cloud Shell.

  2. Selecteer de knop Kopiëren op een codeblok (of opdrachtblok) om de code of opdracht te kopiëren.

  3. Plak de code of opdracht in de Cloud Shell-sessie door Ctrl+Shift+V in Windows en Linux te selecteren of door Cmd+Shift+V te selecteren in macOS.

  4. Selecteer Enter om de code of opdracht uit te voeren.

Een brongroep maken

Een Azure-resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd. Er moet een resourcegroep worden gemaakt voordat een virtuele-machineschaalset wordt gemaakt. Maak een resourcegroep met de opdracht New-AzResourceGroup. In dit voorbeeld wordt er een resourcegroep met de naam myResourceGroup gemaakt in de regio EastUS.

New-AzResourceGroup -ResourceGroupName "myResourceGroup" -Location "EastUS"

De naam van de resourcegroep moet worden opgegeven als u ergens in deze zelfstudie een schaalset maakt of wijzigt.

Een virtuele-machineschaalset maken

Stel eerst een beheerdersnaam en -wachtwoord in voor de VM-exemplaren met behulp van Get-Credential:

$cred = Get-Credential

Maak nu een virtuele-machineschaalset met New-AzVmss. Om het verkeer te distribueren naar de verschillende VM-exemplaren, wordt er ook een load balancer gemaakt. De load balancer bevat regels voor het distribueren van verkeer op TCP-poort 80 en het toestaan van extern bureaublad-verkeer op TCP-poort 3389 en externe communicatie van PowerShell op TCP-poort 5985:

Belangrijk

Vanaf november 2023 worden VM-schaalsets die zijn gemaakt met PowerShell en Azure CLI standaard ingesteld op de flexibele indelingsmodus als er geen indelingsmodus is opgegeven. Voor meer informatie over deze wijziging en welke acties u moet ondernemen, gaat u naar Belangrijke wijziging voor VMSS PowerShell/CLI-klanten - Microsoft Community Hub

New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet" `
  -OrchestrationMode "Flexible" `
  -Location "EastUS" `
  -Credential $cred

Het duurt enkele minuten om alle schaalsetresources en VM-exemplaren te maken en te configureren. Om het verkeer te distribueren naar de verschillende VM-exemplaren, wordt er ook een load balancer gemaakt.

De VM-exemplaren in een schaalset bekijken

Als u een lijst met VM-exemplaren in een schaalset wilt weergeven, gebruikt u Get-AzVM als volgt:

Get-AzVM -ResourceGroupName "myResourceGroup"

In de volgende voorbeelduitvoer ziet u dat de schaalset twee VM-exemplaren bevat:

ResourceGroupName                Name Location          VmSize  OsType      ProvisioningState 
-----------------                ---- --------          ------  ------       ----------------- 
myResourceGroup   myScaleSet_instance1   eastus Standard_DS1_v2 Windows         Succeeded     
myResourceGroup   myScaleSet_instance2   eastus Standard_DS1_v2 Windows         Succeeded     

Als u aanvullende informatie over een specifiek VM-exemplaar wilt weergeven, gebruikt u Get-AzVM en geeft u de naam van de VIRTUELE machine op.

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

Een schaalset met een specifieke VM-exemplaargrootte maken

Toen u aan het begin van de zelfstudie een schaalset hebt gemaakt, werd er een standaard-VM-SKU van Standard_D1_v2 opgegeven voor de VM-exemplaren. U kunt een andere VM-instantiegrootte opgeven met de -VMSize parameter om een VM-exemplaargrootte van Standard_F1 op te geven.

New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet" `
  -OrchestrationMode "Flexible" `
  -VMSize "Standard_F1" `
  -Location "EastUS" `
  -Credential $cred

De capaciteit van een schaalset wijzigen

Bij het maken van een schaalset zijn standaard twee VM-exemplaren geïmplementeerd. Als u het aantal VM-exemplaren in de schaalset wilt vergroten of verkleinen, kunt u de capaciteit handmatig wijzigen. De grootte van de schaalset wordt dan aangepast, waarna de load balancer wordt geconfigureerd voor het verdelen van het verkeer.

Maak eerst een schaalsetobject met Get-AzVmss en geef vervolgens een nieuwe waarde op voor sku.capacity. Gebruik Update-AzVmss om de capaciteitswijziging toe te passen. In het volgende voorbeeld wordt het aantal VM-exemplaren in de schaalset ingesteld op 3:

# 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 

Het duurt enkele minuten om de capaciteit van uw schaalset bij te werken. Gebruik Get-Az om het aantal exemplaren te zien dat u nu in de schaalset hebt:

Get-AzVm -ResourceGroupName "myResourceGroup" 

De volgende voorbeelduitvoer laat zien dat de capaciteit van de schaalset nu 3 is:

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   

VM-exemplaren in een schaalset stoppen en hun toewijzing ongedaan maken

Als u afzonderlijke VM-exemplaren wilt stoppen, gebruikt u Stop-AzVm en geeft u de exemplaarnamen op.

Stop-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"

Standaard worden gestopte VM's ongedaan gemaakt en worden er geen rekenkosten in rekening gebracht. Als u wilt dat de VM de ingerichte status blijft houden nadat deze is gestopt, voeg u de parameter -StayProvisioned toe aan de voorgaande opdracht. Voor gestopte VM's die ingericht blijven, worden periodieke compute-kosten in rekening gebracht.

VM-exemplaren in een schaalset starten

Als u alle VM-exemplaren in een schaalset wilt starten, gebruikt u Start-AzVmss.

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

Als u een afzonderlijk VM-exemplaar in een schaalset wilt starten, gebruikt u Start-AzVM en geeft u de naam van het exemplaar op.

Start-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"

VM-exemplaren in een schaalset opnieuw opstarten

Als u alle VM's in een schaalset opnieuw wilt opstarten, gebruikt u Restart-AzVmss.

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

Als u een afzonderlijk exemplaar opnieuw wilt starten, gebruikt u [Restart-AzVM] en geeft u de naam van het exemplaar op.

Restart-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"

Resources opschonen

Als u een resourcegroep verwijdert, verwijdert u ook alle resources binnen deze groep, zoals de VM-exemplaren, het virtuele netwerk en schijven. De -Force parameter bevestigt dat u de resources wilt verwijderen zonder een extra prompt om dit te doen. De parameter -AsJob retourneert het besturingselement naar de prompt zonder te wachten totdat de bewerking is voltooid.

Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob

Volgende stappen

In deze zelfstudie hebt u geleerd hoe u een aantal basistaken voor het maken en beheren van schaalsets kunt uitvoeren met Azure PowerShell:

  • Een brongroep maken
  • Een schaalset maken
  • Specifieke VM-grootten weergeven en gebruiken
  • Een schaalset handmatig schalen
  • Algemene beheertaken voor schaalsets uitvoeren, zoals stoppen, starten en opnieuw starten van uw schaalset

Ga naar de volgende zelfstudie om te leren hoe u verbinding maakt met uw schaalsetexemplaren.