Gestire un set di scalabilità di macchine virtuali con Azure PowerShell

Nota

Molti dei passaggi elencati in questo documento si applicano a set di scalabilità di macchine virtuali usando la modalità di orchestrazione uniforme. È consigliabile usare l'orchestrazione flessibile per i nuovi carichi di lavoro. Per altre informazioni, vedere Modalità di orcherazione per set di scalabilità di macchine virtuali in Azure.

Durante il ciclo di vita di un set di scalabilità di macchine virtuali, potrebbe essere necessario eseguire una o più attività di gestione. Si potrebbe anche voler creare script per automatizzare le attività di ciclo di vita. Questo articolo descrive alcuni dei cmdlet comuni di Azure PowerShell che consentono di eseguire queste attività.

Se è necessario creare un set di scalabilità di macchine virtuali, è possibile creare un set di scalabilità con Azure PowerShell.

Nota

È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

Visualizzare informazioni su un set di scalabilità

Per visualizzare informazioni generali su un set di scalabilità, usare Get-AzVmss. Nell'esempio seguente si ottengono informazioni su un set di scalabilità denominato myScaleSet nel gruppo di risorse myResourceGroup. Immettere i nomi personalizzati nel modo seguente:

Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Visualizzare le macchine virtuali in un set di scalabilità

Per visualizzare un elenco di istanze di macchina virtuale in un set di scalabilità, usare Get-AzVmssVM. L'esempio seguente elenca tutte le istanze di VM presenti nel set di scalabilità denominato myScaleSet e nel gruppo di risorse myResourceGroup. Specificare valori personalizzati per questi nomi:

Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Per visualizzare altre informazioni su un'istanza di macchina virtuale specifica, aggiungere il parametro -InstanceId a Get-AzVmssVM e specificare un'istanza da visualizzare. L'esempio seguente visualizza informazioni su un'istanza di VM 0 nel set di scalabilità denominato myScaleSet e nel gruppo di risorse myResourceGroup. Immettere i nomi personalizzati nel modo seguente:

Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"

È anche possibile ottenere informazioni dettagliate su instanceView per tutte le istanze in una chiamata API, che consente di evitare la limitazione delle API per installazioni di grandi dimensioni.

Get-AzVmssVM -InstanceView -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
GET "https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSSName>/virtualMachines?api-version=2019-03-01&%24expand=instanceView"

Modificare la capacità di un set di scalabilità

Con i comandi precedenti vengono visualizzate informazioni sul set di scalabilità e sulle istanze di VM. Per aumentare o diminuire il numero di istanze in un set di scalabilità è possibile modificare la capacità. Il set di scalabilità crea o rimuove automaticamente il numero necessario di VM, quindi configura le VM per la ricezione del traffico dell'applicazione.

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 aggiorna myScaleSet nel gruppo di risorse myResourceGroup a una capacità di 5 istanze. Specificare i valori personalizzati nel modo seguente:

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

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

Sono necessari alcuni minuti per aggiornare la capacità del set di scalabilità. Quando si riduce la capacità di un set di scalabilità, vengono rimosse prima le macchine virtuali con l'ID istanza più elevato.

Arrestare e avviare le macchine virtuali in un set di scalabilità

Per arrestare una o più VM in un set di scalabilità, usare Stop-AzVmss. Il parametro -InstanceId consente di specificare una o più macchine virtuali da arrestare. Se non si specifica un ID istanza, vengono arrestate tutte le macchine virtuali del set di scalabilità. Per arrestare più VM, separare gli ID istanza con una virgola.

L'esempio seguente arresta l'istanza 0 nel set di scalabilità denominato myScaleSet e nel gruppo di risorse myResourceGroup. Specificare i valori personalizzati nel modo seguente:

Stop-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"

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 macchine virtuali in un set di scalabilità

Per avviare una o più VM in un set di scalabilità, usare Start-AzVmss. Il parametro -InstanceId consente di specificare una o più macchine virtuali da avviare. Se non si specifica un ID istanza, vengono avviate tutte le macchine virtuali del set di scalabilità. Per avviare più VM, separare gli ID istanza con una virgola.

L'esempio seguente avvia l'istanza 0 nel set di scalabilità denominato myScaleSet e nel gruppo di risorse myResourceGroup. Specificare i valori personalizzati nel modo seguente:

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

Riavviare le macchine virtuali in un set di scalabilità

Per riavviare una o più VM in un set di scalabilità, usare Restart-AzVmss. Il parametro -InstanceId consente di specificare una o più macchine virtuali da riavviare. Se non si specifica un ID istanza, vengono riavviate tutte le macchine virtuali del set di scalabilità. Per riavviare più VM, separare gli ID istanza con una virgola.

L'esempio seguente riavvia l'istanza 0 nel set di scalabilità denominato myScaleSet e nel gruppo di risorse myResourceGroup. Specificare i valori personalizzati nel modo seguente:

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

Rimuovere le macchine virtuali da un set di scalabilità

Per rimuovere una o più macchine virtuali in un set di scalabilità, usare Remove-AzVmss. Il parametro -InstanceId consente di specificare una o più VM da rimuovere. Se non si specifica un ID istanza, vengono rimosse tutte le VM del set di scalabilità. Per rimuovere più VM, separare gli ID istanza con una virgola.

L'esempio seguente rimuove l'istanza 0 nel set di scalabilità denominato myScaleSet e nel gruppo di risorse myResourceGroup. Specificare i valori personalizzati nel modo seguente:

Remove-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"

Passaggi successivi

Altre attività comuni per i set di scalabilità includono la distribuzione di un'applicazione e l'aggiornamento delle istanze di VM. È anche possibile usare Azure PowerShell per configurare regole di scalabilità automatica.