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:
- 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 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 carga balanceada atinja os membros do pool de back-end. Isso segue 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, criando um novo pool de back-end para cada Pool de NAT migrado. Especifique
-skipUpgradeNATPoolsToNATRules
para ignorar essa atualização e usar o módulo de migração Pool de NAT autônomo mais tarde para obter mais opções de pool de back-end. - 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.
Instalação do Módulo
Instale o módulo na Galeria do PowerShell
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 seu 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 que o tráfego passe pelo Load Balancer, juntamente com qualquer outro tráfego a ser explicitamente permitido em recursos públicos de SKU Standard
- [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
Certifique-se de que você selecionou a ID de assinatura do Load Balancer Básico executando
Select-AzSubscription
.Select-AzSubscription -Subscription <SubscriptionId>
Localize o Load Balancer que deseja atualizar. Registre seu nome e o nome do grupo de recursos.
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
Execute o comando
Start-AzBasicLoadBalancerUpgrade
usando os exemplos a seguir para obter diretrizes.
Exemplo: validar um cenário
Validar se um Basic Load Balancer é compatível com o upgrade
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
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName>
Exemplo: fazer upgrade, alteração do nome e exibição de registros
Atualize um Load Balancer Básico para um Standard Load Balancer com o nome especificado exibido na saída registrada
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
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
Start-AzBasicLoadBalancerUpgrade -validateCompletedMigration -StandardLoadBalancerName <newStandardLBName> -basicLoadBalancerStatePath C:\RecoveryBackups\State_mybasiclb_rg-basiclbrg_20220912T1740032148.json
Exemplo: migrar vários Load Balancers relacionados
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
$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
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
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
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. A consulta a seguir lista todos os Load Balancers Básicos aos quais você tem acesso para visualização:
Resources
| where type == 'microsoft.network/loadbalancers' and sku.name == 'Basic'
'' Criamos uma consulta complexa que avalia a prontidão de cada Load Balancer Básico para migração na maioria dos critérios que esse 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, porque o Load Balancer Básico precisa ser removido antes que o novo Standard Load Balancer possa ser criado, há tempo de inatividade para 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 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. Observe que os IPs públicos das instâncias do Conjunto de Dimensionamento são alterados durante a atualização; os IPs das 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 permite as mesmas regras de balanceamento de carga, portas e protocolos, além de 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 Load Balancers um de cada vez tentaria misturar recursos de SKU Básico e Standard, o que 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?
Load Balancers 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, será necessário criar manualmente suas Regras de Saída para especificar as alocações de porta.
Para Load Balancers internos, as Regras de Saída não são uma opção, pois não há 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 de rede de SKU básico, o que significa que você precisará ter migrado todos os seus Load Balancers e Endereços IP Públicos antes de poder 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: Direcione seu tráfego por meio de uma Solução de Virtualização de Rede, como um Firewall do Azure, para direcionar 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 Load Balancer externo não tiver regras de balanceamento de carga, regras NAT ou pools de NAT de entrada configurados, seus recursos de back-end permanecerão isolados na rede interna para o tráfego de entrada. Consulte a configuração do balanceador de carga somente de saída. Com essa opção, o Load Balancer externo pode ser configurado antes de migrar de SKU básico para padrão 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, essa opção não é recomendada devido à área de superfície de segurança extra e à despesa de adicionar 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 a SKU do Endereço IP Público é atualizada para Standard, mover o mesmo IP de volta para um Load Balancer Básico não é possível.
Assista a um vídeo do processo de recuperação:
Se sua migração com falha tinha como alvo vários balanceadores de carga ao mesmo tempo, usando o parâmetro -MultiLBConfig
, recupere cada Load Balancer individualmente usando o seguinte processo:
- Solucione a causa da falha de migração. Verificar o arquivo de log
Start-AzBasicLoadBalancerUpgrade.log
para obter detalhes - Remover o novo Standard Load Balancer (se criado). Dependendo de qual estágio da migração falhou, pode ser necessário remover a referência ao Standard Load Balancer do Conjunto de Dimensionamento de Máquinas Virtuais, das interfaces de rede da Máquina Virtual (configurações de IP) e/ou das Investigações de Integridade para remover o Standard Load Balancer.
- Localize o arquivo de backup de estado do Load Balancer Básico. Esse arquivo está 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
- 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