Gerenciar um conjunto de dimensionamento de máquina virtual com o Azure PowerShell
Nota
Muitas das etapas listadas neste documento se aplicam a Conjuntos de Escala de Máquina Virtual usando o modo de Orquestração Uniforme. Recomendamos o uso da Orquestração Flexível para novas cargas de trabalho. Para obter mais informações, consulte Modos de ordenação para conjuntos de escala de máquina virtual no Azure.
Durante todo o ciclo de vida de um Conjunto de Dimensionamento de Máquina Virtual, talvez seja necessário executar uma ou mais tarefas de gerenciamento. Além disso, pode querer criar scripts que automatizam várias tarefas do ciclo de vida. Este artigo detalha alguns dos cmdlets comuns do Azure PowerShell que permitem executar essas tarefas.
Se você precisar criar um Conjunto de Escala de Máquina Virtual, poderá criar um conjunto de dimensionamento com o Azure PowerShell.
Nota
Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.
Ver informações sobre um conjunto de escalas
Para exibir as informações gerais sobre um conjunto de escalas, use Get-AzVmss. O exemplo a seguir obtém informações sobre o conjunto de escala chamado myScaleSet no grupo de recursos myResourceGroup . Introduza os seus próprios nomes da seguinte forma:
Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
Ver VMs num conjunto de dimensionamento
Para exibir uma lista de instâncias de VM em um conjunto de escala, use Get-AzVmssVM. O exemplo a seguir lista todas as instâncias de VM no conjunto de escala chamado myScaleSet e no grupo de recursos myResourceGroup . Forneça os seus próprios valores para estes nomes:
Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
Para exibir informações adicionais sobre uma instância de VM específica, adicione o -InstanceId
parâmetro a Get-AzVmssVM e especifique uma instância para exibir. O exemplo a seguir exibe informações sobre a instância de VM 0 no conjunto de escala chamado myScaleSet e o grupo de recursos myResourceGroup . Introduza os seus próprios nomes da seguinte forma:
Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"
Você também pode obter informações detalhadas de instanceView para todas as instâncias em uma chamada de API, o que pode ajudar a evitar a limitação de API para instalações grandes.
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"
Alterar a capacidade de um conjunto de dimensionamento
Os comandos anteriores mostraram informações sobre seu conjunto de escala e as instâncias da VM. Para aumentar ou diminuir o número de instâncias no conjunto de escalas, você pode alterar a capacidade. O conjunto de dimensionamento cria ou remove automaticamente o número necessário de VMs e, em seguida, configura as VMs para receber tráfego de aplicativos.
Primeiro, crie um objeto de conjunto de escala com Get-AzVmss e, em seguida, especifique um novo valor para sku.capacity
. Para aplicar a alteração de capacidade, use Update-AzVmss. O exemplo a seguir atualiza myScaleSet no grupo de recursos myResourceGroup para uma capacidade de 5 instâncias. Forneça os seus próprios valores da seguinte forma:
# 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
São necessários alguns minutos para atualizar a capacidade do seu conjunto de dimensionamento. Se você diminuir a capacidade de um conjunto de escala, as VMs com os IDs de instância mais altos serão removidas primeiro.
Stop and start VMs in a scale set (Parar e iniciar VMs num conjunto de dimensionamento)
Para parar uma ou mais VMs em um conjunto de escala, use Stop-AzVmss. O parâmetro -InstanceId
permite-lhe especificar uma ou mais VMs que deverão ser paradas. Se não especificar um ID de instância, todas as VMs no conjunto de dimensionamento são paradas. Para parar várias VMs, separe cada ID de instância com uma vírgula.
O exemplo a seguir interrompe a instância 0 no conjunto de escala chamado myScaleSet e o grupo de recursos myResourceGroup . Forneça os seus próprios valores da seguinte forma:
Stop-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"
Por predefinição, as VMs paradas são desalocadas e não implicam custos de computação. Se quiser que a VM permaneça no estado aprovisionado quando for parada, adicione o parâmetro -StayProvisioned
ao comando anterior. As VMs paradas que continuem aprovisionadas incorrem em custos de computação regulares.
Iniciar VMs em um conjunto de dimensionamento
Para iniciar uma ou mais VMs em um conjunto de escala, use Start-AzVmss. O parâmetro -InstanceId
permite-lhe especificar uma ou mais VMs que deverão ser iniciadas. Se não especificar um ID de instância, todas as VMs no conjunto de dimensionamento são iniciadas. Para iniciar várias VMs, separe cada ID de instância com uma vírgula.
O exemplo a seguir inicia a instância 0 no conjunto de escala chamado myScaleSet e no grupo de recursos myResourceGroup . Forneça os seus próprios valores da seguinte forma:
Start-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"
Restart VMs in a scale set (Reiniciar VMs num conjunto de dimensionamento)
Para reiniciar uma ou mais VMs em um conjunto de escala, use Restart-AzVmss. O parâmetro -InstanceId
permite-lhe especificar uma ou mais VMs que deverão ser reinciadas. Se não especificar um ID de instância, todas as VMs no conjunto de dimensionamento são reiniciadas. Para reiniciar várias VMs, separe cada ID de instância com uma vírgula.
O exemplo a seguir reinicia a instância 0 no conjunto de escala chamado myScaleSet e no grupo de recursos myResourceGroup . Forneça os seus próprios valores da seguinte forma:
Restart-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"
Remover VMs de um conjunto de escala
Para remover uma ou mais VMs em um conjunto de escala, use Remove-AzVmss. O -InstanceId
parâmetro permite especificar uma ou mais VMs para remover. Se você não especificar um ID de instância, todas as VMs no conjunto de escala serão removidas. Para remover várias VMs, separe cada ID de instância com uma vírgula.
O exemplo a seguir remove a instância 0 no conjunto de escala chamado myScaleSet e o grupo de recursos myResourceGroup . Forneça os seus próprios valores da seguinte forma:
Remove-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"
Próximos passos
Outras tarefas comuns para conjuntos de dimensionamento incluem como implantar um aplicativo e atualizar instâncias de VM. Você também pode usar o Azure PowerShell para configurar regras de dimensionamento automático.