Compartilhar via


Início Rápido: criar um Conjunto de Dimensionamento de Máquinas Virtuais com a CLI do Azure

Aplica-se a: ✔️ VMs do Linux ✔️ VMs do Windows ✔️ Conjuntos de dimensionamento uniformes

Observação

O artigo a seguir faz referência a Conjuntos de Dimensionamento de Máquinas Virtuais uniformes. Recomendamos usar Conjuntos de Dimensionamento de Máquinas Virtuais flexíveis para cargas de trabalho novas. Saiba mais sobre esse novo modo de orquestração em nossa Visão geral dos Conjuntos de Dimensionamento de Máquinas Virtuais flexíveis.

Um conjunto de dimensionamento de máquinas virtuais permite implantar e gerenciar um conjunto de máquinas virtuais de dimensionamento automático. É possível dimensionar o número de VMs manualmente no conjunto de dimensionamento ou definir as regras para o dimensionamento automático com base no uso de recursos, como CPU, demanda de memória ou tráfego de rede. Um balanceador de carga do Azure então distribui o tráfego para as instâncias de VM no conjunto de dimensionamento. Neste guia de início rápido, você cria um Conjunto de Dimensionamento de Máquinas Virtuais e implanta um aplicativo de exemplo com a CLI do Azure.

Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

  • Este artigo exige a versão 2.0.29 ou posterior da CLI do Azure. Se você está usando o Azure Cloud Shell, a versão mais recente já está instalada.

Criar um conjunto de escala

Importante

A partir de novembro de 2023, os conjuntos de dimensionamento de VM criados usando o PowerShell e a CLI do Azure serão padrão para 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 executar, acesse Alteração Interruptiva para Clientes PowerShell/CLI de VMSS – Hub de Comunidade da Microsoft

Antes de criar uma máquina virtual, crie um grupo de recursos com o az group create. O exemplo a seguir cria um grupo de recursos chamado myResourceGroup na localização eastus:

az group create --name myResourceGroup --location eastus

Crie um Conjunto de Dimensionamento de Máquinas Virtuais com az vmss create. O exemplo a seguir cria um conjunto de dimensionamento chamado myScaleSet que está definido para atualizar automaticamente à medida que alterações são aplicadas e gera chaves SSH caso elas não existam em ~/.ssh/id_rsa. Essas chaves SSH são usadas se você precisar fazer logon nas instâncias de VM. Para usar um conjunto existente de chaves SSH, em vez disso, use o parâmetro --ssh-key-value e especifique o local de suas chaves.

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image <SKU image> \
  --upgrade-policy-mode automatic \
  --admin-username azureuser \
  --generate-ssh-keys

Leva alguns minutos para criar e configurar todos os recursos e as VMs do conjunto de dimensionamento.

Implantar um aplicativo de exemplo

Para testar seu conjunto de dimensionamento, instale um aplicativo Web básico. A Extensão de Script Personalizado do Azure para baixar e executar um script que instala um aplicativo nas instâncias de VM. Essa extensão é útil para a configuração de implantação de postagem, instalação de software ou qualquer outra configuração/tarefa de gerenciamento. Para obter mais informações, consulte a Visão geral da Extensão de Script Personalizado.

Use a Extensão de Script Personalizado para instalar um servidor Web NGINX básico. Aplique a Extensão do Script Personalizado que instala o NGINX com az vmss extension set da seguinte maneira:

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroup \
  --vmss-name myScaleSet \
  --settings '{"fileUris":["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx.sh"],"commandToExecute":"./automate_nginx.sh"}'

Permitir o tráfego para o aplicativo

Quando o conjunto de dimensionamento foi criado, um balanceador de carga do Azure foi automaticamente implantado. Um balanceador de carga distribui o tráfego para as instâncias de VM no conjunto de dimensionamento. Para permitir que o tráfego alcance o aplicativo Web de exemplo, crie uma regra de balanceador de carga com az network lb rule create. O exemplo a seguir cria uma regra chamada myLoadBalancerRuleWeb:

az network lb rule create \
  --resource-group myResourceGroup \
  --name myLoadBalancerRuleWeb \
  --lb-name myScaleSetLB \
  --backend-pool-name myScaleSetLBBEPool \
  --backend-port 80 \
  --frontend-ip-name loadBalancerFrontEnd \
  --frontend-port 80 \
  --protocol tcp

Testar seu conjunto de dimensionamento

Para ver seu conjunto de dimensionamento em ação, acesse o aplicativo Web de exemplo em um navegador da Web. Obtenha o endereço IP público de seu balanceador de carga com az network public-ip show. O seguinte exemplo obtém o endereço IP de myScaleSetLBPublicIP, criado como parte do conjunto de dimensionamento:

az network public-ip show \
  --resource-group myResourceGroup \
  --name myScaleSetLBPublicIP \
  --query '[ipAddress]' \
  --output tsv

Insira o endereço IP público do balanceador de carga em um navegador da Web. O balanceador de carga distribui o tráfego para uma de suas instâncias de VM, conforme mostrado no exemplo a seguir:

Página da Web padrão em NGINX

Limpar os recursos

Quando não for mais necessário, use az group delete para remover o grupo de recursos, o conjunto de dimensionamento e todos os recursos relacionados, como demonstrado a seguir. O parâmetro --no-wait retorna o controle ao prompt sem aguardar a conclusão da operação. O parâmetro --yes confirma que você deseja excluir os recursos sem um prompt adicional para fazer isso.

az group delete --name myResourceGroup --yes --no-wait

Próximas etapas

Neste início rápido, você criou um conjunto de dimensionamento básico e usou uma Extensão de Script Personalizado para instalar um servidor Web NGINX básico nas instâncias de VM. Para saber mais, siga para o tutorial sobre como criar e gerenciar um Conjuntos de Dimensionamento de Máquinas Virtuais do Azure.