Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Al crear un conjunto de escalado, puede definir el número de instancias de máquina virtual que quiere ejecutar. A medida que cambia la demanda de las aplicaciones, puede aumentar o reducir automáticamente el número de estas instancias. La posibilidad de realizar el escalado automático le permite satisfacer la demanda del cliente o responder a los cambios de rendimiento de la aplicación a lo largo del ciclo de vida de esta. En este tutorial, aprenderá a:
- Usar el escalado automático con un conjunto de escalado
- Crear y usar reglas de escalado automático
- Simulación de la carga de CPU para desencadenar reglas de escalado automático
- Supervisión de acciones de escalado automático a medida que cambia la demanda
Si no tiene una cuenta de Azure, cree una cuenta gratuita antes de comenzar.
Requisitos previos
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulte Introducción a Azure Cloud Shell.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para obtener más información, consulte Ejecución de la CLI de Azure en un contenedor de Docker.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Autenticación en Azure mediante la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para obtener más información sobre las extensiones, consulte Uso y administración de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
- Este tutorial requiere la versión 2.0.32 de la CLI de Azure, o cualquier versión posterior. Si usa Azure Cloud Shell, ya está instalada la versión más reciente.
Creación de un conjunto de escalado
Cree un grupo de recursos con 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
Ahora, cree un conjunto de escalado de máquinas virtuales con az vmss create. En el ejemplo siguiente se crea un conjunto de escalado con un recuento de instancias de 2, se generan claves SSH si no existen y se usa una imagen 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
Definición de un perfil de escalado automático
Para habilitar el escalado automático en un conjunto de escalado, primero debe definir un perfil de escalado automático. Este perfil define la capacidad predeterminada, mínima y máxima del conjunto de escalado. Estos límites le permiten controlar el costo al no crear continuamente instancias de máquina virtual, y equilibrar un rendimiento aceptable con un número mínimo de instancias que permanecen en un evento de reducción horizontal. Cree un perfil de escalado automático con az monitor autoscale create. En el ejemplo siguiente se establece la capacidad predeterminada y mínima de 2 instancias de máquina virtual y un 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
Creación de una regla de escalado automático horizontal
Si aumenta la demanda de la aplicación, la carga de las instancias de máquina virtual del conjunto de escalado aumenta. Si este aumento de la carga es coherente, en lugar de solo una breve demanda, puede configurar reglas de escalado automático para aumentar el número de instancias de máquina virtual. Cuando se crean estas instancias y se implementa la aplicación, el conjunto de escalado comienza a distribuir el tráfico a ellas a través del equilibrador de carga. Puede controlar qué métricas supervisar, cuánto tiempo debe cumplir la carga un umbral determinado y cuántas instancias de máquina virtual se van a agregar.
Cree una regla con az monitor autoscale rule create que aumente el número de instancias de máquina virtual cuando la carga media de CPU sea superior a 70% durante un período de 5 minutos. Cuando se desencadena la regla, aumenta el número de instancias de máquina virtual en tres.
az monitor autoscale rule create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--autoscale-name autoscale \
--condition "Percentage CPU > 70 avg 5m" \
--scale out 3
Creación de una regla de escalado automático horizontal de reducción
Cuando la demanda de la aplicación disminuye, la carga de trabajo en las instancias de máquina virtual disminuye. Si esta disminución de la carga persiste durante un período de tiempo, puede configurar reglas de escalado automático para reducir el número de instancias de máquina virtual en el conjunto de escalado. Esta acción de escalado ayuda a reducir los costos ejecutando solo el número necesario de instancias necesarias para satisfacer la demanda actual.
Cree otra regla con az monitor autoscale rule create que reduzca el número de instancias de máquina virtual cuando la carga media de CPU cae por debajo de 30% durante un período de 5 minutos. En el siguiente ejemplo, el número de instancias de VM aumenta en uno.
az monitor autoscale rule create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--autoscale-name autoscale \
--condition "Percentage CPU < 30 avg 5m" \
--scale in 1
Simular carga de CPU en el conjunto de escalado
Para probar las reglas de escalado automático, debe simular la carga de CPU sostenida en las instancias de máquina virtual del conjunto de escalado. En este enfoque minimalista, evitamos instalar paquetes adicionales mediante el comando integrado yes para generar la carga de CPU. El comando siguiente inicia tres procesos en segundo plano que generan datos /dev/null continuamente durante 60 segundos y, a continuación, los finaliza.
for i in {1..3}; do
yes > /dev/null &
done
sleep 60
pkill yes
Este comando simula la carga de CPU sin introducir errores de instalación de paquetes.
Supervisión de las reglas de escalado automático activas
Para supervisar el número de instancias de máquina virtual en el conjunto de escalado, use el watch comando . Las reglas de escalado automático pueden tardar hasta 5 minutos en comenzar el proceso de escalado horizontal en respuesta a la carga de CPU. Sin embargo, una vez que eso ocurra, puede salir del modo de vigilancia con las teclas CTRL + C.
A continuación, el conjunto de escalado aumentará automáticamente el número de instancias de máquina virtual para satisfacer la demanda. El siguiente comando muestra la lista de instancias de máquina virtual en el conjunto de escalado:
az vmss list-instances \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $MY_SCALE_SET_NAME \
--output table
Cuando se alcanza el umbral de la CPU, las reglas de escalado automático aumentan el número de instancias de máquina virtual en el conjunto de escalado. La salida mostrará la lista de instancias de máquina virtual a medida que se crean nuevas.
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
Una vez que la carga de CPU disminuya, la carga media de CPU vuelve a la normalidad. Después de otros 5 minutos, las reglas de escalado automático reducen horizontalmente el número de instancias de máquina virtual. Con las acciones de reducción horizontal se eliminan instancias de máquina virtual en orden, empezando por los identificadores mayores. Cuando un conjunto de escalado usa conjuntos de disponibilidad o zonas de disponibilidad, las acciones de escalado se distribuyen uniformemente entre las instancias de máquina virtual. En la salida de ejemplo siguiente se muestra la eliminación de una instancia de máquina virtual con la reducción horizontal del conjunto de escalado:
6 True WestUS2 myScaleSet_6 Deleting myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Limpieza de recursos
Para quitar el conjunto de escalado y los recursos asociados, elimine manualmente el grupo de recursos mediante el método preferido.
Pasos siguientes
En este tutorial, ha aprendido a escalar y reducir horizontalmente un conjunto de escalado de forma automática con la CLI de Azure:
- Usar el escalado automático con un conjunto de escalado
- Crear y usar reglas de escalado automático
- Simulación de la carga de CPU para desencadenar reglas de escalado automático
- Supervisión de acciones de escalado automático a medida que cambia la demanda