Partilhar via


Tutorial: Criar e gerenciar um conjunto de dimensionamento de máquina virtual com o Azure PowerShell

Um Conjunto de Dimensionamento de Máquina Virtual permite implantar e gerenciar um conjunto de máquinas virtuais. 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. Neste tutorial você aprenderá a:

  • Criar um grupo de recursos
  • Criar um Conjunto de Escalonamento de Máquinas Virtuais
  • Expansão e entrada
  • Parar, iniciar e reiniciar instâncias de VM

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Azure Cloud Shell

O Azure aloja o Azure Cloud Shell, um ambiente de shell interativo que pode utilizar através do seu browser. Você pode usar o Bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. Você pode usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada em seu ambiente local.

Para iniciar o Azure Cloud Shell:

Opção Exemplo/Ligação
Selecione Experimentar no canto superior direito de um código ou bloco de comandos. Selecionar Experimentar não copia automaticamente o código ou comando para o Cloud Shell. Captura de tela que mostra um exemplo de Try It for Azure Cloud Shell.
Vá para https://shell.azure.com, ou selecione o botão Iniciar o Cloud Shell para abrir o Cloud Shell no navegador. Botão para iniciar o Azure Cloud Shell.
Selecione o botão Cloud Shell na barra de menus no canto superior direito do portal do Azure. Captura de tela que mostra o botão Cloud Shell no portal do Azure

Para usar o Azure Cloud Shell:

  1. Inicie o Cloud Shell.

  2. Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou comando.

  3. Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e Linux ou selecionando Cmd+Shift+V no macOS.

  4. Selecione Enter para executar o código ou comando.

Criar um grupo de recursos

Um grupo de recursos do Azure é um contêiner lógico no qual recursos do Azure são implantados e geridos. Um grupo de recursos deve ser criado antes de um Virtual Machine Scale Set. Crie um grupo de recursos com o comando New-AzResourceGroup. Neste exemplo, um grupo de recursos chamado myResourceGroup é criado na região EastUS .

New-AzResourceGroup -ResourceGroupName "myResourceGroup" -Location "EastUS"

O nome do grupo de recursos é especificado quando você cria ou modifica um conjunto de escala ao longo deste tutorial.

Criar um Conjunto de Escalonamento de Máquinas Virtuais

Primeiro, defina um nome de usuário e senha de administrador para as instâncias de VM com Get-Credential:

$cred = Get-Credential

Agora crie um conjunto de escala de máquina virtual com New-AzVmss. Para distribuir o tráfego para as instâncias individuais da VM, um balanceador de carga também é criado. O balanceador de carga inclui regras para distribuir o tráfego na porta TCP 80 e permitir o tráfego da área de trabalho remota na porta TCP 3389 e a comunicação remota do PowerShell na porta TCP 5985:

Importante

A partir de novembro de 2023, os conjuntos de dimensionamento de VM criados usando o PowerShell e a CLI do Azure assumirão como padrão o Modo de Orquestração Flexível se nenhum modo de orquestração for especificado. Para obter mais informações sobre essa alteração e quais ações você deve tomar, vá para Breaking Change for VMSS PowerShell/CLI Customers - Microsoft Community Hub

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

Leva alguns minutos para criar e configurar todos os recursos do conjunto de escala e instâncias de VM. Para distribuir o tráfego para as instâncias individuais da VM, um balanceador de carga também é criado.

Exibir as instâncias de VM em um conjunto de escala

Para exibir uma lista de instâncias de VM em um conjunto de escala, use Get-AzVM da seguinte maneira:

Get-AzVM -ResourceGroupName "myResourceGroup"

A saída de exemplo a seguir mostra duas instâncias de VM no conjunto de escala:

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

Para exibir informações adicionais sobre uma instância de VM específica, use Get-AzVM e especifique o nome da 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

Criar um conjunto de escala com um tamanho de instância de VM específico

Quando você criou um conjunto de escala no início do tutorial, uma SKU de VM padrão de Standard_D1_v2 foi fornecida para as instâncias de VM. Você pode especificar um tamanho de instância de VM diferente usando o parâmetro -VMSize para definir um tamanho de instância de VM como Standard_F1.

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

Alterar a capacidade de um conjunto de escalas

Quando você criou um conjunto de escala, duas instâncias de VM foram implantadas por padrão. Para aumentar ou diminuir o número de instâncias de VM no conjunto de escala, você pode alterar manualmente a capacidade. O conjunto de dimensionamento cria ou remove o número necessário de instâncias de VM e, em seguida, configura o balanceador de carga para distribuir tráfego.

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 define o número de instâncias de VM em sua escala definida como 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 

Leva alguns minutos para atualizar a capacidade do seu conjunto de escalas. Para ver o número de instâncias que você tem agora no conjunto de escala, use Get-Az:

Get-AzVm -ResourceGroupName "myResourceGroup" 

O exemplo de saída a seguir mostra que a capacidade do conjunto de escala agora é 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   

Parar e desalocar instâncias de VM em um conjunto de escalas

Para parar instâncias de VM individuais, use Stop-AzVm e especifique os nomes das instâncias.

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

Por padrão, as VMs interrompidas são desalocadas e não incorrem em encargos de computação. Se desejar que a VM permaneça em um estado provisionado quando parada, adicione o -StayProvisioned parâmetro ao comando anterior. As VMs paradas que permanecem provisionadas incorrem em cobranças de computação regulares.

Iniciar instâncias de VM em um conjunto de escala

Para iniciar todas as instâncias de VM em um conjunto de escala, use Start-AzVmss.

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

Para iniciar uma instância de VM individual em um conjunto de escala, use Start-AzVM e especifique o nome da instância.

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

Reiniciar instâncias de VM em um conjunto de escala

Para reiniciar todas as VMs em um conjunto de escala, use Restart-AzVmss.

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

Para reiniciar uma instância individual, use [Restart-AzVM] e especifique o nome da instância.

Restart-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"

Limpeza de recursos

Quando você exclui um grupo de recursos, todos os recursos contidos nele, como instâncias de VM, rede virtual e discos, também são excluídos. O -Force parâmetro confirma que você deseja excluir os recursos sem um prompt extra para fazê-lo. O parâmetro -AsJob devolve o controlo à linha de comandos, sem aguardar a conclusão da operação.

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

Próximos passos

Neste tutorial, você aprendeu como executar algumas tarefas básicas de criação e gerenciamento de conjuntos de escala com o Azure PowerShell:

  • Criar um grupo de recursos
  • Criar um conjunto de escalas
  • Exibir e usar tamanhos específicos de VM
  • Dimensionar manualmente um conjunto de escalas
  • Executar tarefas de gerenciamento comuns dos conjuntos de escalas, como parar, iniciar e reiniciar os seus conjuntos de escalas

Avance para o próximo tutorial para saber como se conectar às instâncias do seu conjunto de escala.