Inicio rápido: Creación de conjuntos de escalado de máquinas virtuales con la CLI de Azure

Se aplica a: ✔️ Máquinas virtuales Linux ✔️ Máquinas virtuales Windows ✔️ Conjuntos de escalado uniformes

Nota

El siguiente artículo es para conjuntos de escalado de máquinas virtuales uniformes. Se recomienda usar conjuntos de escalado de máquinas virtuales del modo Flexible para nuevas cargas de trabajo. Para más información sobre este nuevo modo de orquestación, consulte Introducción a los conjuntos de escalado de máquinas virtuales flexibles.

El conjunto de escalado de máquinas virtuales le permite implementar y administrar un conjunto de máquinas virtuales de escalado automático. Puede escalar el número de máquinas virtuales del conjunto de escalado manualmente o definir reglas de escalado automático según el uso de recursos tales como la CPU, la demanda de memoria o el tráfico de red. Un equilibrador de carga de Azure distribuirá el tráfico a las instancias de máquina virtual del conjunto de escalado. En este inicio rápido creará un conjunto de escalado de máquinas virtuales e implementará una aplicación de ejemplo con la CLI de Azure.

Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.

Requisitos previos

  • En este artículo se necesita la versión 2.0.29 o posterior de la CLI de Azure. Si usa Azure Cloud Shell, ya está instalada la versión más reciente.

Creación de un conjunto de escalado

Importante

A partir de noviembre de 2023, los conjuntos de escalado de máquinas virtuales creados con PowerShell y la CLI de Azure tendrán como valor predeterminado el modo de orquestación flexible si no se especifica ningún modo de orquestación. Para obtener más información sobre este cambio y las acciones que debe realizar, vaya a Cambio importante para clientes de PowerShell/CLI de VMSS: Centro de comunidad de Microsoft

Antes de poder crear un conjunto de escalado, cree un grupo de recursos con az group create. En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la ubicación eastus:

az group create --name myResourceGroup --location eastus

Ahora, cree un conjunto de escalado de máquinas virtuales con az vmss create. En el ejemplo siguiente se crea un conjunto de escalado llamado myScaleSet que se establece para actualizarse automáticamente a medida que se aplican los cambios, y se generan claves SSH si no existen en ~/.ssh/id_rsa. Estas claves SSH se usan si necesita iniciar sesión en las instancias de máquina virtual. Para usar un conjunto existente de claves SSH, utilice en su lugar el parámetro --ssh-key-value y especifique la ubicación de las claves.

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

Se tardan unos minutos en crear y configurar todos los recursos de conjunto de escalado y máquinas virtuales.

Implementación de una aplicación de ejemplo

Para probar el conjunto de escalado, instale una aplicación web básica. La extensión de script personalizado de Azure se usa para descargar y ejecutar un script que instala una aplicación en las instancias de máquina virtual. Esta extensión es útil para la configuración posterior a la implementación, la instalación de software o cualquier otra tarea de configuración o administración. Para obtener más información, consulte Información general de la extensión de script personalizado.

Use la extensión de script personalizado para instalar un servidor web de NGINX básico. Aplique la extensión de script personalizado que instala NGINX con az vmss extension set como se indica a continuación:

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 tráfico a la aplicación

Cuando se creó el conjunto de escalado, se implementó automáticamente un equilibrador de carga de Azure. El equilibrador de carga distribuye el tráfico a las instancias de máquina virtual del conjunto de escalado. Para permitir que el tráfico llegue a la aplicación web de ejemplo, cree una regla del equilibrador de carga con az network lb rule create. En el ejemplo siguiente, se crea una regla denominada 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

Prueba del conjunto de escalado

Para ver el conjunto de escalado en acción, acceda a la aplicación web de ejemplo en un explorador web. Obtenga la dirección IP pública del equilibrador de carga con az network public-ip show. En el ejemplo siguiente se obtiene la dirección IP de myLoadBalancerRuleWeb que se ha creado como parte del conjunto de escalado:

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

Escriba la dirección IP pública del equilibrador de carga en un explorador web. El equilibrador de carga distribuye el tráfico a una de las instancias de VM, como se muestra en el ejemplo siguiente:

Default web page in NGINX

Limpieza de recursos

Cuando ya no lo necesite, puede usar el comando az group delete para quitar el grupo de recursos, el conjunto de escalado y todos los recursos relacionados como se indica a continuación. El parámetro --no-wait devuelve el control a la petición de confirmación sin esperar a que finalice la operación. El parámetro --yes confirma que desea eliminar los recursos sin pedir confirmación adicional.

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

Pasos siguientes

En esta guía de inicio rápido, creó un conjunto de escalado básico y usó la extensión de script personalizado para instalar un servidor web NGINX básico en las instancias de máquina virtual. Para más información, continúe con el tutorial sobre cómo crear y administrar conjuntos de escalado de máquinas virtuales de Azure.