Actualización de un equilibrador de carga básico con PowerShell

Importante

El 30 de septiembre de 2025, se retirará Basic Load Balancer. Para obtener más información, consulte el anuncio oficial. Si actualmente usa Basic Load Balancer, asegúrese de actualizar a Standard Load Balancer antes de la fecha de retirada.

Azure Standard Load Balancer ofrece un amplio conjunto de funcionalidades y alta disponibilidad gracias a la redundancia de zona. Para más información acerca de la SKU de Load Balancer, consulte la tabla de comparación.

En este artículo se presenta un módulo de PowerShell que crea un Standard Load Balancer con la misma configuración que el Basic Load Balancer y, a continuación, asocia el miembro del grupo de back-end de Virtual Machines o de Virtual Machine Scale Sets con el nuevo Load Balancer.

Para ver un tutorial detallado del módulo y el proceso de actualización, vea el vídeo siguiente:

Información general sobre la actualización

El módulo de PowerShell realiza las siguientes funciones:

  • Comprueba que se admite el escenario de equilibrador de carga básico proporcionado para la actualización.
  • Realiza una copia de seguridad de la configuración del equilibrador de carga básico y del conjunto de escalado de máquinas virtuales, lo que habilita el reintento en caso de error o si se producen errores.
  • En el caso de los equilibradores de carga públicos, actualiza las direcciones IP públicas de front-end a la SKU estándar y la asignación estática
  • Actualice la configuración del equilibrador de carga básico a un nuevo equilibrador de carga estándar, lo que garantiza la paridad de configuración y características.
  • Migra los miembros del grupo de back-end de Virtual Machine Scale Sets o de Virtual Machines de Basic Load Balancer a Standard Load Balancer.
  • Crea y asocia un grupo de seguridad de red con Virtual Machine Scale Sets o Virtual Machines para asegurarse de que el tráfico con equilibrio de carga alcanza a los miembros del grupo de back-end, después del traslado de Standard Load Balancer a una directiva de red de denegación predeterminada.
  • Actualiza las direcciones IP públicas de nivel de instancia asociadas a las instancias de Virtual Machine Scale Sets o Virtual Machines.
  • Actualiza grupos NAT de entrada a reglas NAT de entrada para back-end del conjunto de escalado de máquinas virtuales. Especifique -skipUpgradeNATPoolsToNATRules para omitir esta actualización.
  • Registra la operación de actualización para facilitar la auditoría y la recuperación de errores.

Advertencia

La migración interna de equilibradores de carga básicos en los que las máquinas virtuales de back-end o las instancias de VMSS no tengan direcciones IP públicas requerirá pasos adicionales para la conectividad de back-end a Internet. Revise ¿Cómo se debería configurar el tráfico saliente del equilibrador de carga?

Nota:

Si el conjunto de escalado de máquinas virtuales del grupo de back-end de Load Balancer tiene direcciones IP públicas en su configuración de red, las direcciones IP públicas asociadas a cada instancia del conjunto de escalado de máquinas virtuales cambiarán cuando se actualicen a la SKU estándar. Esto se debe a que no se pueden actualizar las direcciones IP públicas de nivel de instancia del conjunto de escalado, solo se reemplazan por una nueva dirección IP pública de SKU estándar. Todas las demás direcciones IP públicas se conservarán a través de la migración.

Nota:

Si el conjunto de escalado de máquinas virtuales detrás de Load Balancer es un Clúster de Service Fabric, la migración con este script tardará más tiempo, es mayor riesgo para la aplicación y provocará tiempo de inactividad. Revise Guía de actualización del equilibrador de carga del clúster de Service Fabric para ver las opciones de migración.

Escenarios no admitidos

  • Equilibradores de carga básicos con configuraciones IP de front-end IPv6
  • Equilibradores de carga básicos para clústeres de Azure Kubernetes Services (AKS)
  • Equilibradores de carga básicos con un miembro del grupo de back-end del conjunto de escalado de máquinas virtuales en el que una o varias instancias de conjunto de escalado de máquinas virtuales tienen habilitadas las directivas de protección de instancias ProtectFromScaleSetActions
  • Migración de un equilibrador de carga básico a un equilibrador de carga estándar existente

Instale el módulo "AzureBasicLoadBalancerUpgrade"

Requisitos previos

  • PowerShell: se recomienda una versión admitida de PowerShell 7 o superior para usarla con el módulo AzureBasicLoadBalancerUpgrade en todas las plataformas, incluidas Windows, Linux y macOS. Pero se admite PowerShell 5.1 en Windows.
  • Módulo Az de PowerShell: determine si tiene instalado el módulo Az de PowerShell más reciente.
  • Módulo de PowerShell Az.ResourceGraph: el módulo de PowerShell Az.ResourceGraph se usa para consultar la configuración de recursos durante la actualización y es una instalación independiente del módulo Az de PowerShell. Se agrega automáticamente si se instala el módulo AzureBasicLoadBalancerUpgrade mediante el comando Install-Module.

Instalación del módulo

Instale el módulo desde la Galería de PowerShell

PS C:\> Install-Module -Name AzureBasicLoadBalancerUpgrade -Scope CurrentUser -Repository PSGallery -Force

Pasos anteriores y posteriores a la migración

Pasos previos a la migración

  • Validación de la compatibilidad del escenario
  • Planificación de tiempo de inactividad de la aplicación durante la migración
  • Desarrollo de pruebas de conectividad entrantes y salientes para el tráfico
  • Planificación de cambios de IP pública de nivel de instancia en instancias de conjunto de escalado de máquinas virtuales (consulte la nota)
  • [Recomendado] cree grupos de seguridad de red o agregue reglas de seguridad a un grupo de seguridad de red existente para los miembros del grupo de back-end. Permita el tráfico a través de Load Balancer, así como cualquier otro tipo de tráfico que deba permitirse explícitamente en los recursos de SKU estándar públicos
  • [Recomendado] prepare la conectividad saliente tomando uno de los siguientes enfoques descritos en ¿Cómo se debería configurar el tráfico saliente del equilibrador de carga?

Pasos posteriores a la migración

Uso del módulo

  1. Use Connect-AzAccount para conectarse a Azure, especificando el identificador de suscripción de Load Balancer Básico si tiene más de una suscripción.

    PS C:\> Connect-AzAccount -Subscription <SubscriptionId>
    
  2. Busque el Load Balancer que desea actualizar. Registre su nombre y el nombre del grupo de recursos.

  3. Examine los parámetros básicos del módulo:

    • BasicLoadBalancerName [cadena] Obligatorio: este parámetro es el nombre del equilibrador de carga básico existente que desea actualizar
    • ResourceGroupName [cadena] Obligatorio: este parámetro es el nombre del grupo de recursos que contiene el equilibrador de carga básico
    • StandardLoadBalancerName [cadena] Opcional: use este parámetro para configurar opcionalmente un nuevo nombre para Standard Load Balancer. Si no se especifica, se reutiliza el nombre de Basic Load Balancer.
    • RecoveryBackupPath [cadena] Opcional: este parámetro permite especificar una ruta de acceso alternativa en la que almacenar el archivo de copia de seguridad de plantillas de ARM del equilibrador de carga básico (el valor predeterminado es el directorio de trabajo actual)

    Sugerencia

    Se pueden ver parámetros adicionales para escenarios avanzados y de recuperación mediante la ejecución de Get-Help Start-AzBasicLoadBalancerUpgrade -Detailed.

  4. Ejecute el comando Upgrade.

Ejemplo: validación de un escenario

Compruebe que se admite una instancia de Basic Load Balancer para la actualización

PS C:\> Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName> -validateScenarioOnly

Ejemplo: actualización por nombre

Actualice una instancia de Basic Load Balancer a Standard Load Balancer con el mismo nombre, y proporcione el nombre de la instancia de Basic Load Balancer y el grupo de recursos

PS C:\> Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName>

Ejemplo: actualización, cambio de nombre y representación de registros

Actualice una instancia de Basic Load Balancer a Standard Load Balancer con el nombre especificado y muestre la salida registrada en pantalla

PS C:\> Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName> -StandardLoadBalancerName <newStandardLBName> -FollowLog

Ejemplo: actualización con una ruta de acceso alternativa de copia de seguridad

Actualice una instancia de Basic Load Balancer a Standard Load Balancer con el nombre especificado y almacene el archivo de copia de seguridad de la instancia de Basic Load Balancer en la ruta de acceso especificada

PS C:\> Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName> -StandardLoadBalancerName <newStandardLBName> -RecoveryBackupPath C:\BasicLBRecovery

Ejemplo: validación de la migración completada

Valide una migración completada y pase la copia de seguridad del archivo de estado de la instancia de Basic Load Balancer y el nombre de la instancia de Standard Load Balancer

PS C:\> Start-AzBasicLoadBalancerUpgrade -validateCompletedMigration -basicLoadBalancerStatePath C:\RecoveryBackups\State_mybasiclb_rg-basiclbrg_20220912T1740032148.json

Migre varios equilibradores de carga con miembros de back-end compartidos al mismo tiempo, normalmente cuando una aplicación tiene un equilibrador de carga interno y externo

# build array of multiple basic load balancers
PS C:\> $multiLBConfig = @(
    @{
        'standardLoadBalancerName' = 'myStandardInternalLB01' # specifying the standard load balancer name is optional
        'basicLoadBalancer' = (Get-AzLoadBalancer -ResourceGroupName myRG -Name myBasicInternalLB01)
    },
        @{
        'standardLoadBalancerName' = 'myStandardExternalLB02'
        'basicLoadBalancer' = (Get-AzLoadBalancer -ResourceGroupName myRG -Name myBasicExternalLB02)
    }
)
# pass the array of load balancer configurations to the -MultiLBConfig parameter
PS C:\> Start-AzBasicLoadBalancerUpgrade -MultiLBConfig $multiLBConfig

Ejemplo: error de reintento de migración del conjunto de escalado de máquinas virtuales

Reintente una actualización con errores para un equilibrador de carga del conjunto de escalado de máquinas virtuales (debido a un error o terminación del script); para ello, proporcione el archivo de estado de copia de seguridad de la instancia de Basic Load Balancer y del conjunto de escalado de máquinas virtuales

PS C:\> Start-AzBasicLoadBalancerUpgrade -FailedMigrationRetryFilePathLB C:\RecoveryBackups\State_mybasiclb_rg-basiclbrg_20220912T1740032148.json -FailedMigrationRetryFilePathVMSS C:\RecoveryBackups\VMSS_myVMSS_rg-basiclbrg_20220912T1740032148.json

Ejemplo: reintento del error de migración de máquinas virtuales

Reintente una actualización con errores para un equilibrador de carga de VM (debido a un error o terminación del script); para ello, proporcione el archivo de estado de copia de seguridad de la instancia de Basic Load Balancer

PS C:\> Start-AzBasicLoadBalancerUpgrade -FailedMigrationRetryFilePathLB C:\RecoveryBackups\State_mybasiclb_rg-basiclbrg_20220912T1740032148.json

Preguntas frecuentes

¿Cómo puedo enumerar los equilibradores de carga básicos que se van a migrar en mi entorno?

Una manera de obtener una lista de los equilibradores de carga básicos que deben migrarse en su entorno es usar una consulta de Azure Resource Graph. Una consulta sencilla como esta enumerará todos los equilibradores de carga básicos a los que tiene acceso.

Resources
| where type == 'microsoft.network/loadbalancers' and sku.name == 'Basic'

" También hemos escrito una consulta más compleja que evalúa la preparación de cada equilibrador de carga básico para la migración en la mayoría de los criterios que comprueba este módulo durante validación. La consulta de Resource Graph se puede encontrar en nuestro proyecto de GitHub o abrirla en Azure Resource Graph Explorer.

¿Esta migración provocará tiempo de inactividad en mi aplicación?

Sí, dado que el Load Balancer Básico deberá quitarse antes de que se pueda crear el nuevo Standard Load Balancer, habrá tiempo de inactividad en la aplicación. Consulte ¿Cuánto tarda la actualización?

¿Migrará el módulo mi dirección IP de front-end al nuevo equilibrador de carga estándar?

Sí, tanto para equilibradores de carga públicos como internos, el módulo garantiza que se mantengan las direcciones IP de front-end. En el caso de las direcciones IP públicas, la dirección IP se convierte en una dirección IP estática antes de la migración. En el caso de los front-end internos, el módulo intentará reasignar la misma dirección IP que se liberó cuando se eliminó el equilibrador de carga básico. Si la dirección IP privada no estuviera disponible, se producirá un error en el script (consulte ¿Qué ocurriría al producirse un error en la actualización a mitad de la migración?).

¿Cuánto tarda la actualización?

La actualización normalmente tarda unos minutos en finalizar el script. Los siguientes factores pueden provocar tiempos de actualización más largos:

  • Complejidad de la configuración del equilibrador de carga
  • Número de miembros del grupo de back-end
  • Recuento de instancias de Virtual Machine Scale Sets o Virtual Machines asociadas
  • Clúster de Service Fabric: las actualizaciones de los clústeres de Service Fabric tardan alrededor de una hora en realizar pruebas.

Tenga en cuenta el tiempo de inactividad y planifique la conmutación por error si es necesario.

¿Puede el script de Azure PowerShell cambiar el tráfico de mi equilibrador de carga básico al nuevo equilibrador de carga estándar?

Sí. El script de Azure PowerShell migra Virtual Machine Scale Sets y Virtual Machines a los grupos de back-end de Standard Load Balancer recién creados.

¿Qué componentes del equilibrador de carga se migran?

El script migra lo siguiente desde el equilibrador de carga básico al equilibrador de carga estándar:

Equilibradores de carga públicos y privados:

  • Sondeos de estado:
    • Todos los sondeos se migran al nuevo Standard Load Balancer
  • Reglas de equilibrio de carga:
    • Todas las reglas de equilibrio de carga se migran al nuevo Standard Load Balancer
  • Reglas NAT de entrada:
    • Todas las reglas NAT creadas por el usuario se migran al nuevo Standard Load Balancer
  • Grupos NAT de entrada:
    • De forma predeterminada, los grupos NAT se actualizan a las reglas NAT
    • Para migrar grupos NAT en su lugar, especifique el parámetro -skipUpgradeNATPoolsToNATRules al actualizar
  • Grupos de back-end:
    • Todos los grupos de back-end se migran al nuevo Standard Load Balancer
    • Todas las interfaces de red de Virtual Machine Scale Sets o Virtual Machines, así como las configuraciones de IP, se migran al nuevo Standard Load Balancer
    • Si un conjunto de escalado de máquinas virtuales usa una directiva de actualización gradual, el script actualizará la directiva de actualización del conjunto de escalado de máquinas virtuales a "Manual" durante el proceso de migración y la revertirá a "Gradual" una vez completada la migración.
  • Direcciones IP públicas de nivel de instancia
    • En el caso de Virtual Machines y Virtual Machine Scale Sets, convierte las direcciones IP públicas conectadas de la SKU básica a la estándar. Tenga en cuenta que las direcciones IP públicas de la instancia del conjunto de escalado cambiarán durante la actualización, mientras que las direcciones IP de máquina virtual, no.
  • Etiquetas de Basic Load Balancer a Standard Load Balancer

Equilibrador de carga público:

  • Configuración IP de front-end pública
    • Convierte la dirección IP pública en una dirección IP estática, si es dinámica
    • Actualiza la SKU de IP pública a Estándar, si es Básica
    • Actualiza todas las direcciones IP públicas asociadas al nuevo equilibrador de carga estándar
  • Reglas de salida:
    • Los equilibradores de carga básicos no admiten reglas de salida configuradas. El script crea una regla de salida en el Standard Load Balancer para conservar el comportamiento de salida del Basic Load Balancer. Para obtener más información sobre las reglas de salida, consulte Reglas de salida.
  • Grupo de seguridad de red
    • El equilibrador de carga básico no requiere un grupo de seguridad de red para permitir la conectividad saliente. En caso de que no haya ningún grupo de seguridad de red asociado al conjunto de escalado de máquinas virtuales, se crea un nuevo grupo de seguridad de red para conservar la misma funcionalidad. Este nuevo grupo de seguridad de red se asocia a las interfaces de red del grupo de back-end del conjunto de escalado de máquinas virtuales. Permite las mismas reglas de equilibrio de carga de puertos y protocolos y preserva la conectividad de salida.

Equilibrador de carga interno:

  • Configuración IP de front-end privada

Nota:

Los grupos de seguridad de red no están configurados como parte de la actualización interna del equilibrador de carga. Para obtener más información sobre los grupos de seguridad de red, consulte Grupos de seguridad de red

¿Cómo puedo migrar cuando mis miembros del grupo de back-end pertenecen a varios equilibradores de carga?

En un escenario en el que los miembros del grupo de back-end también son miembros de grupos de back-end en otra instancia de Load Balancer, como cuando tiene equilibradores de carga internos y externos para la misma aplicación, es necesario migrar las instancias de Basic Load Balancer al mismo tiempo. Al intentar migrar las instancias de Load Balancer una a una, se intentarían mezclar recursos de SKU básica y estándar, lo cual no se permite. El script de migración admite esto pasando varias instancias de Basic Load Balancer en la misma ejecución de script mediante el parámetro -MultiLBConfig.

¿Cómo se valida que una migración se realizó correctamente?

Al final de su ejecución, el módulo de actualización realiza las siguientes validaciones, comparando Basic Load Balancer con el nuevo Standard Load Balancer. En una migración con errores, se puede llamar a esta misma operación mediante los parámetros -validateCompletedMigration y -basicLoadBalancerStatePath para determinar el estado de configuración de Standard Load Balancer (si se creó uno). El archivo de registro creado durante la migración también proporciona detalles exhaustivos sobre la operación de migración y los errores.

  • Standard Load Balancer existe y su SKU es "Estándar".
  • El recuento de configuraciones de IP de front-end coincide y las direcciones IP son las mismas.
  • El recuento de coincidencias de grupos de back-end y sus pertenencias
  • El recuento de coincidencias de reglas de equilibrio de carga
  • El recuento de coincidencias de sondeos de estado
  • El recuento de coincidencias de reglas NAT de entrada
  • El recuento de coincidencias de reglas NAT de salida
  • Los equilibradores de carga estándar externos tienen una regla de salida configurada
  • Los miembros del grupo de back-end de Standard Load Balancer externos tienen grupos de seguridad de red asociados

¿Cómo se debería configurar el tráfico saliente del equilibrador de carga?

Los equilibradores de carga de SKU estándar no permiten el acceso de salida predeterminado para sus miembros de grupo de back-end. Permitir el acceso saliente a Internet requiere más pasos.

En el caso de los equilibradores de carga externos, use reglas de salida para habilitar explícitamente el tráfico saliente para los miembros del grupo. Si tuviera un único grupo de back-end, se configurará automáticamente una regla de salida durante la migración. Si tuviera más de un grupo de back-end, deberá crear manualmente las reglas de salida para especificar asignaciones de puertos.

En el caso de los equilibradores de carga internos, las reglas de salida no son una opción porque no hay ninguna dirección IP pública a SNAT. Esto deja un par de opciones que se deben tener en cuenta:

  • NAT Gateway: las puertas de enlace NAT Gateway son el enfoque recomendado de Azure para el tráfico saliente en la mayoría de los casos. Sin embargo, las puertas de enlace NAT Gateway requieren que la subred adjunta no tenga recursos de red de SKU básicos, lo que significa que deberá haber migrado todos los equilibradores de carga y direcciones IP públicas antes de poder usarlos. Por este motivo, se recomienda usar un enfoque de dos pasos en el que primero se use uno de los métodos siguientes para la conectividad saliente y, a continuación, cambiar a NAT Gateway una vez que se completen las migraciones básicas de SKU.
  • Aplicación virtual de red: enrute el tráfico a través de una aplicación virtual de red, como Azure Firewall, que a su vez enrutará el tráfico a Internet. Esta opción resulta ideal en caso de tener ya configurada una aplicación virtual de red.
  • Equilibrador de carga externo secundario: si se agrega un equilibrador de carga externo secundario a los recursos de back-end, use el equilibrador de carga externo para el tráfico saliente mediante la configuración de reglas de salida. Si este equilibrador de carga externo no tuviera configuradas reglas de equilibrio de carga, reglas NAT o grupos NAT de entrada, los recursos de back-end permanecerán aislados en la red interna para el tráfico entrante. Consulte configuración del equilibrador de carga de solo salida. Con esta opción, el equilibrador de carga externo se puede configurar antes de migrar de la SKU básica a estándar y migrar al mismo tiempo que el equilibrador de carga interno mediante el parámetro -MultiLBConfig
  • Direcciones IP públicas: por último, las direcciones IP públicas se pueden agregar directamente a las máquinas virtuales o instancias del conjunto de escalado de máquinas virtuales. Sin embargo, no se recomienda esta opción debido al área expuesta de seguridad adicional y los gastos de agregar direcciones IP públicas.

¿Qué ocurre si se produce un error en la actualización durante la migración?

El módulo está diseñado para tener en cuenta la posibilidad de que se produzcan errores, ya sea debido a errores no controladas o a la finalización inesperada del script. El diseño del error es un enfoque de "conmutación por error", donde en lugar de intentar volver al equilibrador de carga básico, debe corregir el problema que provoca el error (consulte el archivo de registro o la salida del error) y vuelva a intentar la migración, especificando los parámetros -FailedMigrationRetryFilePathLB <BasicLoadBalancerBackupFilePath> -FailedMigrationRetryFilePathVMSS <VMSSBackupFile>. En el caso de los equilibradores de carga públicos, dado que la SKU de dirección IP pública se ha actualizado a Estándar, no será posible volver a mover la misma dirección IP a un equilibrador de carga básico.

Vea un vídeo del proceso de recuperación:

Si la migración con errores tenía como destino varios equilibradores de carga al mismo tiempo, con el parámetro -MultiLBConfig, recupere cada instancia de Load Balancer individualmente mediante el mismo proceso que se indica a continuación.

El procedimiento básico de recuperación de errores es:

  1. Solucione la causa del error de migración. Compruebe el archivo de registro Start-AzBasicLoadBalancerUpgrade.log para obtener más información.
  2. Quite el nuevo equilibrador de carga estándar (si se ha creado). En función de la fase de la migración con errores, es posible que tenga que quitar la referencia de Standard Load Balancer de las interfaces de red de Virtual Machine Scale Sets o Virtual Machines (configuraciones de IP) y sondeos de estado para quitar Standard Load Balancer.
  3. Busque el archivo de copia de seguridad de estado del equilibrador de carga básico. Este archivo estará en el directorio donde se ejecutó el script o en la ruta de acceso especificada con el parámetro -RecoveryBackupPath durante la ejecución con error. El archivo se denomina: State_<basicLBName>_<basicLBRGName>_<timestamp>.json
  4. Vuelva a ejecutar el script de migración, especificando los parámetros -FailedMigrationRetryFilePathLB <BasicLoadBalancerbackupFilePath> y -FailedMigrationRetryFilePathVMSS <VMSSBackupFile> (para back-end de Virtual Machine Scale Sets) en lugar de -BasicLoadBalancerName o pasando Basic Load Balancer a través de la canalización

Pasos siguientes