Dela via


Snabbstart: Skapa en VM-skalningsuppsättning med Azure PowerShell

Gäller för: ✔️ Virtuella Linux-datorer ✔️ Virtuella Windows-datorer ✔️ Enhetliga skalningsuppsättningar

Anteckning

Följande artikel gäller enhetliga skalningsuppsättningar för virtuella datorer. Vi rekommenderar att du använder Flexibla Skalningsuppsättningar för Virtuella Maskiner för nya arbetsbelastningar. Läs mer om det här nya orkestreringsläget i översikt över flexibla VM-skalningsuppsättningar.

En uppsättning för skalning av virtuella maskiner gör det möjligt att distribuera och hantera en uppsättning virtuella datorer med automatisk skalning. Du kan skala antalet virtuella datorer i skalningsuppsättningen manuellt eller definiera regler för automatisk skalning baserat på resursanvändning, till exempel CPU, minneskrav eller nätverkstrafik. En Azure-lastbalanserare distribuerar sedan trafiken till de virtuella datorinstanserna i skalningsuppsättningen. I den här snabbstarten skapar du en VM-skalningsuppsättning och distribuerar ett exempelprogram med Azure PowerShell.

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

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 på i det övre högra hörnet av ett kod- eller kommandoblock. Om du väljer Prova kopieras inte koden eller kommandot automatiskt till Cloud Shell. Skärmbild som visar ett exempel på Try It for 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. Knapp för att starta Azure Cloud Shell.
Välj knappen Cloud Shell på menyn längst upp till höger i Azure-portalen. Skärmbild som visar Cloud Shell-knappen i Azure Portal

Så här använder du Azure Cloud Shell:

  1. Starta Cloud Shell.

  2. Välj knappen Kopiera i ett kodblock (eller kommandoblock) för att kopiera koden eller kommandot.

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

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

Skapa en skalningsgrupp

Innan du kan skapa en skalningsuppsättning skapar du en resursgrupp med New-AzResourceGroup. I följande exempel skapas en resursgrupp med namnet myResourceGroup på platsen eastus:

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

Skapa nu en skalningsuppsättning för virtuella maskiner med New-AzVmss. I följande exempel skapas en skalningsuppsättning med namnet myScaleSet som använder Windows Server 2016 Datacenter-plattformsavbildningen. Azure-nätverksresurser för virtuellt nätverk, offentlig IP-adress och lastbalanserare skapas automatiskt. När du uppmanas kan du ange dina egna administrativa autentiseringsuppgifter för de virtuella datorinstanserna i skalningsuppsättningen:

Viktigt!

Från och med november 2023 kommer VM-skalningsuppsättningar som skapats med PowerShell och Azure CLI som standard att vara i Flexibelt Orkestreringsläge om inget annat orkestreringsläge har angetts. Mer information om den här ändringen och vilka åtgärder du bör vidta finns i Breaking Change för VMSS PowerShell/CLI-kunder – Microsoft Community Hub.

New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -Location "EastUS" `
  -VMScaleSetName "myScaleSet" `
  -VirtualNetworkName "myVnet" `
  -SubnetName "mySubnet" `
  -PublicIpAddressName "myPublicIPAddress" `
  -LoadBalancerName "myLoadBalancer" `
  -OrchestrationMode 'Uniform' `
  -UpgradePolicyMode "Automatic"

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

Distribuera exempelprogram

Testa din skalningsuppsättning genom att installera ett grundläggande webbprogram. Det anpassade skripttillägget i Azure används för att hämta och köra ett skript som installerar IIS på de virtuella datorinstanserna. Det här tillägget är användbart för konfiguration efter distribution, programvaruinstallation eller andra konfigurerings-/hanteringsuppgifter. Mer information finns i översikten över tillägget för anpassat skript.

Använd det anpassade skripttillägget för att installera en grundläggande IIS-webbserver. Tillämpa tillägget för anpassat skript som installerar IIS på följande sätt:

# Define the script for your Custom Script Extension to run
$publicSettings = @{
    "fileUris" = (,"https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate-iis.ps1");
    "commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File automate-iis.ps1"
}

# Get information about the scale set
$vmss = Get-AzVmss `
            -ResourceGroupName "myResourceGroup" `
            -VMScaleSetName "myScaleSet"

# Use Custom Script Extension to install IIS and configure basic website
Add-AzVmssExtension -VirtualMachineScaleSet $vmss `
    -Name "customScript" `
    -Publisher "Microsoft.Compute" `
    -Type "CustomScriptExtension" `
    -TypeHandlerVersion 1.8 `
    -Setting $publicSettings

# Update the scale set and apply the Custom Script Extension to the VM instances
Update-AzVmss `
    -ResourceGroupName "myResourceGroup" `
    -Name "myScaleSet" `
    -VirtualMachineScaleSet $vmss

Tillåta trafik till applikation

Om du vill tillåta åtkomst till den grundläggande webbappen måste du skapa en nätverkssäkerhetsgrupp med New-AzNetworkSecurityRuleConfig och New-AzNetworkSecurityGroup. Mer information finns i Nätverk för Azure Virtual Machine Scale Sets.

# Get information about the scale set
$vmss = Get-AzVmss `
            -ResourceGroupName "myResourceGroup" `
            -VMScaleSetName "myScaleSet"

#Create a rule to allow traffic over port 80
$nsgFrontendRule = New-AzNetworkSecurityRuleConfig `
  -Name myFrontendNSGRule `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 200 `
  -SourceAddressPrefix * `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 80 `
  -Access Allow

#Create a network security group and associate it with the rule
$nsgFrontend = New-AzNetworkSecurityGroup `
  -ResourceGroupName  "myResourceGroup" `
  -Location EastUS `
  -Name myFrontendNSG `
  -SecurityRules $nsgFrontendRule

$vnet = Get-AzVirtualNetwork `
  -ResourceGroupName  "myResourceGroup" `
  -Name myVnet

$frontendSubnet = $vnet.Subnets[0]

$frontendSubnetConfig = Set-AzVirtualNetworkSubnetConfig `
  -VirtualNetwork $vnet `
  -Name mySubnet `
  -AddressPrefix $frontendSubnet.AddressPrefix `
  -NetworkSecurityGroup $nsgFrontend

Set-AzVirtualNetwork -VirtualNetwork $vnet

# Update the scale set and apply the Custom Script Extension to the VM instances
Update-AzVmss `
    -ResourceGroupName "myResourceGroup" `
    -Name "myScaleSet" `
    -VirtualMachineScaleSet $vmss

Testa din skalningsuppsättning

Om du vill se ditt skalningssystem i praktiken, öppna webbprogrammet i exemplet i en webbläsare. Hämta den offentliga IP-adressen för lastbalanseraren med hjälp av Get-AzPublicIpAddress. I följande exempel visas den IP-adress som skapats i resursgruppen myResourceGroup:

Get-AzPublicIpAddress -ResourceGroupName "myResourceGroup" | Select IpAddress

Skriv den offentliga IP-adressen för lastbalanseraren i en webbläsare. Lastbalanseraren distribuerar trafik till en av dina VM-instanser enligt följande exempel:

Driva IIS-webbplats

Rensa resurser

När resursgruppen inte längre behövs kan du använda Remove-AzResourceGroup för att ta bort den, skalningsuppsättningen och alla relaterade resurser på följande sätt. 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 snabbstarten skapade du en grundläggande skalningsuppsättning och använde det anpassade skripttillägget för att installera en grundläggande IIS-webbserver på de virtuella datorinstanserna. Mer information finns i handledningen om hur du skapar och hanterar Azure-skalningsuppsättningar för virtuella datorer.