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. 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 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 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 blocco di codice o di comando. Quando si seleziona Prova, il codice o il comando non viene copiato automaticamente in Cloud Shell. | |
Passare a https://shell.azure.com o selezionare il pulsante Avvia Cloud Shell per aprire Cloud Shell nel browser. | |
Selezionare il pulsante Cloud Shell nella barra dei menu nell'angolo in alto a destra del portale di Azure. |
Per usare Azure Cloud Shell:
Avviare Cloud Shell.
Selezionare il pulsante Copia in un blocco di codice (o in un blocco di comando) per copiare il codice o il comando.
Incollare il codice o il comando nella sessione di Cloud Shell selezionando CTRL+MAIUSC+V in Windows e Linux o selezionando CMD+MAIUSC+V in macOS.
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 la distribuzione del traffico sulla porta TCP 80, oltre che per consentire il traffico di 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 delle istanze di VM in un set di scalabilità, usare Get-AzVM come illustrato 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 altre informazioni su un'istanza di VM specifica, usare Get-AzVM e specificare il nome della VM.
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 diversa dell'istanza di macchina virtuale con il parametro -VMSize
per specificare la dimensione di istanza di VM 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 VM. 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
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 le istanze di VM di un set di scalabilità
Per arrestare le 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 VM arrestate vengono deallocate e quindi non generano costi di 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 VM 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 parametro -Force
conferma che si desidera eliminare le risorse senza un prompt aggiuntivo a tale scopo. 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à
Per informazioni su come connettersi alle istanze del set di scalabilità, procedere con l'esercitazione successiva.