Esercitazione: Creare e gestire un set di scalabilità di macchine virtuali con Azure PowerShell

Un set di scalabilità di macchine virtuali consente di distribuire e gestire un set di macchine virtuali. Durante tutto il ciclo di vita di un set di scalabilità di macchine virtuali, 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 gratuito prima di iniziare.

Azure Cloud Shell

Azure Cloud Shell è un ambiente di shell interattivo ospitato in Azure e usato tramite il browser. È possibile usare Bash o PowerShell con Cloud Shell per usare i servizi di Azure. È possibile usare i comandi preinstallati di Cloud Shell per eseguire il codice in questo articolo, senza dover installare alcun elemento nell'ambiente locale.

Per avviare Azure Cloud Shell:

Opzione Esempio/Collegamento
Selezionare Prova nell'angolo superiore destro di un codice o di un blocco di comandi. Selezionando Prova non viene copiato automaticamente il codice o il comando in Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Passare a https://shell.azure.com o selezionare il pulsante Avvia Cloud Shell per aprire Cloud Shell nel browser. Button to launch Azure Cloud Shell.
Selezionare il pulsante Cloud Shell nella barra dei menu nell'angolo in alto a destra del portale di Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Per usare Azure Cloud Shell:

  1. Avviare Cloud Shell.

  2. Selezionare il pulsante Copia in un blocco di codice (o blocco di comandi) per copiare il codice o il comando.

  3. Incollare il codice o il comando nella sessione di Cloud Shell selezionando CTRL+MAIUSC+V in Windows e Linux oppure selezionando CMD+MAIUSC+V in macOS.

  4. Selezionare INVIO per eseguire il codice o il comando.

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 New-AzResourceGroup. In questo esempio viene creato un gruppo di risorse denominato myResourceGroup nell'area EastUS.

New-AzResourceGroup -ResourceGroupName "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à di macchine virtuali

Impostare prima di tutto nome utente e password dell'amministratore delle istanze di macchine virtuali con il comando Get-Credential:

$cred = Get-Credential

Creare ora un set di scalabilità di macchine virtuali con New-AzVmss. Per distribuire il traffico alle singole istanze di macchine virtuali, viene creato anche un servizio di bilanciamento del carico. Il servizio di bilanciamento del carico include regole per distribuire il traffico sulla porta TCP 80 e consentire il traffico desktop remoto sulla porta TCP 3389 e la comunicazione remota di PowerShell sulla porta TCP 5985:

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 per impostazione predefinita saranno modalità di orchestrazione flessibile se non è specificata alcuna modalità di orchestrazione. Per altre informazioni su questa modifica e sulle azioni da eseguire, vedere Modifica di rilievo per i clienti di PowerShell/interfaccia della riga di comando di VMSS - Hub della community Microsoft

New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet" `
  -OrchestrationMode "Flexible" `
  -Location "EastUS" `
  -Credential $cred

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 le istanze di VM in un set di scalabilità

Per visualizzare un elenco di istanze di macchine virtuali in un set di scalabilità, usare Get-AzVM come indicato di seguito:

Get-AzVM -ResourceGroupName "myResourceGroup"

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

ResourceGroupName                Name Location          VmSize  OsType      ProvisioningState 
-----------------                ---- --------          ------  ------       ----------------- 
myResourceGroup   myScaleSet_instance1   eastus Standard_DS1_v2 Windows         Succeeded     
myResourceGroup   myScaleSet_instance2   eastus Standard_DS1_v2 Windows         Succeeded     

Per visualizzare informazioni aggiuntive su un'istanza di macchina virtuale specifica, usare Get-AzVM e specificare il nome della macchina virtuale.

Get-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1" 
ResourceGroupName      : myresourcegroup
Id                     : /subscriptions/resourceGroups/myresourcegroup/providers/Microsoft.Compute/virtualMachines/myScaleSet_instance1
VmId                   : d27b5fde-d469-4087-b08f-87d0bd8df786
Name                   : myScaleSet_instance1
Type                   : Microsoft.Compute/virtualMachines
Location               : eastus
Tags                   : {}
HardwareProfile        : {VmSize}
NetworkProfile         : {NetworkInterfaces}
OSProfile              : {ComputerName, AdminUsername, WindowsConfiguration, Secrets, AllowExtensionOperations, RequireGuestProvisionSignal}
ProvisioningState      : Succeeded
StorageProfile         : {ImageReference, OsDisk, DataDisks}
VirtualMachineScaleSet : {Id}
TimeCreated            : 11/16/2022 11:02:02 PM

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 dell'istanza di macchina virtuale diversa con il -VMSize parametro per specificare le dimensioni di un'istanza di macchina virtuale di Standard_F1.

New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet" `
  -OrchestrationMode "Flexible" `
  -VMSize "Standard_F1" `
  -Location "EastUS" `
  -Credential $cred

Modificare la capacità di un set di scalabilità

Quando è stato creato un set di scalabilità, per impostazione predefinita sono state distribuite due istanze di macchine virtuali. Per aumentare o ridurre il numero di istanze di VM nel set di scalabilità, è 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.

Creare prima di tutto un oggetto set di scalabilità con Get-AzVmss e quindi specificare un nuovo valore per sku.capacity. Per applicare la modifica della capacità, usare Update-AzVmss. L'esempio seguente imposta il numero di istanze di VM nel set di scalabilità su 3:

# Get current scale set
$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

# Set and update the capacity of your scale set
$vmss.sku.capacity = 3
Update-AzVmss -ResourceGroupName "myResourceGroup" -Name "myScaleSet" -VirtualMachineScaleSet $vmss 

L'aggiornamento della capacità del set di scalabilità richiede alcuni minuti. Per visualizzare il numero di istanze ora disponibili nel set di scalabilità, usare Get-Az:

Get-AzVm -ResourceGroupName "myResourceGroup" 

L'output di esempio seguente mostra che la capacità del set di scalabilità è ora 3:

ResourceGroupName                Name Location          VmSize  OsType    ProvisioningState 
-----------------                ---- --------          ------  ------    ----------------- 
myResourceGroup   myScaleSet_instance1   eastus Standard_DS1_v2 Windows       Succeeded     
myResourceGroup   myScaleSet_instance2   eastus Standard_DS1_v2 Windows       Succeeded     
myResourceGroup   myScaleSet_instance3   eastus Standard_DS1_v2 Windows       Succeeded   

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

Per arrestare singole istanze di macchina virtuale, usare Stop-AzVm e specificare i nomi delle istanze.

Stop-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"

Per impostazione predefinita, le macchine virtuali arrestate vengono deallocate e non comportano addebiti per il calcolo. Se si vuole che la VM resti nello stato di provisioning quando viene arrestata, aggiungere il parametro -StayProvisioned al comando precedente. Le VM arrestate che rimangono nello stato di provisioning generano costi di calcolo.

Avviare le istanze di VM di un set di scalabilità

Per avviare tutte le istanze di vm in un set di scalabilità, usare Start-AzVmss.

Start-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" 

Per avviare una singola istanza di macchina virtuale in un set di scalabilità, usare Start-AzVM e specificare il nome dell'istanza.

Start-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"

Riavviare le istanze di VM di un set di scalabilità

Per riavviare tutte le macchine virtuali in un set di scalabilità, usare Restart-AzVmss.

Restart-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Per riavviare una singola istanza, usare [Restart-AzVM] e specificare il nome dell'istanza.

Restart-AzVM -ResourceGroupName "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 -Force parametro conferma che si desidera eliminare le risorse senza una richiesta aggiuntiva. Il parametro -AsJob restituisce il controllo al prompt senza attendere il completamento dell'operazione.

Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob

Passaggi successivi

In questa esercitazione si è appreso come eseguire alcune attività di base per la creazione e la gestione dei set di scalabilità con Azure PowerShell:

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

Passare all'esercitazione successiva per informazioni su come connettersi alle istanze del set di scalabilità.