Självstudie: Skapa och hantera en VM-skalningsuppsättning med Azure PowerShell

Gäller för: ✔️ Virtuella Linux-datorer:heavy_check_mark: Windows:heavy_check_mark: Uniform Scale Sets

Med en VM-skalningsuppsättning kan du distribuera och hantera en uppsättning identiska, virtuella datorer med automatisk skalning. Under livscykeln för en VM-skalningsuppsättning kan du behöva köra en eller flera hanteringsuppgifter. I den här guiden får du lära du dig hur man:

  • Skapa och anslut till en VM-skalningsuppsättning
  • Välja och använda VM-avbildningar
  • Visa och använd specifika virtuella datorstorlekar
  • Skala en skalningsuppsättning automatiskt
  • Utför vanliga hanteringsåtgärder för skalningsuppsättningar

Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.

Anteckning

I den här artikeln används Azure Az PowerShell-modulen, som är den rekommenderade PowerShell-modulen för att interagera med Azure. För att komma igång med Az PowerShell kan du läsa artikeln om att installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Använda Azure Cloud Shell

Azure är värd för Azure Cloud Shell, en interaktiv gränssnittsmiljö som du kan använda via webbläsaren. Du kan använda antingen Bash eller PowerShell med Cloud Shell för att arbeta med Azure-tjänster. Du kan använda förinstallerade Cloud Shell-kommandon för att köra koden i den här artikeln utan att behöva installera något i din lokala miljö.

Så här startar du Azure Cloud Shell:

Alternativ Exempel/länk
Välj Prova i det övre högra hörnet av ett kodblock. Om du väljer Prova kopieras koden inte automatiskt till Cloud Shell. Exempel på Prova för Azure Cloud Shell
Gå till https://shell.azure.com eller Välj knappen Starta Cloud Shell för att öppna Cloud Shell i webbläsaren. Starta Cloud Shell i ett nytt fönster
Välj knappen Cloud Shell på menyn längst upp till höger i Azure-portalen. Cloud Shell-knappen i Azure Portal

Så här kör du koden i den här artikeln i Azure Cloud Shell:

  1. Starta Cloud Shell.

  2. Kopiera koden genom att klicka på knappen Kopiera på ett kodblock.

  3. Klistra in koden i Cloud Shell-sessionen genom att välja Ctrl+Skift+V på Windows och Linux eller genom att välja Cmd+Skift+V på macOS.

  4. Välj Retur för att köra koden.

Skapa en resursgrupp

En Azure-resursgrupp är en logisk container där Azure-resurser distribueras och hanteras. En resursgrupp måste skapas före en VM-skalningsuppsättning. Skapa en resursgrupp med kommandot New-AzResourceGroup. I det här exemplet skapas en resursgrupp med namnet myResourceGroup i regionen EastUS.

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

Resursgruppens namn anges när du skapar eller ändrar en skalningsuppsättning under den här självstudien.

Skapa en skalningsuppsättning

Först anger du ett administratörsanvändarnamn och lösenord för virtuella datorer med Get-Credential:

$cred = Get-Credential

Skapa en VM-skalningsuppsättning med New-AzVmss. För att distribuera trafik till flera virtuella datorinstanser så skapas även en lastbalanserare. Lastbalanseraren innehåller regler för att distribuera trafik på TCP-port 80 och för att tillåta trafik för fjärrskrivbordet på TCP-port 3389 och PowerShell-fjärrkommunikation på TCP-port 5985:

New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet" `
  -Location "EastUS" `
  -VirtualNetworkName "myVnet" `
  -SubnetName "mySubnet" `
  -PublicIpAddressName "myPublicIPAddress" `
  -LoadBalancerName "myLoadBalancer" `
  -Credential $cred

Det tar några minuter att skapa och konfigurera alla skalningsuppsättningsresurser och virtuella datorinstanser.

Viktigt

Om du inte kan ansluta till din skalningsuppsättning kan du behöva skapa en nätverkssäkerhetsgrupp genom att lägga till parametern -SecurityGroupName "mySecurityGroup".

Visa de virtuella datorinstanserna i en skalningsuppsättning

Om du vill visa en lista med virtuella datorinstanser i en skalningsuppsättning, använder du Get-AzVmssVM på följande sätt:

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

Följande exempelutdata visar två virtuella datorinstanser i skalningsuppsättningen:

ResourceGroupName         Name Location             Sku InstanceID ProvisioningState
-----------------         ---- --------             --- ---------- -----------------
MYRESOURCEGROUP   myScaleSet_0   eastus Standard_DS1_v2          0         Succeeded
MYRESOURCEGROUP   myScaleSet_1   eastus Standard_DS1_v2          1         Succeeded

Om du vill visa mer information om en specifik VM-instans, lägger du till parametern -InstanceId till Get-AzVmssVM. Följande exempel visar information om den virtuella datorinstansen 1:

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

Lista anslutningsinformation

En offentlig IP-adress är tilldelad till lastbalanseraren som dirigerar trafik till de enskilda virtuella datorinstanserna. Som standard läggs NAT (Network Address Translation)-regler till Azure-lastbalanseraren som vidarebefordrar fjärranslutningstrafik till varje virtuell dator på en viss port. Om du vill ansluta till de virtuella datorinstanserna i en skalningsuppsättning, kan du skapa en fjärranslutning till en tilldelad offentlig IP-adress och portnummer.

Om du vill visa en lista med NAT-portar för anslutning till VM-instanser i en skalningsuppsättning hämtar du först lastbalanseringsobjektet med Get-AzLoadBalancer. Visa sedan de inkommande NAT-reglerna med Get-AzLoadBalancerInboundNatRuleConfig:

# Get the load balancer object
$lb = Get-AzLoadBalancer -ResourceGroupName "myResourceGroup" -Name "myLoadBalancer"

# View the list of inbound NAT rules
Get-AzLoadBalancerInboundNatRuleConfig -LoadBalancer $lb | Select-Object Name,Protocol,FrontEndPort,BackEndPort

Följande exempelutdata visar instansnamnet, den offentliga IP-adressen för lastbalanseraren och portnummer som NAT-regler vidarebefordrar trafik till:

Name             Protocol FrontendPort BackendPort
----             -------- ------------ -----------
myScaleSet3389.0 Tcp             50001        3389
myScaleSet5985.0 Tcp             51001        5985
myScaleSet3389.1 Tcp             50002        3389
myScaleSet5985.1 Tcp             51002        5985

Namnet på regeln överensstämmer med namnet på VM-instansen såsom visas i ett tidigare Get-AzVmssVM-kommando. Till exempel för att ansluta till den virtuella datorinstansen 0, använder du myScaleSet3389.0 och ansluter till porten 50001. För att ansluta till den virtuella datorinstansen 1, använder du värdet från myScaleSet3389.1 och ansluter till porten 50002. Om du vill använda PowerShell-fjärrkommunikation, ansluter du till lämplig virtuell datorinstansregel för TCP port 5985.

Visa den offentliga IP-adressen för lastbalanseraren med Get-AzPublicIpAddress:

Get-AzPublicIpAddress -ResourceGroupName "myResourceGroup" -Name "myPublicIPAddress" | Select IpAddress

Exempel på utdata:

IpAddress
---------
52.168.121.216

Skapa en fjärranslutning till din första virtuella datorinstans. Ange din offentliga IP-adress och portnummer för nödvändiga virtuella datorinstanser som de visas i föregående kommandon. När du uppmanas till det anger du de autentiseringsuppgifter som användes när du skapade skalningsuppsättningen (som standard i exempelkommandona azureuser och P @ ssw0rd!). Om du använder Azure Cloud Shell, utför du den här åtgärden från en lokal PowerShell-kommandotolk eller klienten för fjärrskrivbord. Följande exempel ansluter till den virtuella datorinstansen 1:

mstsc /v 52.168.121.216:50001

Efter att du loggat in på den virtuella datorinstansen kan du utföra vissa manuella konfigurationsändringar efter behov. Stäng fjärranslutningen för tillfället.

Förstå avbildningar av virtuella datorinstanser

Azure Marketplace innehåller många avbildningar som kan användas för att skapa VM-instanser. Använd kommandot Get-AzVMImagePublisher för att få en lista med tillgängliga utgivare.

Get-AzVMImagePublisher -Location "EastUS"

Du kan visa en lista över avbildningar för en viss utgivare med Get-AzVMImageSku. Listan med avbildningar kan även filtreras efter -PublisherName eller -Offer. I följande exempel filtreras listan för alla avbildningar med utgivarnamnet MicrosoftWindowsServer och ett erbjudande som matchar WindowsServer:

Get-AzVMImageSku -Location "EastUS" -PublisherName "MicrosoftWindowsServer" -Offer "WindowsServer"

Följande exempelutdata visar alla tillgängliga Windows Server-avbildningar:

Skus                                  Offer         PublisherName          Location
----                                  -----         -------------          --------
2008-R2-SP1                           WindowsServer MicrosoftWindowsServer eastus
2008-R2-SP1-smalldisk                 WindowsServer MicrosoftWindowsServer eastus
2012-Datacenter                       WindowsServer MicrosoftWindowsServer eastus
2012-Datacenter-smalldisk             WindowsServer MicrosoftWindowsServer eastus
2012-R2-Datacenter                    WindowsServer MicrosoftWindowsServer eastus
2012-R2-Datacenter-smalldisk          WindowsServer MicrosoftWindowsServer eastus
2016-Datacenter                       WindowsServer MicrosoftWindowsServer eastus
2016-Datacenter-Server-Core           WindowsServer MicrosoftWindowsServer eastus
2016-Datacenter-Server-Core-smalldisk WindowsServer MicrosoftWindowsServer eastus
2016-Datacenter-smalldisk             WindowsServer MicrosoftWindowsServer eastus
2016-Datacenter-with-Containers       WindowsServer MicrosoftWindowsServer eastus
2016-Datacenter-with-RDSH             WindowsServer MicrosoftWindowsServer eastus
2016-Nano-Server                      WindowsServer MicrosoftWindowsServer eastus

När du skapade en skalningsuppsättning i början av självstudien, angavs en standard virtuell datoravbildning på Windows Server 2016 DataCenter för de virtuella datorinstanserna. Du kan ange en annan virtuell datorinstans baserat på utdata från Get-AzVMImageSku. Följande exempel skapar en skalningsuppsättning som anges med parametern -ImageName för att ange en virtuell datoravbildning på MicrosoftWindowsServer:WindowsServer:2016-Datacenter-with-Containers:latest. Eftersom det tar några minuter att skapa och konfigurera alla skalningsuppsättningsresurser och virtuella datorinstanser så behöver du inte distribuera följande skalningsuppsättning:

New-AzVmss `
  -ResourceGroupName "myResourceGroup2" `
  -Location "EastUS" `
  -VMScaleSetName "myScaleSet2" `
  -VirtualNetworkName "myVnet2" `
  -SubnetName "mySubnet2" `
  -PublicIpAddressName "myPublicIPAddress2" `
  -LoadBalancerName "myLoadBalancer2" `
  -UpgradePolicyMode "Automatic" `
  -ImageName "MicrosoftWindowsServer:WindowsServer:2016-Datacenter-with-Containers:latest" `
  -Credential $cred

Viktigt

Vi rekommenderar att du använder den senaste avbildningsversionen. Ange "senaste" om du vill använda den senaste versionen av en avbildning som är tillgänglig vid distributionen. Observera att även om du använder "senaste" uppdateras inte VM-avbildningen automatiskt efter distributionstiden även om en ny version blir tillgänglig.

Förstå storlekar för virtuella datorinstanser

Storleken på en virtuell datorinstans, eller SKU, fastställer mängden beräkningsresurser som CPU, GPU och minne som görs tillgängliga för den virtuella datorinstansen. Virtuella datorinstanser i en skalningsuppsättning måste ha lämplig storlek för förväntad arbetsbelastning.

Storlekar på virtuella datorinstanser

Följande tabell kategoriserar vanliga virtuella datorstorlekar i användningsfall.

Typ Normala storlekar Beskrivning
Generell användning Dsv3, Dv3, DSv2, Dv2, DS, D, Av2, A0-7 Balanserat förhållande mellan processor och minne. Perfekt för utveckling eller test samt små till medelstora lösningar för program och data.
Beräkningsoptimerad Fs, F Högt förhållande mellan processor och minne. Bra för program med medelhög trafik, nätverkstillämpningar och batchprocesser.
Minnesoptimerad Esv3, Ev3, M, GS, G, DSv2, DS, Dv2, D Högt förhållande mellan minne och kärna. Utmärkt för relationsdatabaser, mellanstora till stora cacheminnen och minnesinterna analyser.
Lagringsoptimerad Ls Högt diskgenomflöde och I/O. Perfekt för stordata, SQL- och NoSQL-databaser.
GPU NV, NC Virtuella specialdatorer som är avsedda för tung grafisk rendering och videoredigering.
Höga prestanda H, A8-11 Virtuella datorer med de kraftfullaste processorerna och nätverksgränssnitt för stora dataflöden (RDMA).

Hitta tillgängliga storlekar för virtuella datorinstanser

Om du vill se en lista med storlekar på virtuella datorinstanser som är tillgängliga i en viss region kan du använda kommandot Get-AzVMSize.

Get-AzVMSize -Location "EastUS"

Utdata liknar följande komprimerade exempel som visar resurserna som tilldelats varje virtuell datorstorlek:

Name                   NumberOfCores MemoryInMB MaxDataDiskCount OSDiskSizeInMB ResourceDiskSizeInMB
----                   ------------- ---------- ---------------- -------------- --------------------
Standard_DS1_v2                    1       3584                4        1047552                 7168
Standard_DS2_v2                    2       7168                8        1047552                14336
[...]
Standard_A0                        1        768                1        1047552                20480
Standard_A1                        1       1792                2        1047552                71680
[...]
Standard_F1                        1       2048                4        1047552                16384
Standard_F2                        2       4096                8        1047552                32768
[...]
Standard_NV6                       6      57344               24        1047552               389120
Standard_NV12                     12     114688               48        1047552               696320

När du skapade en skalningsuppsättning i början av självstudien angavs en standard-VM-SKU på Standard_DS1_v2 för de virtuella datorinstanserna. Du kan ange en annan virtuell datorinstans-storlek baserat på utdata från Get-AzVMSize. Följande exempel skapar en skalningsuppsättning med parametern -VmSize för att ange en virtuell datorinstans-storlek på Standard_F1. Eftersom det tar några minuter att skapa och konfigurera alla skalningsuppsättningsresurser och virtuella datorinstanser så behöver du inte distribuera följande skalningsuppsättning:

New-AzVmss `
  -ResourceGroupName "myResourceGroup3" `
  -Location "EastUS" `
  -VMScaleSetName "myScaleSet3" `
  -VirtualNetworkName "myVnet3" `
  -SubnetName "mySubnet3" `
  -PublicIpAddressName "myPublicIPAddress3" `
  -LoadBalancerName "myLoadBalancer3" `
  -UpgradePolicyMode "Automatic" `
  -VmSize "Standard_F1" `
  -Credential $cred

Ändra kapaciteten för en skalningsuppsättning

När du har skapat en skalningsuppsättning, begärde du två virtuella datorinstanser. Om du vill öka eller minska antalet virtuella datorinstanser i din befintliga skalningsuppsättning, kan du manuellt ändra kapaciteten. Skalningsuppsättningen skapar eller tar bort antalet virtuella datorinstanser som krävs och konfigurerar sedan lastbalanseraren att distribuera trafiken.

Skapa först ett skalningsuppsättningsobjekt med Get-AzVmss och ange sedan ett nytt värde för sku.capacity. Om du vill tillämpa kapacitetsändringen, använder du Update-AzVmss. Följande exempel anger antalet virtuella datorinstanser i din skalningsuppsättning till 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 

Det tar några minuter att uppdatera kapaciteten för din skalningsuppsättning. Om du vill se antalet instanser som du har i skalningsuppsättningen för tillfället, använder du Get-AzVmss:

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

Följande exempelutdata visar att kapaciteten för skalningsuppsättningen nu är 3:

Sku        :
  Name     : Standard_DS2
  Tier     : Standard
  Capacity : 3

Vanliga administrativa uppgifter

Du kan nu skapa en skalningsuppsättning, lista anslutningsinformationen och ansluta till virtuella datorinstanser. Du har lärt dig hur du kan använda en annan OS-avbildning för dina virtuella datorinstanser, välja en annan virtuell datorstorlek eller manuellt skala antalet instanser manuellt. Som en del av den dagliga hanteringen, kan du behöva stoppa, starta eller starta om de virtuella datorinstanserna i en skalningsuppsättning.

Stoppa och frigöra virtuella datorinstanser i en skalningsuppsättning

Om du vill stoppa en eller flera virtuella datorer i en skalningsuppsättning, använder du Stop-AzVmss. Parametern -InstanceId låter dig ange en eller flera virtuella datorer att stoppa. Om du inte anger ett instans-ID, stoppas alla virtuella datorer i skalningsuppsättningen. Följande exempel stoppar instansen 1:

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

Som standard frigörs stoppade virtuella datorer och uppbär inga beräkningskostnader. Om du vill att den virtuella datorn är kvar i etablerat tillstånd när den stoppats, lägger du till parametern -StayProvisioned till det föregående kommandot. Stoppade virtuella datorer som fortsätter att vara etablerade, kostar vanliga beräkningsavgifter.

Starta virtuella datorinstanser i en skalningsuppsättning

Om du vill starta en eller flera virtuella datorer i en skalningsuppsättning, använder du Start-AzVmss. Parametern -InstanceId låter dig ange en eller flera virtuella datorer att starta. Om du inte anger ett instans-ID, startas alla virtuella datorer i skalningsuppsättningen. Följande exempel startar instansen 1:

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

Starta om virtuella datorinstanser i en skalningsuppsättning

Om du vill starta om en eller flera virtuella datorer i en skalningsuppsättning, använder du Retart-AzVmss. Parametern -InstanceId låter dig ange en eller flera virtuella datorer att starta om. Om du inte anger ett instans-ID, startas alla virtuella datorer i skalningsuppsättningen om. Följande exempel startar om instansen 1:

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

Rensa resurser

Om en resursgrupp tas bort, tas även alla resurser som ingår i gruppen bort, som de virtuella datorinstanserna, det virtuella nätverket och diskarna tas också bort. Parametern -Force bekräftar att du vill ta bort resurserna utan att tillfrågas ytterligare en gång. Parametern -AsJob återför kontrollen till kommandotolken utan att vänta på att uppgiften slutförs.

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

Nästa steg

I den här självstudien fick du lära dig hur du utför vissa grundläggande skapande och hanteringsåtgärder för skalningsuppsättningar med Azure PowerShell:

  • Skapa och anslut till en VM-skalningsuppsättning
  • Välja och använda VM-avbildningar
  • Visa och använda specifika VM-storlekar
  • Skala en skalningsuppsättning automatiskt
  • Utför vanliga hanteringsåtgärder för skalningsuppsättningar

Gå vidare till nästa självstudie om du vill lära dig mer om diskar i skalningsuppsättningar.