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, ficará a saber como:
- Criar um grupo de recursos
- Criar um Conjunto de Dimensionamento de Máquinas Virtuais
- Aumentar e reduzir horizontalmente
- 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. Pode utilizar 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. | |
Aceda a https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir o Cloud Shell no browser. | |
Selecione o botão Cloud Shell na barra de menus, na parte direita do portal do Azure. |
Para usar o Azure Cloud Shell:
Inicie o Cloud Shell.
Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou comando.
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.
Selecione Enter para executar o código ou comando.
Criar um grupo de recursos
Um grupo de recursos do Azure é um contentor lógico no qual os recursos do Azure são implementados e geridos. Um grupo de recursos deve ser criado antes de um Conjunto de Dimensionamento de Máquina Virtual. Crie um grupo de recursos com o comando New-AzResourceGroup . Neste exemplo, é criado um grupo de recursos chamado myResourceGroup na região EastUS.
New-AzResourceGroup -ResourceGroupName "myResourceGroup" -Location "EastUS"
O nome do grupo de recursos é especificado quando cria ou modifica um conjunto de dimensionamento neste tutorial.
Criar um Conjunto de Dimensionamento de Máquinas Virtuais
Primeiro, defina um nome de utilizador e uma palavra-passe para as instâncias da 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 pelas instâncias de VM individuais, é também criado um balanceador de carga. 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
A criação e configuração de todas as instâncias de VM e recursos do conjunto de dimensionamento demora alguns minutos. Para distribuir o tráfego pelas instâncias de VM individuais, é também criado um balanceador de carga.
Ver as instâncias da VM num conjunto de dimensionamento
Para exibir uma lista de instâncias de VM em um conjunto de escala, use Get-AzVM da seguinte maneira:
Get-AzVM -ResourceGroupName "myResourceGroup"
O seguinte resultado de exemplo mostra duas instâncias de VM no conjunto de dimensionamento:
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 dimensionamento com um tamanho de instância de VM específico
Quando criou um conjunto de dimensionamento no início do tutorial, foi fornecido um SKU de VM predefinido de Standard_D1_v2 para as instâncias de VMs. Você pode especificar um tamanho de instância de VM diferente com o -VMSize
parâmetro para especificar um tamanho de instância de VM de Standard_F1.
New-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet" `
-OrchestrationMode "Flexible" `
-VMSize "Standard_F1" `
-Location "EastUS" `
-Credential $cred
Alterar a capacidade de um conjunto de dimensionamento
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 dimensionamento, pode alterar a capacidade manualmente. 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 de forma a 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 seguinte define o número de instâncias de VMs no seu conjunto de dimensionamento 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 seguinte resultado de exemplo mostra que a capacidade do conjunto de dimensionamento é 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 VMs num conjunto de dimensionamento
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 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 instâncias de VMs num conjunto de dimensionamento
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 VMs num conjunto de dimensionamento
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"
Clean up resources (Limpar recursos)
Quando eliminar um grupo de recursos, todos os recursos nele contidos, como as instâncias de VMs, a rede virtual e os discos, também são eliminados. 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, aprendeu a realizar algumas tarefas básicas de criação e gestão de conjuntos de dimensionamento com o Azure PowerShell:
- Criar um grupo de recursos
- Criar um conjunto de dimensionamento
- Ver e utilizar tamanhos específicos de VM
- Dimensionar manualmente um conjunto de dimensionamento
- Execute tarefas comuns de gerenciamento de conjuntos de escala, como parar, iniciar e reiniciar seu conjunto de dimensionamentos
Avance para o próximo tutorial para saber como se conectar às instâncias do seu conjunto de escala.