Inicio rápido: Creación de un conjunto de escalado de máquinas virtuales Linux con una plantilla de Resource Manager
Se aplica a: ✔️ Máquinas virtuales Linux ✔️ 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 una plantilla de Azure Resource Manager.
Una plantilla de Azure Resource Manager es un archivo de notación de objetos JavaScript (JSON) que define tanto la infraestructura como la configuración de un proyecto. La plantilla usa sintaxis declarativa. Se describe la implementación deseada sin escribir la secuencia de comandos de programación para crear la implementación.
Las plantillas de Resource Manager permiten implementar grupos de recursos relacionados. En una única plantilla, puede crear el conjunto de escalado de máquinas virtuales, instalar aplicaciones y configurar reglas de escalado automático. Con el uso de variables y parámetros, esta plantilla se puede reutilizar para actualizar los conjuntos de escalado existentes o crear más. Puede implementar plantillas mediante Azure Portal, la CLI de Azure o Azure PowerShell, o bien desde las canalizaciones de integración continua o entrega continua (CI/CD).
Si su entorno cumple los requisitos previos y está familiarizado con el uso de plantillas de Resource Manager, seleccione el botón Implementar en Azure. La plantilla se abrirá en Azure Portal.
Requisitos previos
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Revisión de la plantilla
La plantilla usada en este inicio rápido forma parte de las plantillas de inicio rápido de Azure.
Estos recursos se definen en la plantilla:
- Microsoft.Network/virtualNetworks
- Microsoft.Network/publicIPAddresses
- Microsoft.Network/loadBalancers
- Microsoft.Compute/virtualMachineScaleSets
- Microsoft.Insights/autoscaleSettings
Definición de un conjunto de escalado
Para crear una escala con una plantilla, debe definir los recursos adecuados. Las partes principales del tipo de recurso del conjunto de escalado de máquinas virtuales son:
Propiedad | Descripción de la propiedad | Valor de la plantilla de ejemplo |
---|---|---|
type | Tipo de recurso de Azure que se creará | Microsoft.Compute/virtualMachineScaleSets |
name | Nombre del conjunto de escalado | myScaleSet |
ubicación | Ubicación donde se creará el conjunto de escalado | Este de EE. UU. |
sku.name | Tamaño de VM para cada instancia de conjunto de escalado | Standard_A1 |
sku.capacity | Número de instancias de VM que se crearán inicialmente | 2 |
upgradePolicy.mode | Modo de actualización de la instancia de VM cuando se producen cambios | Automático |
imageReference | Imagen personalizada o plataforma que se usará para las instancias de VM | Canonical Ubuntu Server 16.04-LTS |
osProfile.computerNamePrefix | Prefijo de nombre para cada instancia de VM | myvmss |
osProfile.adminUsername | Nombre de usuario para cada instancia de VM | azureuser |
osProfile.adminPassword | Contraseña para cada instancia de VM | P@ssw0rd! |
Para personalizar una plantilla de conjunto de escalado, puede cambiar el tamaño de la máquina virtual o la capacidad inicial. Otra opción es usar una plataforma diferente o una imagen personalizada.
Adición de una aplicación de ejemplo
Para probar el conjunto de escalado, instale una aplicación web básica. Cuando se implementa un conjunto de escalado, las extensiones de VM pueden proporcionar tareas de configuración y automatización posteriores a la implementación, como la instalación de una aplicación. Los scripts se pueden descargar desde Azure Storage o GitHub, o se pueden proporcionar a Azure Portal en el tiempo de ejecución de la extensión. Para aplicar una extensión al conjunto de escalado, agregue la sección extensionProfile en el ejemplo anterior del recurso. Normalmente, el perfil de extensión define las propiedades siguientes:
- Tipo de extensión
- Editor de la extensión
- Versión de la extensión
- Ubicación de los scripts de configuración o instalación
- Comandos que se ejecutarán en las instancias de VM
La plantilla usa la extensión de script personalizada para instalar Bottle, una plataforma web de Python y un servidor HTTP sencillo.
Se definen dos scripts en fileUris - installserver.sh y workserver.py. Estos archivos se descargan desde GitHub y, a continuación, commandToExecute ejecuta bash installserver.sh
para instalar y configurar la aplicación.
Implementación de la plantilla
Puede implementar la plantilla si selecciona el botón siguiente Implementar en Azure. Este botón abre Azure Portal, carga la plantilla completa y pide algunos parámetros, como un nombre para el conjunto de escalado, el recuento de instancias y las credenciales de administrador.
También puede implementar una plantilla de Resource Manager mediante la CLI de Azure:
# Create a resource group
az group create --name myResourceGroup --location EastUS
# Deploy template into resource group
az deployment group create \
--resource-group myResourceGroup \
--template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/application-workloads/python/vmss-bottle-autoscale/azuredeploy.json
Responda a los avisos para proporcionar un nombre para el conjunto de escalado, el recuento de instancias y las credenciales de administrador de las instancias de VM. El proceso de creación del conjunto de escalado y de los recursos compatibles tarda unos minutos.
Validación de la implementación
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 list, tal y como se indica a continuación:
az network public-ip list \
--resource-group myResourceGroup \
--query [*].ipAddress -o tsv
Escriba la dirección IP pública del equilibrador de carga en un explorador web con el formato http://publicIpAddress:9000/do_work. El equilibrador de carga distribuye el tráfico a una de las instancias de VM, como se muestra en el ejemplo siguiente:
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 este inicio rápido, creó un conjunto de escalado de Linux con una plantilla de Resource Manager y usó la extensión de script personalizado para instalar un servidor web de Python 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.