Atualizar um balanceador de carga básico com PowerShell

Importante

Em 30 de setembro de 2025, o Balanceador de Carga Básico será desativado. Para saber mais, confira o anúncio oficial. Se você estiver usando o Balanceador de Carga Básico, atualize para o Standard Load Balancer antes da data de desativação.

O Azure Standard Load Balancer oferece um conjunto avançado de funcionalidades e alta disponibilidade por meio de redundância de zona. Para saber mais sobre a SKU do Load Balancer, confira a tabela de comparação.

Este artigo apresenta um módulo do PowerShell que cria um Standard Load Balancer com a mesma configuração do Balanceador de Carga Básico e, em seguida, associa o Conjunto de Dimensionamento de Máquinas Virtuais ou os membros do pool de back-end da Máquina Virtual ao novo Balanceador de Carga.

Para obter um passo a passo detalhado do módulo de atualização e do processo, consulte o seguinte vídeo:

01:38 – Demonstração Rápida | 03:06 – Passo a passo | 32:54 – Recuperação | 40:55 – Cenários Avançados | 57:54 – Recursos

Visão geral da atualização

O módulo do PowerShell executa as seguintes funções:

  • Verifica se há suporte para o cenário do Load Balancer Básico fornecido para atualização.
  • Faz backup da configuração do Load Balancer Básico e do Conjunto de Dimensionamento de Máquinas Virtuais, habilitando a repetição em caso de falha ou se erros forem encontrados.
  • Para balanceadores de carga públicos, atualiza o endereço IP público de front-end para a SKU Standard e a atribuição estática, conforme necessário.
  • Atualiza a configuração do Load Balancer Básico para um novo Standard Load Balancer, garantindo a configuração e a paridade de recursos.
  • Migra os membros do pool de back-end de Máquinas Virtuais e o Conjunto de Dimensionamento de Máquinas Virtuais do Balanceador de Carga Básico para o Standard Load Balancer.
  • Cria e associa um grupo de segurança de rede ao Conjunto de Dimensionamento de Máquinas Virtuais ou Máquina Virtual para garantir que o tráfego com balanceamento de carga atinja os membros do pool de back-end após a mudança do Standard Load Balancer para uma política de rede de negação padrão.
  • Atualizar os endereços IP Públicos em nível de instância associados a instâncias de Máquinas Virtuais ou Conjunto de Dimensionamento de Máquinas Virtuais
  • Atualiza Pools NAT de entrada para Regras NAT de entrada para back-ends do Conjunto de dimensionamento de máquinas virtuais. Especifique -skipUpgradeNATPoolsToNATRules para ignorar essa atualização.
  • Registra a operação de atualização para facilitar a auditoria e a recuperação de falhas.

Aviso

Migração interna de Load Balancers Básicos em que as VMs de back-end ou as instâncias VMSS não têm endereços IP públicos atribuídos requerem ações adicionais para que os membros do pool de back-end possam se conectar à internet. A abordagem recomendada é criar um Gateway da NAT e atribuí-lo à sub-rede dos membros do pool de back-end (consulte: Integrar o Gateway da NAT com Load Balancer Interno). Como alternativa, os Endereços IP Públicos poderão ser alocados para cada instância de Máquina Virtual ou Conjunto de Dimensionamento de Máquinas Virtuais adicionando uma Configuração de IP Público ao Perfil de Rede (consulte: Endereço IPv4 Público de VMSS por Máquina Virtual) para o Conjunto de Dimensionamento de Máquinas Virtuais Associar um endereço IP Público a uma Máquina Virtual para Máquinas Virtuais.

Observação

Se o Conjunto de Dimensionamento de Máquinas Virtuais no pool de back-end do Balanceador de Carga tiver endereços IP Públicos na configuração de rede, os Endereços IP Públicos associados a cada instância do Conjunto de Dimensionamento de Máquinas Virtuais serão alterados quando atualizar para SKU Standard. Isso ocorre porque os endereços IP Públicos no nível da instância do Conjunto de Dimensionamento não poderão ser atualizados, apenas substituídos por um novo IP Público de SKU Standard. Todos os outros endereços IP Públicos serão retidos durante a migração.

Observação

Se o Conjunto de Dimensionamento de Máquinas Virtuais por trás do Load Balancer for um Cluster do Service Fabric, a migração com esse script levará mais tempo. Em testes, um cluster Bronze de 5 nós ficou indisponível por cerca de 30 minutos e um cluster Silver de 5 nós ficou indisponível por cerca de 45 minutos. Para clusters do Service Fabric que exigem tempo de inatividade de conectividade mínimo/nulo, adicionar um novo tipo de nó com Standard Load Balancer e recursos de IP é uma solução melhor.

Cenários sem suporte

  • Load Balancers Básicos com configurações de IP de front-end IPv6
  • Load Balancers Básicos com um membro do pool de back-end do Conjunto de Dimensionamento de Máquinas Virtuais em que uma ou mais instâncias do Conjunto de Dimensionamento de Máquinas Virtuais têm as políticas de Proteção de Instância do ProtectFromScaleSetActions habilitadas
  • Migrar um Load Balancer Básico para um Standard Load Balancer existente

Instalar o módulo 'AzureBasicLoadBalancerUpgrade'

Pré-requisitos

  • PowerShell: uma versão com suporte do PowerShell versão 7 ou superior é recomendada para uso com o módulo AzureBasicLoadBalancerUpgrade em todas as plataformas, incluindo Windows, Linux e macOS. Entretanto, há suporte para o PowerShell 5.1 no Windows.
  • Az PowerShell Module: determine se você tem o módulo Az PowerShell mais recente instalado
  • Módulo Az.ResourceGraph PowerShell: o módulo Az.ResourceGraph PowerShell é usado para consultar a configuração de recursos durante a atualização e é uma instalação separada do módulo Az PowerShell. Ele será instalado automaticamente se você instalar o módulo AzureBasicLoadBalancerUpgrade usando o comando Install-Module, conforme mostrado abaixo.

Instalação do Módulo

Instale o módulo na Galeria do PowerShell

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

Etapas pré e pós-migração

Etapas de pré-migração

  • Validar o suporte para o cenário
  • Planejar o tempo de inatividade do aplicativo durante a migração
  • Desenvolver testes de conectividade de entrada e saída para seu tráfego
  • Planeje as alterações de IP público em nível de instância nas instâncias do Conjunto de Dimensionamento de Máquinas Virtuais (consulte a observação acima)
  • [Recomendado] Crie grupos de segurança de rede ou adicione regras de segurança a um Grupo de Segurança de Rede existente para os membros do pool de back-end, permitindo o tráfego por meio do Load Balancer e qualquer outro tráfego que precise ser explicitamente permitido nos recursos públicos da SKU Standard
  • [Recomendado] Prepare sua conectividade de saída, adotando uma das seguintes abordagens:

Etapas pós-migração

  • Valide se sua migração foi bem-sucedida
  • Teste a conectividade de aplicativos de entrada por meio do Load Balancer
  • Teste a conectividade de saída dos membros do pool de back-end com a Internet
  • Para balanceadores de carga públicos com vários pools de back-end, crie Regras de Saída para cada pool de back-end

Usar o módulo

  1. Usar Connect-AzAccount para conectar o locatário do Microsoft Entra necessário e à assinatura do Azure

    PS C:\> Connect-AzAccount -Tenant <TenantId> -Subscription <SubscriptionId>
    
  2. Localize o Load Balancer que deseja atualizar. Registre seu nome e o nome do grupo de recursos.

  3. Examine os parâmetros básicos do módulo:

    • BasicLoadBalancerName [cadeia de caracteres] Obrigatório – esse parâmetro é o nome do Load Balancer Básico existente que você gostaria de atualizar
    • ResourceGroupName [cadeia de caracteres] Obrigatório – esse parâmetro é o nome do grupo de recursos que contém o Load Balancer Básico
    • StandardLoadBalancerName [string] Optional: use esse parâmetro para configurar opcionalmente um novo nome para o Standard Load Balancer. Se não especificado, será reutilizado o nome do Balancear Carga Básico.
    • RecoveryBackupPath [cadeia de caracteres] Opcional – esse parâmetro permite que você especifique um caminho alternativo para armazenar o arquivo de backup do modelo do ARM do Load Balancer Básico (padrão para o diretório de trabalho atual)

    Observação

    Parâmetros adicionais para cenários avançados e de recuperação podem ser exibidos executando Get-Help Start-AzBasicLoadBalancerUpgrade -Detailed

  4. Execute o comando Atualizar.

Exemplo: validar um cenário

Validar se um Basic Load Balancer é compatível com o upgrade

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

Exemplo: fazer upgrade por nome

Atualize um Basic Load Balancer para um Standard Load Balancer com o mesmo nome, fornecendo o nome do Basic Load Balancer e o nome do grupo de recursos

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

Exemplo: fazer upgrade, alteração do nome e exibição de registros

Atualizar um Basic Load Balancer para um Standard Load Balancer com o nome especificado, exibindo a saída registrada na tela

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

Exemplo: fazer upgrade com um caminho de backup alternativo

Atualize um Basic Load Balancer para um Standard Load Balancer com o nome especificado e armazene o arquivo de backup do Basic Load Balancer no caminho especificado

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

Exemplo: validar a migração concluída

Valide uma migração concluída passando o backup do arquivo de estado do Basic Load Balancer e o nome do Standard Load Balancer

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

Migrar vários balanceadores de carga com membros de back-end compartilhados ao mesmo tempo, geralmente quando um aplicativo tem um Load Balancer interno e um 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

Exemplo: repetir a migração do conjunto de dimensionamento de máquinas virtuais com falha

Repita uma atualização com falha para o balanceador de carga de um conjunto de dimensionamento de máquinas virtuais (devido a erro ou encerramento do script) fornecendo o arquivo de estado de backup do Basic Load Balancer e do Conjunto de Dimensionamento de Máquinas Virtuais

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

Exemplo: repetir uma migração de máquina virtual com falha

Repita uma atualização com falha para um balanceador de carga de VM (devido a erro ou encerramento do script) fornecendo o arquivo de estado de backup do Basic Load Balancer

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

Perguntas comuns

Essa migração causará tempo de inatividade no meu aplicativo?

Sim, como o Load Balancer Básico precisa ser removido antes que o novo Standard Load Balancer possa ser criado, haverá tempo de inatividade para o seu aplicativo. Consulte Quanto tempo leva a atualização?

O módulo migrará meu endereço IP de front-end para o novo Standard Load Balancer?

Sim, para balanceadores de carga públicos e internos, o módulo garante que os endereços IP de front-end sejam mantidos. Para IPs públicos, o IP é convertido em um IP estático antes da migração (se necessário). Em front-ends internos, o módulo tentará reatribuir o mesmo endereço IP liberado quando o Load Balancer Básico for excluído; se o IP privado não estiver disponível, o script falhará (consulte O que acontece se a atualização falhar no meio da migração?).

Quanto tempo a atualização leva?

A atualização normalmente leva alguns minutos para que o script seja concluído. Os seguintes fatores podem gerar tempos de atualização mais longos:

  • Complexidade da configuração do balanceador de carga
  • Número de membros do pool de back-end
  • Contagem de instâncias de Conjuntos de Dimensionamento de Máquinas Virtuais ou Máquinas Virtuais associadas
  • Cluster do Service Fabric: as atualizações para clusters do Service Fabric demoram aproximadamente uma hora até serem testadas

Considere esse tempo de inatividade e planeje um possível failover.

O script migra o meus membros do pool de back-end do Load Balancer Básico para o Standard Load Balancer recém-criado?

Sim. O script do Azure PowerShell migra os Conjuntos de Dimensionamento de Máquinas Virtuais e as Máquinas Virtuais para os pools de back-end do Standard Load Balancer recém-criado.

Quais componentes do balanceador de carga são migrados?

O script migra o seguinte do Load Balancer Básico para o Standard Load Balancer:

Balanceadores de carga públicos e privados:

  • Investigações de integridade:
    • Todas as investigações serão migradas para o novo Standard Load Balancer
  • Regras de balanceamento de carga:
    • Todas as regras de balanceamento de carga serão migradas para o novo Standard Load Balancer
  • Regras NAT de entrada:
    • Todas as regras de NAT criadas pelo usuário serão migradas para o novo Standard Load Balancer
  • Pools NAT de entrada:
    • Por padrão, os Pools NAT são atualizados para regras NAT
    • Para migrar Pools NAT em vez disso, especifique o parâmetro -skipUpgradeNATPoolsToNATRules ao atualizar
  • Pools de back-end:
    • Todos os pools de back-end serão migrados para o novo Standard Load Balancer
    • Todas as interfaces de rede e as configurações de IP do Conjunto de Dimensionamento de Máquinas Virtuais e da Máquina Virtual são migradas para o novo Standard Load Balancer
    • Se um Conjunto de Dimensionamento de Máquinas Virtuais estiver usando a política de atualização sem interrupção, o script atualizará a política de atualização desse conjunto para "Manual" durante o processo de migração e a reverterá para "Sem interrupção" após a conclusão da migração.
  • Endereços IP públicos em nível de instância
    • Tanto as Máquinas Virtuais como os Conjuntos de Dimensionamento de Máquinas Virtuais convertem os IPs públicos anexados de SKU Básico para Standard. Observação: os IPs públicos da instância do Conjunto de Dimensionamento serão alterados durante a atualização, mas os IPs de máquinas virtuais não.
  • Marcas do Balanceador de Carga Básico para Standard Load Balancer

Balanceador de carga público:

  • Configuração do IP público de front-end
    • Converte o IP público em um IP estático, se dinâmico
    • Atualizações a SKU de IP público para Standard, se Básico
    • Atualizar todos os IPs públicos associados ao novo Standard Load Balancer
  • Regras de saída:
    • Os Basic Load Balancers não dão suporte a regras de saída configuradas. O script criará uma regra de saída no Standard Load Balancer para preservar o comportamento de saída do Basic Load Balancer. Para obter mais informações sobre regras de saída, confira Regra de saída.
  • Grupo de segurança de rede
    • O Load Balancer Básico não requer um grupo de segurança de rede para permitir a conectividade de saída. Caso não haja um grupo de segurança de rede associado ao Conjunto de Dimensionamento de Máquinas Virtuais, um novo grupo de segurança de rede será criado para preservar a mesma funcionalidade. Esse novo grupo de segurança de rede será associado às interfaces de rede dos membros do pool de back-end do Conjunto de Dimensionamento de Máquinas Virtuais. Ele permitirá as mesmas portas e protocolos de regras de balanceamento de carga e preservará a conectividade de saída.

Balanceador de carga interno:

  • Configuração do IP privado de front-end

Observação

Os grupos de segurança de rede não são configurados como parte da atualização interna do Load Balancer. Para saber mais sobre NSGs, confira Grupos de segurança de rede

Como fazer para migrar quando os membros do pool de back-end pertencem a vários Balanceadores de Carga?

Em um cenário em que os membros do pool de back-end também são membros de pools de back-end em outro Balanceador de Carga, por exemplo, quando há Balanceadores de carga internos e externos para o mesmo aplicativo, os Balanceadores de Carga Básicos deverão ser migrados ao mesmo tempo. Tentar migrar os Balanceadores de Carga um de cada vez tentaria misturar recursos de SKU Básico e Standard, e isso não é permitido. O script de migração dá suporte a isso passando vários Balanceadores de Carga Básicos na mesma execução de script usando o -MultiLBConfig parâmetro .

Como fazer para validar se uma migração foi bem-sucedida?

Ao final da execução, o módulo de atualização realizará as seguintes validações, comparando o Balanceador de Carga Básico com o novo Standard Load Balancer. Em uma migração com falha, essa mesma operação poderá ser chamada usando os parâmetros -validateCompletedMigration e -basicLoadBalancerStatePath para determinar o estado de configuração do Standard Load Balancer (se um tiver sido criado). O arquivo de log criado durante a migração também fornecerá muitos detalhes sobre a operação de migração e todos os erros.

  • O Standard Load Balancer existe e a SKU é 'Standard'
  • A contagem de configurações de IP de front-end corresponde e os endereços IP são iguais
  • A contagem de pools de back-end e as associações correspondem
  • A contagem de regras de balanceamento de carga corresponde
  • A contagem de investigações de integridade corresponde
  • A contagem de regras NAT de entrada corresponde
  • A contagem de pools NAT de entrada corresponde
  • Os Standard Load Balancer externos têm uma regra de saída configurada
  • Os membros do pool de back-end do Standard Load Balancer externo têm Grupos de Segurança de Rede associados

O que acontece se minha atualização falhar no meio da migração?

O módulo foi projetado para acomodar falhas devido a erros sem tratamento ou encerramento de script inesperado. O design da falha é uma abordagem "encaminhada com falha", em que, em vez de tentar voltar para o Load Balancer Básico, você deve corrigir o problema que causa a falha (consulte a saída de erro ou o arquivo de log) e tentar a migração novamente, especificando os parâmetros -FailedMigrationRetryFilePathLB <BasicLoadBalancerBackupFilePath> -FailedMigrationRetryFilePathVMSS <VMSSBackupFile>. Para balanceadores de carga públicos, como o SKU de Endereço IP Público foi atualizado para Standard, não será possível mover o mesmo IP de volta para um Load Balancer Básico.

Clique aqui para assistir a um vídeo do processo de recuperação

Se a migração com falha for direcionada a vários balanceadores de carga ao mesmo tempo, utilizando o parâmetro -MultiLBConfig, recupere cada Balancear de Carga individualmente usando o mesmo processo abaixo.

O procedimento básico para recuperação de falha é:

  1. Solucione a causa da falha de migração. Verificar o arquivo de log Start-AzBasicLoadBalancerUpgrade.log para obter detalhes
  2. Remover o novo Standard Load Balancer (se criado). Dependendo do estágio da migração com falha, talvez seja necessário remover a referência do Standard Load Balancer do Conjunto de Dimensionamento de Máquinas Virtuais ou das interfaces de rede de Máquina Virtual (configurações IP) e as Investigações de Integridade para remover o Standard Load Balancer.
  3. Localize o arquivo de backup de estado do Load Balancer Básico. Esse arquivo estará no diretório em que o script foi executado ou no caminho especificado com o parâmetro -RecoveryBackupPath durante a execução com falha. O arquivo é denominado: State_<basicLBName>_<basicLBRGName>_<timestamp>.json
  4. Execute novamente o script de migração especificando os parâmetros -FailedMigrationRetryFilePathLB <BasicLoadBalancerbackupFilePath> e -FailedMigrationRetryFilePathVMSS <VMSSBackupFile> (para back-ends de Conjunto de Dimensionamento de Máquinas Virtuais) em vez de -BasicLoadBalancerName, ou, passando o Balanceador de Carga Básico pelo pipeline

Próximas etapas