Partilhar via


Tutorial: Dimensionar automaticamente um conjunto de dimensionamento de máquina virtual com a CLI do Azure

Ao criar um conjunto de dimensionamento, pode definir o número de instâncias de VM que quer executar. À medida que a sua aplicação exige alterações, pode aumentar ou reduzir automaticamente o número de instâncias de VM. A capacidade de dimensionamento automático permite-lhe manter-se a par da exigência do cliente ou responder às alterações de desempenho durante todo o ciclo de vida da aplicação. Neste tutorial você aprenderá a:

  • Utilizar o dimensionamento automático com um conjunto de dimensionamento
  • Criar e utilizar regras de dimensionamento automático
  • Simule a carga da CPU para acionar regras de dimensionamento automático
  • Monitore as ações de dimensionamento automático à medida que a demanda muda

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

Pré-requisitos

  • Este tutorial requer a versão 2.0.32 ou posterior da CLI do Azure. Se estiver usando o Azure Cloud Shell, a versão mais recente já está instalada.

Criar um conjunto de escalas

Crie um grupo de recursos com az group create.

export RANDOM_SUFFIX=$(openssl rand -hex 3)
export REGION="WestUS2"
export MY_RESOURCE_GROUP_NAME="myResourceGroup$RANDOM_SUFFIX"
az group create --name $MY_RESOURCE_GROUP_NAME --location $REGION

Agora crie um conjunto de escala de máquina virtual com az vmss create. O exemplo a seguir cria um conjunto de escala com uma contagem de instâncias de 2, gera chaves SSH se elas não existirem e usa uma imagem válida Ubuntu2204.

export MY_SCALE_SET_NAME="myScaleSet$RANDOM_SUFFIX"
az vmss create \
  --resource-group $MY_RESOURCE_GROUP_NAME \
  --name $MY_SCALE_SET_NAME \
  --image Ubuntu2204 \
  --orchestration-mode Flexible \
  --instance-count 2 \
  --admin-username azureuser \
  --generate-ssh-keys

Definir um perfil de dimensionamento automático

Para ativar o dimensionamento automático num conjunto de dimensionamente, tem primeiro que definir um perfil de dimensionamento automático. Este perfil define a capacidade predefinida, máxima e mínima do conjunto de dimensionamento. Esses limites permitem controlar o custo não criando continuamente instâncias de VM e equilibrar o desempenho aceitável com um número mínimo de instâncias que permanecem em um evento de escala. Criar um perfil de dimensionamento automático com az monitor autoscale create. O exemplo a seguir define a capacidade padrão e mínima de 2 instâncias de VM e um máximo de 10:

az monitor autoscale create \
  --resource-group $MY_RESOURCE_GROUP_NAME \
  --resource $MY_SCALE_SET_NAME \
  --resource-type Microsoft.Compute/virtualMachineScaleSets \
  --name autoscale \
  --min-count 2 \
  --max-count 10 \
  --count 2

Criar uma regra para dimensionamento automático para aumentar horizontalmente

Se a demanda da aplicação aumentar, a carga sobre as instâncias de máquinas virtuais no conjunto de dimensionamento também aumenta. Se esse aumento de carga for consistente, em vez de apenas uma breve demanda, você poderá configurar regras de dimensionamento automático para aumentar o número de instâncias de VM. Quando essas instâncias são criadas e seu aplicativo é implantado, o conjunto de dimensionamento começa a distribuir o tráfego para elas por meio do balanceador de carga. Você controla quais métricas monitorar, por quanto tempo a carga deve atender a um determinado limite e quantas instâncias de VM devem ser adicionadas.

Crie uma regra com az monitor autoscale rule create que aumente o número de instâncias de VM quando a carga média da CPU for superior a 70% durante um período de 5 minutos. Quando a regra for acionada, o número de instâncias de VM é aumentado em três.

az monitor autoscale rule create \
  --resource-group $MY_RESOURCE_GROUP_NAME \
  --autoscale-name autoscale \
  --condition "Percentage CPU > 70 avg 5m" \
  --scale out 3

Criar uma regra para dimensionamento automático, para reduzir horizontalmente

Quando a demanda de aplicativos diminui, a carga nas instâncias de VM cai. Se essa carga reduzida persistir por um período de tempo, você poderá configurar regras de dimensionamento automático para diminuir o número de instâncias de VM no conjunto de escala. Essa ação de escalonamento ajuda a reduzir custos, executando apenas o número necessário de instâncias necessárias para atender à demanda atual.

Crie outra regra com az monitor autoscale rule create que diminua o número de instâncias de VM quando a carga média da CPU cai abaixo de 30% durante um período de 5 minutos. O exemplo a seguir dimensiona o número de instâncias de VM em um.

az monitor autoscale rule create \
  --resource-group $MY_RESOURCE_GROUP_NAME \
  --autoscale-name autoscale \
  --condition "Percentage CPU < 30 avg 5m" \
  --scale in 1

Simule a carga da CPU no conjunto de escalonamento

Para testar as regras de dimensionamento automático, você precisa simular a carga sustentada da CPU nas instâncias de VM no conjunto de escala. Nesta abordagem minimalista, evitamos instalar pacotes adicionais usando o comando built-in yes para gerar carga de CPU. O comando a seguir inicia 3 processos em segundo plano que produzem dados continuamente para /dev/null durante 60 segundos e depois os encerra.

for i in {1..3}; do
  yes > /dev/null &
done
sleep 60
pkill yes

Este comando simula a carga da CPU sem introduzir erros de instalação do pacote.

Monitorizar as regras de dimensionamento automático ativas

Para monitorar o número de instâncias de VM em seu conjunto de escala, use o watch comando. Pode levar até 5 minutos para que as regras de dimensionamento automático iniciem o processo de expansão em resposta à carga da CPU. No entanto, assim que isso acontecer, pode sair do modo de monitorização com as teclas CTRL + C.

Até lá, o conjunto de escala aumentará automaticamente o número de instâncias de VM para atender à demanda. O comando a seguir mostra a lista de instâncias de VM no conjunto de escala:

az vmss list-instances \
  --resource-group $MY_RESOURCE_GROUP_NAME \
  --name $MY_SCALE_SET_NAME \
  --output table

Assim que tiver sido cumprido o limiar de CPU, as regras de dimensionamento automático aumentam o número de instâncias de VM no conjunto de dimensionamento. A saída mostrará a lista de instâncias de VM à medida que novas instâncias são criadas.

  InstanceId  LatestModelApplied    Location    Name              ProvisioningState    ResourceGroup         VmId
------------  --------------------  ----------  ---------------   -------------------  --------------------  ------------------------------------
           1  True                  WestUS2     myScaleSet_1      Succeeded            myResourceGroupxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
           2  True                  WestUS2     myScaleSet_2      Succeeded            myResourceGroupxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
           4  True                  WestUS2     myScaleSet_4      Creating             myResourceGroupxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
           5  True                  WestUS2     myScaleSet_5      Creating             myResourceGroupxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
           6  True                  WestUS2     myScaleSet_6      Creating             myResourceGroupxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Quando a carga da CPU diminui, a carga média da CPU volta ao normal. Após mais 5 minutos, as regras de dimensionamento automático reduzem horizontalmente o número de instâncias de VM. As ações de dimensionamento removem instâncias de VM com as IDs mais altas primeiro. Quando um conjunto de dimensionamento usa Conjuntos de Disponibilidade ou Zonas de Disponibilidade, as ações de dimensionamento são distribuídas uniformemente entre as instâncias de VM. A seguinte saída de exemplo mostra uma instância de máquina virtual a ser eliminada à medida que o conjunto de escalonamento ajusta automaticamente o seu tamanho.

6  True                  WestUS2     myScaleSet_6  Deleting             myResourceGroupxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Limpeza de recursos

Para remover o conjunto de escalas e os recursos associados, exclua manualmente o grupo de recursos usando seu método preferido.

Próximos passos

Neste tutorial, aprendeu a aumentar e reduzir automaticamente um conjunto de dimensionamento com a CLI do Azure:

  • Utilizar o dimensionamento automático com um conjunto de dimensionamento
  • Criar e utilizar regras de dimensionamento automático
  • Simule a carga da CPU para acionar regras de dimensionamento automático
  • Monitore as ações de dimensionamento automático à medida que a demanda muda