Esercitazione: Creare e gestire un set di scalabilità di macchine virtuali con l'interfaccia della riga di comando di Azure

Un set di scalabilità di macchine virtuali consente di distribuire e gestire un set di macchine virtuali. Nel ciclo di vita del set di scalabilità di una macchina virtuale potrebbe essere necessario eseguire una o più attività di gestione. In questa esercitazione si apprenderà come:

  • Creare un gruppo di risorse
  • Creare un set di scalabilità di macchine virtuali
  • Aumentare e ridurre il numero di istanze
  • Arrestare, avviare e riavviare le istanze di macchina virtuale

Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.

Prerequisiti

Questo articolo richiede la versione 2.0.29 dell'interfaccia della riga di comando di Azure. Se si usa Azure Cloud Shell, la versione più recente è già installata.

Creare un gruppo di risorse

Un gruppo di risorse di Azure è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite. È necessario creare un gruppo di risorse prima di un set di scalabilità di macchine virtuali. Creare un gruppo di risorse con il comando az group create. In questo esempio viene creato un gruppo di risorse denominato myResourceGroup nell'area eastus.

az group create --name myResourceGroup --location eastus

In questa esercitazione, il nome del gruppo di risorse viene specificato quando si crea o si modifica un set di scalabilità.

Creare un set di scalabilità

Importante

A partire da novembre 2023, i set di scalabilità di macchine virtuali creati con PowerShell e l'interfaccia della riga di comando di Azure avranno per impostazione predefinita la modalità di orchestrazione flessibile se non è specificata alcuna modalità di orchestrazione. Per altre informazioni su questa modifica e sulle azioni da eseguire, vedere Modifica che causa un'interruzione per i clienti di PowerShell/CLI di VMSS - Hub della community Microsoft

Creare un set di scalabilità di macchine virtuali con il comando az vmss create . L'esempio seguente crea un set di scalabilità denominato myScaleSet e genera chiavi SSH se non esistono:

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

La creazione e la configurazione di tutte le risorse e le istanze di VM del set di scalabilità richiedono alcuni minuti. Per distribuire il traffico alle singole istanze di macchine virtuali, viene creato anche un servizio di bilanciamento del carico.

Visualizzare informazioni sulle istanze di macchina virtuale nel set di scalabilità

Per visualizzare un elenco di istanze di macchine virtuali in un set di scalabilità, usare az vm list come indicato di seguito:

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

L'output di esempio seguente mostra due istanze di VM nel set di scalabilità:

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

Per visualizzare informazioni aggiuntive su un'istanza di macchina virtuale specifica, usare az vm show e specificare il nome della macchina virtuale.

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

Creare un set di scalabilità con una dimensione di istanza di VM specifica

Quando è stato creato un set di scalabilità all'inizio dell'esercitazione, per le istanze di VM è stato usato lo SKU di VM predefinito Standard_D1_v2. È possibile specificare una dimensione di istanza di VM diversa in base all'output di az vm list-sizes. L'esempio seguente creerà un set di scalabilità con il parametro --vm-sku per specificare la dimensione di istanza di VM Standard_F1. Dato che la creazione e la configurazione di tutte le risorse e le istanze di VM del set di scalabilità richiedono alcuni minuti, non è necessario distribuire il set di scalabilità seguente:

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

Modificare la capacità di un set di scalabilità

Quando è stato creato un set di scalabilità all'inizio dell'esercitazione, per impostazione predefinita sono state distribuite due istanze di VM. È possibile specificare il parametro --instance-count con az vmss create per modificare il numero delle istanze create con un set di scalabilità. Per aumentare o ridurre il numero di istanze di VM nel set di scalabilità esistente, è possibile modificare la capacità manualmente. Il set di scalabilità crea o rimuove il numero necessario di istanze di VM, quindi configura il servizio di bilanciamento del carico per la distribuzione del traffico.

Per aumentare o ridurre manualmente il numero di istanze di VM nel set di scalabilità, usare az vmss scale. L'esempio seguente imposta il numero di istanze di VM nel set di scalabilità su 3:

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

Sono necessari alcuni minuti per aggiornare la capacità del set di scalabilità. Per visualizzare il numero di istanze ora disponibili nel set di scalabilità, usare az vm list e query nel gruppo di risorse associato.

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

Arrestare e deallocare le istanze di VM di un set di scalabilità

Per arrestare tutte le istanze di macchina virtuale in un set di scalabilità, usare az vmss stop.

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

Per arrestare singole istanze di vm in un set di scalabilità, usare az vm stop e specificare il nome dell'istanza.

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

Le istanze di VM arrestate rimangono allocate e continuano a comportare l'addebito di costi di calcolo. Se invece si vuole deallocare le istanze della macchina virtuale e comportare solo addebiti per l'archiviazione, usare az vm deallocate e specificare i nomi di istanza da deallocare.

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

Avviare le istanze di VM di un set di scalabilità

Per avviare tutte le istanze di macchina virtuale in un set di scalabilità, usare az vmss start.

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

Per avviare singole istanze di vm in un set di scalabilità, usare az vm start e specificare il nome dell'istanza.

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

Riavviare le istanze di VM di un set di scalabilità

Per riavviare tutte le istanze di macchina virtuale in un set di scalabilità, usare az vmss restart.

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

Per riavviare singole istanze di vm in un set di scalabilità, usare az vm restart e specificare il nome dell'istanza.

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

Pulire le risorse

Quando si elimina un gruppo di risorse, vengono eliminate anche tutte le risorse in esso contenute, come le istanze di VM, la rete virtuale e i dischi. Il parametro --no-wait restituisce il controllo al prompt senza attendere il completamento dell'operazione. Il parametro --yes conferma che si desidera eliminare le risorse senza un prompt aggiuntivo a tale scopo.

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

Passaggi successivi

In questa esercitazione si è appreso come eseguire alcune attività di base per la creazione e la gestione dei set di scalabilità con l'interfaccia della riga di comando di Azure:

  • Creare un gruppo di risorse
  • Creare un set di scalabilità
  • Visualizzare e usare macchine virtuali di dimensioni specifiche
  • Ridimensionare manualmente un set di scalabilità
  • Eseguire attività comuni di gestione dei set di scalabilità, ad esempio l'arresto, l'avvio e il riavvio del set di scalabilità

Per informazioni su come connettersi alle istanze del set di scalabilità, procedere con l'esercitazione successiva.