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

Med en vm-skalningsuppsättning kan du distribuera och hantera en uppsättning virtuella datorer. Under livscykeln för en VM-skalningsuppsättning kan du behöva köra en eller flera hanteringsuppgifter. I den här självstudiekursen får du lära du dig att:

  • Skapa en resursgrupp
  • Skapa en VM-skalningsuppsättning
  • Skala ut och in
  • Stoppa, starta och starta om virtuella datorinstanser

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

Förutsättningar

Den här artikeln kräver version 2.0.29 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.

Skapa en resursgrupp

En Azure-resursgrupp är en logisk container där Azure-resurser distribueras och hanteras. En resursgrupp måste skapas innan en VM-skalningsuppsättning. Skapa en resursgrupp med kommandot az group create. I det här exemplet skapas en resursgrupp med namnet myResourceGroup i regionen eastus.

az group create --name 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

Viktigt!

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

Du skapar en vm-skalningsuppsättning med kommandot az vmss create . I följande exempel skapas en skalningsuppsättning med namnet myScaleSet och genererar SSH-nycklar om de inte finns:

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --orchestration-mode flexible \
  --image <SKU image> \
  --admin-username azureuser \
  --generate-ssh-keys

Det tar några minuter att skapa och konfigurera alla skalningsuppsättningsresurser och virtuella datorinstanser. För att distribuera trafik till flera virtuella datorinstanser så skapas även en lastbalanserare.

Visa information om de virtuella datorinstanserna i din skalningsuppsättning

Om du vill visa en lista över virtuella datorinstanser i en skalningsuppsättning använder du az vm list på följande sätt:

az vm list --resource-group myResourceGroup --output table

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

Name                 ResourceGroup    Location    Zones
-------------------  ---------------  ----------  -------
myScaleSet_instance1  myResourceGroup  eastus
myScaleSet_instance2  myResourceGroup  eastus

Om du vill se ytterligare information om en specifik VM-instans använder du az vm show och anger namnet på den virtuella datorn.

az vm show --resource-group myResourceGroup --name myScaleSet_instance1
{
  "hardwareProfile": {
    "vmSize": "Standard_DS1_v2",
  },
  "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myScaleSet_instance1",
  "location": "eastus",
  "name": "myScaleSet_instance1",
  "networkProfile": {
    "networkInterfaces": [
      {
        "deleteOption": "Delete",
        "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/mysca2215Nic-0396c71c",
        "primary": true,
        "resourceGroup": "myResourceGroup"
      }
    ]
  },
  "osProfile": {
    "adminUsername": "azureuser",
    "allowExtensionOperations": true,
    "computerName": "myScaleSN30BP1",
    "linuxConfiguration": {
      "disablePasswordAuthentication": true,
      "enableVmAgentPlatformUpdates": false,
      "patchSettings": {
        "assessmentMode": "ImageDefault",
        "patchMode": "ImageDefault"
      },
      "provisionVmAgent": true,
      "ssh": {
        "publicKeys": [
          {
            "keyData": "ssh-rsa",
            "path": "/home/azureuser/.ssh/authorized_keys"
          }
        ]
      }
    },
    "requireGuestProvisionSignal": true,
    "secrets": [],
  },
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "storageProfile": {
    "dataDisks": [],
    "imageReference": {
      "exactVersion": "XXXXX",
      "offer": "myOffer",
      "publisher": "myPublisher",
      "sku": "mySKU",
      "version": "latest"
    },
    "osDisk": {
      "caching": "ReadWrite",
      "createOption": "FromImage",
      "deleteOption": "Delete",
      "diskSizeGb": 30,
      "managedDisk": {
        "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myScaleSet_instance1_disk1",
        "resourceGroup": "myResourceGroup",
        "storageAccountType": "Premium_LRS"
      },
      "name": "myScaleSet_instance1_disk1",
      "osType": "Linux",
    }
  },
  "tags": {},
  "timeCreated": "2022-11-16T20:32:15.024581+00:00",
  "type": "Microsoft.Compute/virtualMachines",
  "virtualMachineScaleSet": {
    "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet",
    "resourceGroup": "myResourceGroup"
  },
}

Skapa en skalningsuppsättning med en virtuell datorinstans av en viss storlek

När du skapade en skalningsuppsättning i början av självstudien, angavs en standard virtuell dator-SKU på Standard_D1_v2 för de virtuella datorinstanserna. Du kan ange en annan virtuell datorinstans-storlek baserat på utdata från az vm list-sizes. Följande exempel skapar en skalningsuppsättning med parametern --vm-sku 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:

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --orchestration-mode flexible \
  --image <SKU image> \
  --vm-sku Standard_F1 \
  --admin-user azureuser \
  --generate-ssh-keys

Ändra kapaciteten för en skalningsuppsättning

När du skapade en skalningsuppsättning i början av självstudien, distribuerades två virtuella datorinstanser som standard. Du kan ange parametern --instance-count med az vmss create för att ändra antalet instanser som skapas med en skalningsuppsättning. 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.

Om du vill öka eller minska antalet virtuella datorinstanser manuellt i skalningsuppsättningen, använder du az vmss scale. Följande exempel anger antalet virtuella datorinstanser i din skalningsuppsättning till 3:

az vmss scale \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --new-capacity 3

Det tar några minuter att uppdatera kapaciteten för din skalningsuppsättning. Om du vill se antalet instanser som du nu har i skalningsuppsättningen använder du az vm list and query på den associerade resursgruppen.

az vm list --resource-group myResourceGroup --output table
Name                 ResourceGroup    Location    Zones
-------------------  ---------------  ----------  -------
myScaleSet_instance1  myResourceGroup  eastus
myScaleSet_instance2  myResourceGroup  eastus
myScaleSet_instance3  myResourceGroup  eastus

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

Om du vill stoppa alla vm-instanser i en skalningsuppsättning använder du az vmss stop.

az vmss stop \
  --resource-group myResourceGroup \
  --name myScaleSet

Om du vill stoppa enskilda VM-instanser i en skalningsuppsättning använder du az vm stop och anger instansnamnet.

az vm stop \
  --resource-group myResourceGroup \
  --name myScaleSet_instance1

Stoppade virtuella datorinstanser är fortfarande allokerade och fortsätter att kosta beräkningsavgifter. Om du i stället vill att de virtuella datorinstanserna ska frigöras och endast debiteras lagringsavgifter använder du az vm deallocate och anger de instansnamn som du vill frigöra.

az vm deallocate \
  --resource-group myResourceGroup \
  --name myScaleSet_instance1

Starta virtuella datorinstanser i en skalningsuppsättning

Om du vill starta alla vm-instanser i en skalningsuppsättning använder du az vmss start.

az vmss start \
  --resource-group myResourceGroup \
  --name myScaleSet

Om du vill starta enskilda VM-instanser i en skalningsuppsättning använder du az vm start och anger instansnamnet.

az vm start \
  --resource-group myResourceGroup \
  --name myScaleSet_instance1

Starta om virtuella datorinstanser i en skalningsuppsättning

Om du vill starta om alla vm-instanser i en skalningsuppsättning använder du az vmss restart.

az vmss restart \
  --resource-group myResourceGroup \
  --name myScaleSet

Om du vill starta om enskilda VM-instanser i en skalningsuppsättning använder du az vm restart och anger instansnamnet.

az vm restart \
  --resource-group myResourceGroup \
  --name myScaleSet_instance1

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 --no-wait återför kontrollen till kommandotolken utan att vänta på att uppgiften slutförs. Parametern --yes bekräftar att du vill ta bort resurserna utan en extra uppmaning om att göra det.

az group delete --name myResourceGroup --no-wait --yes

Nästa steg

I den här självstudien beskrivs hur du utför vissa grundläggande skapande och hanteringsåtgärder för skalningsuppsättningar med Azure CLI:

  • Skapa en resursgrupp
  • Skapa en skalningsuppsättning
  • Visa och använda specifika VM-storlekar
  • Skala en skalningsuppsättning automatiskt
  • Utför vanliga skalningsuppsättningshanteringsuppgifter som att stoppa, starta och starta om skalningsuppsättningen

Gå vidare till nästa självstudie för att lära dig hur du ansluter till dina skalningsuppsättningsinstanser.