Administración de un conjunto de escalado de máquinas virtuales con Azure PowerShell

Nota:

Muchos de los pasos enumerados en este documento se aplican a conjuntos de escalado de máquinas virtuales mediante el modo de orquestación uniforme. Se recomienda usar la orquestación flexible para las cargas de trabajo nuevas. Para obtener más información, consulte Modos de orquestación para los conjuntos de escalado de máquinas virtuales de Azure.

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. Además, puede crear scripts para automatizar varias tareas de ciclo de vida. En este artículo se detallan algunos de los cmdlets comunes de Azure PowerShell que le permiten realizar estas tareas.

Si necesita crear un conjunto de escalado de máquinas virtuales, puede crear un conjunto de escalado con Azure PowerShell.

Nota

Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Consulte Instalación de Azure PowerShell para empezar. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Visualización de información acerca de un conjunto de escalado

Para ver información general acerca de un conjunto de escalado, use Get-AzVmss. En el ejemplo siguiente se obtiene información sobre el conjunto de escalado denominado myScaleSet del grupo de recursos myResourceGroup. Escriba sus propios nombres, como se indica a continuación:

Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Visualización de máquinas virtuales en un conjunto de escalado

Para ver una lista de las instancias de VM en un conjunto de escalado, use Get-AzVmssVM. En el ejemplo siguiente, se enumeran todas las instancias de máquina virtual en el conjunto de escalado denominado myScaleSet y en el grupo de recursos myResourceGroup. Proporcione sus propios valores para estos nombres:

Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Para ver información adicional acerca de una instancia específica de la VM, agregue el parámetro -InstanceId a Get-AzVmssVM y especifique una instancia para verla. En el ejemplo siguiente se puede consultar información acerca de la instancia de VM 0 en el conjunto de escalado denominado myScaleSet y el grupo de recursos myResourceGroup. Escriba sus propios nombres, como se indica a continuación:

Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"

También puede obtener información detallada de instanceView para todas las instancias en una llamada API, lo que puede ayudar a evitar la limitación de API en las instalaciones de gran tamaño.

Get-AzVmssVM -InstanceView -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
GET "https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSSName>/virtualMachines?api-version=2019-03-01&%24expand=instanceView"

Cambio de la capacidad de un conjunto de escalado

Los comandos anteriores muestran información acerca del conjunto de escalado y las instancias de VM. Para aumentar o disminuir el número de instancias en el conjunto de escalado, puede cambiar la capacidad. El conjunto de escalado crea o elimina automáticamente el número necesario de máquinas virtuales, y configura las máquinas virtuales para recibir tráfico de la aplicación.

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 actualiza myScaleSet en el grupo de recursos myResourceGroup a una capacidad de 5 instancias. Proporcione sus propios valores, como se indica a continuación:

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

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

La capacidad del conjunto de escalado tarda unos minutos en actualizarse. Si reduce la capacidad de un conjunto de escalado, se quitan primero las máquinas virtuales con los identificadores de instancia más altos.

Detención e inicio de las máquinas virtuales de un conjunto de escalado

Para detener una o varias VM en un conjunto de escalado, use Stop-AzVmss. El parámetro -InstanceId le permite especificar una o más máquinas virtuales para que se detengan. Si no especifica un identificador de instancia, se detienen todas las máquinas virtuales del conjunto de escalado. Para detener varias máquinas virtuales, separe cada identificador de instancia con una coma.

En el ejemplo siguiente se detiene la instancia 0 del conjunto de escalado denominado myScaleSet y el grupo de recursos myResourceGroup. Proporcione sus propios valores, como se indica a continuación:

Stop-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"

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 máquinas virtuales en un conjunto de escalado

Para iniciar una o varias VM en un conjunto de escalado, use Start-AzVmss. El parámetro -InstanceId le permite especificar una o más máquinas virtuales para que se inicien. Si no especifica un identificador de instancia, se inician todas las máquinas virtuales del conjunto de escalado. Para iniciar varias máquinas virtuales, separe cada identificador de instancia con una coma.

En el ejemplo siguiente se inicia la instancia 0 del conjunto de escalado denominado myScaleSet y el grupo de recursos myResourceGroup. Proporcione sus propios valores, como se indica a continuación:

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

Reinicio de máquinas virtuales en un conjunto de escalado

Para reiniciar una o varias VM en un conjunto de escalado, use Restart-AzVmss. El parámetro -InstanceId le permite especificar una o más máquinas virtuales para que se reinicien. Si no especifica un identificador de instancia, se reinician todas las máquinas virtuales del conjunto de escalado. Para reiniciar varias máquinas virtuales, separe cada identificador de instancia con una coma.

En el ejemplo siguiente se reinicia la instancia 0 del conjunto de escalado denominado myScaleSet y el grupo de recursos myResourceGroup. Proporcione sus propios valores, como se indica a continuación:

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

Eliminación de las máquinas virtuales de un conjunto de escalado

Para quitar una o varias VM en un conjunto de escalado, use Remove-AzVmss. El parámetro -InstanceId le permite especificar una o más máquinas virtuales para que se eliminen. Si no especifica un identificador de instancia, se eliminan todas las máquinas virtuales del conjunto de escalado. Para eliminar varias máquinas virtuales, separe cada identificador de instancia con una coma.

En el ejemplo siguiente se quita la instancia 0 del conjunto de escalado denominado myScaleSet y el grupo de recursos myResourceGroup. Proporcione sus propios valores, como se indica a continuación:

Remove-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"

Pasos siguientes

Entre otras tareas comunes para conjuntos de escalado se incluye cómo implementar una aplicación y cómo actualizar instancias de máquinas virtuales. También puede usar Azure PowerShell para configurar reglas de escalado automático.