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
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido su Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere tramite l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
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.