Zelfstudie: Een virtuele-machineschaalset maken en beheren met de Azure CLI

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, kunt u een gratis Azure-account maken voordat u begint.

Vereisten

Voor dit artikel is versie 2.0.29 of hoger van Azure CLI vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.

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. Een resourcegroep maken met de opdracht az group create. In dit voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt in de regio eastus.

az group create --name myResourceGroup --location eastus

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

Een schaalset maken

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

U maakt een virtuele-machineschaalset met de opdracht az vmss create . In het volgende voorbeeld wordt een schaalset met de naam myScaleSet gemaakt en worden SSH-sleutels gegenereerd als deze niet bestaan:

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

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.

Informatie weergeven over de VM-exemplaren in uw schaalset

Als u een lijst met VM-exemplaren in een schaalset wilt weergeven, gebruikt u az vm list als volgt:

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

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

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

Als u meer informatie over een specifiek VM-exemplaar wilt zien, gebruikt u az vm show en geeft u de naam van de virtuele machine op.

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"
  },
}

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 grootte voor het VM-exemplaar opgeven op basis van de uitvoer van az vm list-sizes. In het volgende voorbeeld wordt een schaalset gemaakt met de parameter --vm-sku om een VM-exemplaargrootte op te geven van Standard_F1. Aangezien het enkele minuten duurt om alle schaalsetresources en VM-exemplaren te maken en te configureren, hoeft u de volgende schaalset niet te implementeren:

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

De capaciteit van een schaalset wijzigen

Toen u aan het begin van de zelfstudie een schaalset hebt gemaakt, zijn er standaard twee VM-exemplaren geïmplementeerd. U kunt de parameter --instance-count opgeven met az vmss create om het aantal exemplaren te wijzigen dat wordt gemaakt met een schaalset. Als u het aantal VM-exemplaren in een bestaande 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.

Als u het aantal VM-exemplaren in de schaalset handmatig wilt vergroten of verkleinen, gebruikt u az vmss scale. In het volgende voorbeeld wordt het aantal VM-exemplaren in de schaalset ingesteld op 3:

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

Het duurt enkele minuten om de capaciteit van uw schaalset bij te werken. Als u het aantal exemplaren wilt zien dat u nu in de schaalset hebt, gebruikt u az vm list en query voor de bijbehorende resourcegroep.

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

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

Als u alle VM-exemplaren in een schaalset wilt stoppen, gebruikt u az vmss stop.

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

Als u afzonderlijke VM-exemplaren in een schaalset wilt stoppen, gebruikt u az vm stop en geeft u de naam van het exemplaar op.

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

De toewijzing van gestopte VM-exemplaren wordt niet ongedaan gemaakt, wat betekent dat er nog steeds compute-kosten in rekening worden gebracht voor deze exemplaren. Als u in plaats daarvan wilt dat de toewijzing van de VM-exemplaren ongedaan wordt gemaakt en alleen opslagkosten in rekening worden gebracht, gebruikt u az vm deallocate en geeft u de naam van de instantie op die u de toewijzing ongedaan wilt maken.

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

VM-exemplaren in een schaalset starten

Als u alle VM-exemplaren in een schaalset wilt starten, gebruikt u az vmss start.

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

Als u afzonderlijke VM-exemplaren in een schaalset wilt starten, gebruikt u az vm start en geeft u de naam van het exemplaar op.

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

VM-exemplaren in een schaalset opnieuw opstarten

Als u alle VM-exemplaren in een schaalset opnieuw wilt opstarten, gebruikt u az vmss restart.

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

Als u afzonderlijke VM-exemplaren in een schaalset opnieuw wilt starten, gebruikt u az vm restart en geeft u de naam van het exemplaar op.

az vm restart \
  --resource-group 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 parameter --no-wait retourneert het besturingselement naar de prompt zonder te wachten totdat de bewerking is voltooid. De --yes parameter bevestigt dat u de resources wilt verwijderen zonder een extra prompt om dit te doen.

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

Volgende stappen

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

  • 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.