Condividi tramite


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 macchine virtuali scalabili
  • 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 ospita Azure Cloud Shell, un ambiente shell interattivo che è possibile usare 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 contenuto in questo articolo senza dover installare strumenti 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 che mostra un esempio della funzione
Passare a https://shell.azure.com o selezionare il pulsante Avvia Cloud Shell per aprire Cloud Shell nel browser. Pulsante per avviare Azure Cloud Shell.
Selezionare il pulsante Cloud Shell nella barra dei menu in alto a destra nel portale di Azure. Screenshot che mostra il pulsante Cloud Shell nel portale di Azure

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+Shift+V in Windows e Linux oppure selezionando Cmd+Shift+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 creare un gruppo di macchine virtuali scalabile. 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 macchine virtuali scalabili

Prima di tutto, impostare un nome utente e una password di amministratore per le istanze della macchina virtuale con Get-Credential:

$cred = Get-Credential

Creare ora un set di scalabilità di macchine virtuali con il comando 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 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

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 dimensioni specifiche dell'istanza di macchina virtuale

Quando hai creato un set di scalabilità all'inizio dell'esercitazione, è stato fornito uno SKU di macchina virtuale predefinito di Standard_D1_v2 per le istanze di macchina virtuale. È 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 macchine virtuali nel set di scalabilità, è possibile modificare manualmente la capacità. Il set di scalabilità crea o rimuove il numero necessario di istanze di vm, quindi configura il servizio di bilanciamento del carico per distribuire il traffico.

Innanzitutto, creare un oggetto di set di scalabilità con Get-AzVmss, 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 macchina virtuale 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 

Sono necessari alcuni minuti per aggiornare la capacità del set di scalabilità. Per visualizzare il numero di istanze attualmente presente 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 istanze di macchine virtuali in 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 macchina virtuale rimanga in uno stato di provisioning quando viene arrestata, aggiungere il -StayProvisioned parametro al comando precedente. Le macchine virtuali spente che rimangono provisionate comportano costi di calcolo regolari.

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 contenute all'interno, ad esempio le istanze della macchina virtuale, 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 di creazione e gestione dei set di scalabilità con Azure PowerShell:

  • Creare un gruppo di risorse
  • Creare un set di scalabilità
  • Visualizzare e usare dimensioni di macchina virtuale 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.