Tutorial: Creación y administración de un conjunto de escalado de máquinas virtuales con Azure PowerShell

El conjunto de escalado de máquinas virtuales le permite implementar y administrar un conjunto de máquinas virtuales. Durante el ciclo de vida del conjunto de escalado de máquinas virtuales, es posible que deba ejecutar una o varias tareas de administración. En este tutorial, aprenderá a:

  • Crear un grupo de recursos
  • Creación de un conjunto de escalado de máquinas virtuales
  • Escalar y reducir horizontalmente
  • Detención, inicio y reinicio de instancias de máquina virtual

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

Azure Cloud Shell

En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.

Para iniciar Azure Cloud Shell:

Opción Ejemplo o vínculo
Seleccione Pruébelo en la esquina superior derecha de un bloque de código o de comandos. Solo con seleccionar Pruébelo no se copia automáticamente el código o comando en Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. Button to launch Azure Cloud Shell.
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. Screenshot that shows the Cloud Shell button in the Azure portal

Para usar Azure Cloud Shell:

  1. Inicie Cloud Shell.

  2. Seleccione el botón Copiar en un bloque de código (o bloque de comandos) para copiar el código o comando.

  3. Pegue el código o comando en la sesión de Cloud Shell. Para ello, seleccione Ctrl+Mayús+V en Windows y Linux, o bien seleccione Cmd+Mayús+V en macOS.

  4. Seleccione Enter para ejecutar el código o comando.

Crear un grupo de recursos

Un grupo de recursos de Azure es un contenedor lógico en el que se implementan y se administran los recursos de Azure. Se debe crear un grupo de recursos antes de crear un conjunto de escalado de máquinas virtuales. Cree un grupo de recursos con el comando New-AzResourceGroup. En este ejemplo se crea un grupo de recursos denominado myResourceGroup en la región EastUS.

New-AzResourceGroup -ResourceGroupName "myResourceGroup" -Location "EastUS"

El nombre del grupo de recursos se especifica al crear o modificar un conjunto de escalado mediante este tutorial.

Creación de un conjunto de escalado de máquinas virtuales

En primer lugar, establezca un nombre de usuario de administrador y una contraseña para las instancias de máquina virtual con Get-Credential:

$cred = Get-Credential

Ahora cree un conjunto de escalado de máquinas virtuales con New-AzVmss. Para distribuir el tráfico a las instancias individuales de VM, también se crea un equilibrador de carga. El equilibrador de carga incluye reglas para distribuir el tráfico en el puerto TCP 80, y permitir el tráfico de Escritorio remoto en el puerto TCP 3389 y la conexión remota de PowerShell en el puerto TCP 5985.

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

New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet" `
  -OrchestrationMode "Flexible" `
  -Location "EastUS" `
  -Credential $cred

Se tardan unos minutos en crear y configurar todos los recursos del conjunto de escalado y las instancias de máquina virtual. Para distribuir el tráfico a las instancias individuales de VM, también se crea un equilibrador de carga.

Visualización de las instancias de máquina virtual de un conjunto de escalado

Para ver una lista de las instancias de máquina virtual en un conjunto de escalado, use Get-AzVM de la forma siguiente:

Get-AzVM -ResourceGroupName "myResourceGroup"

La salida del ejemplo siguiente muestra dos instancias de máquina virtual del conjunto de escalado:

ResourceGroupName                Name Location          VmSize  OsType      ProvisioningState 
-----------------                ---- --------          ------  ------       ----------------- 
myResourceGroup   myScaleSet_instance1   eastus Standard_DS1_v2 Windows         Succeeded     
myResourceGroup   myScaleSet_instance2   eastus Standard_DS1_v2 Windows         Succeeded     

Para ver información adicional sobre una instancia de máquina virtual específica, use Get-AzVM y especifique el nombre de la máquina virtual.

Get-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1" 
ResourceGroupName      : myresourcegroup
Id                     : /subscriptions/resourceGroups/myresourcegroup/providers/Microsoft.Compute/virtualMachines/myScaleSet_instance1
VmId                   : d27b5fde-d469-4087-b08f-87d0bd8df786
Name                   : myScaleSet_instance1
Type                   : Microsoft.Compute/virtualMachines
Location               : eastus
Tags                   : {}
HardwareProfile        : {VmSize}
NetworkProfile         : {NetworkInterfaces}
OSProfile              : {ComputerName, AdminUsername, WindowsConfiguration, Secrets, AllowExtensionOperations, RequireGuestProvisionSignal}
ProvisioningState      : Succeeded
StorageProfile         : {ImageReference, OsDisk, DataDisks}
VirtualMachineScaleSet : {Id}
TimeCreated            : 11/16/2022 11:02:02 PM

Creación de un conjunto de escalado con un tamaño específico de instancia de máquina virtual

Cuando creó un conjunto de escalado al comienzo del tutorial, se proporcionó una SKU de máquina virtual predeterminada de Standard_D1_v2 para las instancias de máquina virtual. Puede especificar un tamaño de instancia de máquina virtual diferente con el -VMSize parámetro para especificar un tamaño de instancia de máquina virtual de Standard_F1.

New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet" `
  -OrchestrationMode "Flexible" `
  -VMSize "Standard_F1" `
  -Location "EastUS" `
  -Credential $cred

Cambio de la capacidad de un conjunto de escalado

Cuando creó un conjunto de escalado, se implementaron de forma predeterminada dos instancias de máquina virtual. Para aumentar o disminuir el número de instancias de máquina virtual en el conjunto de escalado, puede cambiar manualmente la capacidad. El conjunto de escalado crea o quita el número necesario de instancias de máquina virtual y, luego, configura el equilibrador de carga para distribuir el tráfico.

En primer lugar, cree un objeto de conjunto de escalado con Get-AzVmss y, después, especifique un nuevo valor para sku.capacity. Para aplicar el cambio de capacidad, use Update-AzVmss. En el ejemplo siguiente se establece el número de instancias de máquina virtual del conjunto de escalado en 3:

# Get current scale set
$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

# Set and update the capacity of your scale set
$vmss.sku.capacity = 3
Update-AzVmss -ResourceGroupName "myResourceGroup" -Name "myScaleSet" -VirtualMachineScaleSet $vmss 

La capacidad del conjunto de escalado tarda unos minutos en actualizarse. Para ver el número de instancias que tiene ahora en un conjunto de escalado, use Get-Az:

Get-AzVm -ResourceGroupName "myResourceGroup" 

La siguiente salida de ejemplo muestra que la capacidad del conjunto de escalado es ahora 3:

ResourceGroupName                Name Location          VmSize  OsType    ProvisioningState 
-----------------                ---- --------          ------  ------    ----------------- 
myResourceGroup   myScaleSet_instance1   eastus Standard_DS1_v2 Windows       Succeeded     
myResourceGroup   myScaleSet_instance2   eastus Standard_DS1_v2 Windows       Succeeded     
myResourceGroup   myScaleSet_instance3   eastus Standard_DS1_v2 Windows       Succeeded   

Detención y desasignación de instancias de máquina virtual de un conjunto de escalado

Para detener instancias de máquina virtual individuales, use Stop-AzVm y especifique los nombres de instancia.

Stop-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"

De forma predeterminada, se cancela la asignación de las máquinas virtuales para no acumular cargos de proceso. Si quiere que la máquina virtual permanezca en un estado de aprovisionamiento cuando se detenga, agregue el parámetro -StayProvisioned al comando anterior. Las máquinas virtuales detenidas que se mantienen aprovisionadas acumulan cargos regulares de proceso.

Inicio de las instancias de máquina virtual de un conjunto de escalado

Para iniciar todas las instancias de máquina virtual de un conjunto de escalado, use Start-AzVmss.

Start-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" 

Para iniciar una instancia de máquina virtual individual en un conjunto de escalado, use Start-AzVM y especifique el nombre de la instancia.

Start-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"

Reinicio de las instancias de máquina virtual de un conjunto de escalado

Para reiniciar una o varias máquinas virtuales en un conjunto de escalado, use Restart-AzVmss.

Restart-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Para reiniciar una instancia individual, use [Restart-AzVM] y especifique el nombre de la instancia.

Restart-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"

Limpieza de recursos

Cuando se elimina un grupo de recursos, todos los recursos que contiene, como las instancias de máquina virtual, la red virtual y los discos, también se eliminan. El parámetro -Force confirma que quiere eliminar los recursos sin pedir otra confirmación. El parámetro -AsJob devuelve el control a la petición de confirmación sin esperar a que finalice la operación.

Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob

Pasos siguientes

En este tutorial, ha aprendido cómo realizar algunas tareas básicas de creación y administración del conjunto de escalado con Azure PowerShell:

  • Crear un grupo de recursos
  • Creación de un conjunto de escalado
  • Ver y usar tamaños de una máquina virtual específicos
  • Escalar manualmente un conjunto de escalado
  • Realización de tareas comunes de administración de conjuntos de escalado, como detener, iniciar y reiniciar el conjunto de escalado

Continúe con el siguiente tutorial para aprender a conectar el dispositivo.