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, confira o seguinte vídeo:

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 os endereços IP públicos de front-end para SKU Standard e atribuição estática
  • 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

Migrar balanceadores de carga básicos internos em que as VMs de back-end ou instâncias de VMSS não têm endereços IP públicos requer etapas adicionais para conectividade de back-end com a Internet. Examine Como devo configurar o tráfego de saída para o meu balanceador de carga?

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 este script levará mais tempo, será um risco maior para seu aplicativo e causará tempo de inatividade. Examine as diretrizes de atualização do Load Balancer do Cluster do Service Fabric, para obter opções de migração.

Cenários sem suporte

  • Load Balancers Básicos com configurações de IP de front-end IPv6
  • Balanceadores de carga básicos para clusters do AKS (Serviços de Kubernetes do Azure)
  • 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á adicionado automaticamente se você instalar o módulo AzureBasicLoadBalancerUpgrade usando o comando Install-Module.

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
  • Planejar alterações de IP público no nível de instância em instâncias de conjunto de dimensionamento de máquinas virtuais (confira a observação)
  • [Recomendado] Crie grupos de segurança de rede ou adicione regras de segurança a um Grupo de Segurança de Rede existente para seus membros do pool de back-end. Permitir o tráfego por meio do balanceador de carga e qualquer outro tráfego que precisará ser explicitamente permitido em recursos de SKU Standard públicos
  • [Recomendado] Prepare sua conectividade de saída, adotando uma das seguintes abordagens descritas em Como devo configurar o tráfego de saída para o meu balanceador de carga?

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. Use Connect-AzAccount para se conectar ao Azure, especificando a ID da assinatura do Load Balancer Básico, caso tenha mais de uma assinatura.

    PS C:\> Connect-AzAccount -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)

    Dica

    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

Como posso listar os Basic Load Balancers a serem migrados no meu ambiente?

Uma forma de obter uma lista dos Balanceadores de Carga Básicos que precisam de ser migrados no seu ambiente é utilizar uma consulta do Azure Resource Graph. Uma consulta simples como esta listará todos os balanceadores de carga básicos que você tem acesso para ver.

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

"Também escrevemos uma consulta mais complexa que avalia a prontidão de cada Load Balancer Básico para migração na maioria dos critérios que este módulo verifica durante a validação. A consulta do Resource Graph pode ser encontrada em nosso projeto GitHub ou aberta no Azure Resource Graph Explorer.

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. Para front-ends internos, o módulo tenta reatribuir o mesmo endereço IP liberado quando o balanceador de carga Básico foi excluído. Se o IP privado não estiver disponível, o script falhará (veja O que acontece se minha 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 associados
  • 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 de conjunto de dimensionamento são alterados durante a atualização; IPs de máquina virtual 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

Como devo configurar o tráfego de saída para o meu balanceador de carga?

Os balanceadores de carga de SKU Standard não permitem acesso de saída padrão para seus membros do pool de back-end. Permitir o acesso de saída à Internet requer mais etapas.

Para balanceadores de carga externos, você pode usar Regras de saída para habilitar explicitamente o tráfego de saída para os membros do pool. Se você tiver um único pool de back-end, configuraremos automaticamente uma regra de saída para você durante a migração; se você tiver mais de um pool de back-end, precisará criar manualmente suas regras de saída para especificar alocações de porta.

Para balanceadores de carga internos, as regras de saída não são uma opção porque não há nenhum endereço IP público para SNAT. Isso deixa algumas opções a serem consideradas:

  • Gateway da NAT: os Gateways da NAT são a abordagem recomendada do Azure para o tráfego de saída na maioria dos casos. No entanto, os Gateways da NAT exigem que a sub-rede anexada não tenha recursos básicos de rede de SKU, o que significa que você precisará ter migrado todos os seus balanceadores de carga e endereços IP públicos antes de usá-los. Por esse motivo, recomendamos usar uma abordagem de duas etapas em que você primeiro usa uma das abordagens a seguir para conectividade de saída e, em seguida, alterna para Gateways da NAT depois que suas migrações de SKU Básico são concluídas.
  • Solução de virtualização de rede: encaminhe o seu tráfego por meio de uma solução de virtualização de rede, como um Firewall do Azure, que, por sua vez, roteará o seu tráfego para a Internet. Esta opção é ideal se você já tiver uma solução de virtualização de rede configurada.
  • Balanceador de carga externo secundário: ao adicionar um balanceador de carga externo secundário aos recursos de back-end, você pode usar o balanceador de carga externo para tráfego de saída configurando regras de saída. Se esse balanceador de carga externo não tiver nenhuma regra de balanceamento de carga, regras da NAT ou pools da NAT de entrada configurados, os seus recursos de back-end permanecerão isolados para sua rede interna para tráfego de entrada – confira a configuração do balanceador de carga somente de saída. Com esta opção, o balanceador de carga externo pode ser configurado antes de migrar do SKU Básico para o Standard e migrado ao mesmo tempo que o balanceador de carga interno usando o parâmetro -MultiLBConfig
  • Endereços IP públicos: por fim, os endereços IP públicos podem ser adicionados diretamente às suas máquinas virtuais ou instâncias de conjunto de dimensionamento de máquinas virtuais. No entanto, esta opção não é recomendada devido à área de superfície de segurança adicional e às despesas de adição de endereços IP públicos.

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.

Assista 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