Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Importante
Em 30 de setembro de 2025, o Basic Load Balancer será aposentado. Para obter mais informações, veja o anúncio oficial. Se você estiver usando o Basic Load Balancer, certifique-se de atualizar para o Standard Load Balancer antes da data de desativação.
Nota
Os clusters dos Serviços Kubernetes do Azure (AKS) com Balanceadores de Carga Básicos não são suportados com este script de migração. Analise outros cenários sem suporte antes de usar esse script.
O Azure Standard Load Balancer oferece um conjunto avançado de funcionalidades e alta disponibilidade por meio da redundância de zona. Para saber mais sobre o SKU do Balanceador de Carga, consulte a tabela de comparação.
Este artigo apresenta um módulo do PowerShell que cria um Balanceador de Carga Padrão com a mesma configuração do Balanceador de Carga Básico e, em seguida, associa o Conjunto de Escala de Máquina Virtual ou os membros do pool de back-end de Máquina Virtual ao novo Balanceador de Carga.
Para obter um passo a passo detalhado do módulo e do processo de atualização, consulte 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 PowerShell executa as seguintes funções:
- Verifica se o cenário do Balanceador de Carga Básico fornecido é suportado para atualização.
- Faz backup da configuração do Balanceador de Carga Básico e do Conjunto de Dimensionamento de Máquina Virtual, permitindo novas tentativas em caso de falha ou se forem encontrados erros.
- Para balanceadores de carga públicos, atualiza os endereços IP públicos front-end para SKU padrão e atribuição estática
- Atualiza a configuração do Basic Load Balancer para um novo Standard Load Balancer, garantindo a configuração e a paridade de recursos.
- Migra os membros do Conjunto de Escala de Máquina Virtual e os membros do pool de back-end de Máquina Virtual do Balanceador de Carga Básico para o Balanceador de Carga Standard.
- Cria e associa um grupo de segurança de rede ao Conjunto de Dimensionamento de Máquina Virtual ou à Máquina Virtual para que o tráfego equilibrado chegue aos membros do pool de back-end, garantindo assim a correta distribuição de carga. Isso segue a mudança do Standard Load Balancer para uma diretiva de rede de negação padrão.
- Atualiza endereços IP públicos no nível da instância associados a instâncias do Conjunto de Dimensionamento de Máquina Virtual ou de Máquina Virtual
- Atua pools de NAT de entrada para regras de NAT de entrada para instâncias de conjunto de dimensionamento de máquina virtual, criando um novo pool de back-end para cada pool de NAT migrado. Especifique
-skipUpgradeNATPoolsToNATRules
para ignorar esta atualização e use o módulo de migração do NAT Pool independente 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
A migração de Balanceadores de Carga Básicos internos em que as VMs de back-end ou instâncias VMSS não têm Endereços IP Públicos requer etapas adicionais para a conectividade de back-end com a Internet. Revisão Como devo configurar o tráfego de saída para o meu Load Balancer?
Nota
Se o Conjunto de Dimensionamento de Máquina Virtual no pool de back-end do Balanceador de Carga tiver Endereços IP Públicos em sua configuração de rede, os Endereços IP Públicos associados a cada instância do Conjunto de Dimensionamento de Máquina Virtual serão alterados quando forem atualizados para SKU Padrão. Isso ocorre porque os endereços IP públicos no nível da instância do conjunto de escala não podem ser atualizados, apenas substituídos por um novo IP público de SKU padrão. Todos os outros endereços IP públicos serão mantidos através da migração.
Nota
Se o Conjunto de Escala de Máquina Virtual atrás do Balanceador de Carga for um Cluster do Service Fabric, a migração com esse script levará mais tempo, representará maior risco para seu aplicativo e causará tempo de inatividade. Consulte as diretrizes de atualização do Balanceador de Carga de Cluster do Service Fabric para obter opções de migração.
Cenários Não Suportados
- Balanceadores de carga básicos com as configurações de IP frontal IPv6
- Balanceadores de carga básicos para clusters do Azure Kubernetes Services (AKS)
- Balanceadores de carga básicos com um membro do pool de back-end do Conjunto de Dimensionamento de Máquina Virtual em que uma ou mais instâncias do Conjunto de Dimensionamento de Máquina Virtual têm políticas de Proteção de Instância ProtectFromScaleSetActions habilitadas
- Migrando um Balanceador de Carga Básico para um Balanceador de Carga Padrão existente
- Balanceadores de carga básicos com membros do pool de back-end que fazem parte de um conjunto de disponibilidade, mas nem todos os membros do conjunto de disponibilidade estão atrás do balanceador de carga
- Se o seu Balanceador de Carga Básico tiver IP flutuante habilitado em uma configuração IP secundária da interface de rede, atualize o IP flutuante para um IP primário antes de executar o script de migração para evitar problemas de configuração
Instalar o módulo 'AzureBasicLoadBalancerUpgrade'
Pré-requisitos
- PowerShell: Uma versão suportada do PowerShell versão 7 ou superior é recomendada para uso com o módulo AzureBasicLoadBalancerUpgrade em todas as plataformas, incluindo Windows, Linux e macOS. No entanto, o PowerShell 5.1 no Windows é suportado.
Instalação do módulo
Instalar o módulo da Galeria do PowerShell
Install-Module -Name AzureBasicLoadBalancerUpgrade -Scope CurrentUser -Repository PSGallery -Force
Etapas pré e pós-migração
Passos de pré-migração
- Valide o suporte para o seu cenário
- Planejar o tempo de inatividade do aplicativo durante a migração
- Desenvolva testes de conectividade de entrada e saída para o seu tráfego
- Planear alterações de IP público ao nível de instância em instâncias do Conjunto de Dimensionamento de Máquinas Virtuais (consulte a nota)
- [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. Permitir que o tráfego através do Balanceador de Carga, juntamente com qualquer outro tráfego, seja explicitamente permitido em recursos públicos de SKU padrão
- [Recomendado] Prepare sua conectividade de saída, seguindo uma das seguintes abordagens descritas em Como devo configurar o tráfego de saída para meu Load Balancer?
- [Importante] Remova todos os bloqueios do balanceador de carga, seu grupo de recursos e quaisquer recursos relacionados antes de iniciar a migração
- [Importante] Confirme se você tem as permissões necessárias para excluir e criar balanceadores de carga e para modificar VMSS (Conjuntos de Dimensionamento de Máquina Virtual) e interfaces de rede associadas
Passos pós-migração
- Validar se a migração foi bem-sucedida
- Teste a conectividade de aplicativos de entrada por meio do Load Balancer
- Testar a conectividade de saída para a Internet dos membros do grupo de servidores de back-end
- Para balanceadores de carga públicos com vários pools de servidores de retaguarda, crie regras de saída para cada pool de servidores de retaguarda.
Utilize o módulo
Certifique-se de que selecionou o ID de subscrição do Balanceador de Carga Básico executando
Select-AzSubscription
.Select-AzSubscription -Subscription <SubscriptionId>
Encontre o Load Balancer que deseja atualizar. Registre seu nome e nome do grupo de recursos.
Examine os parâmetros do módulo básico:
- BasicLoadBalancerName [string] Required - Este parâmetro é o nome do Basic Load Balancer existente que você gostaria de atualizar
- ResourceGroupName [string] Required - Este parâmetro é o nome do grupo de recursos que contém o Basic Load Balancer
- StandardLoadBalancerName [string] Optional - Use este parâmetro para configurar opcionalmente um novo nome para o Standard Load Balancer. Se não for especificado, o nome do Balanceador de Carga Básico será reutilizado.
- RecoveryBackupPath [string] Opcional - Este parâmetro permite especificar um caminho alternativo no qual armazenar o arquivo de backup do modelo ARM do Basic Load Balancer (padrão para o diretório de trabalho atual)
Gorjeta
Parâmetros adicionais para cenários avançados e de recuperação podem ser visualizados executando
Get-Help Start-AzBasicLoadBalancerUpgrade -Detailed
Execute o
Start-AzBasicLoadBalancerUpgrade
comando, usando os exemplos a seguir para orientação.
Exemplo: validar um cenário
Validar se um Balanceador de Carga Básico é suportado para atualização
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName> -validateScenarioOnly:$true
Exemplo: atualizar por nome
Atualize um Balanceador de Carga Básico para um Balanceador de Carga Padrão com o mesmo nome, fornecendo o nome do Balanceador de Carga Básico e o nome do grupo de recursos
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName>
Exemplo: atualizar, alterar nome e mostrar logs
Atualizar um Balanceador de Carga Básico para um Balanceador de Carga Padrão com o nome especificado exibido na saída registrada
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName> -StandardLoadBalancerName <newStandardLBName> -FollowLog
Exemplo: atualizar com caminho alternativo de backup
Atualize um Balanceador de Carga Básico para um Balanceador de Carga Padrão com o nome especificado e armazene o arquivo de backup do Balanceador de Carga Básico no caminho especificado
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName> -StandardLoadBalancerName <newStandardLBName> -RecoveryBackupPath C:\BasicLBRecovery
Exemplo: validar migração concluída
Valide uma migração concluída passando o backup do arquivo de estado do Balanceador de Carga Básico e o nome do Balanceador de Carga Padrão
Start-AzBasicLoadBalancerUpgrade -validateCompletedMigration -StandardLoadBalancerName <newStandardLBName> -basicLoadBalancerStatePath C:\RecoveryBackups\State_mybasiclb_rg-basiclbrg_20220912T1740032148.json
Exemplo: migrar vários balanceadores de carga relacionados
Migre vários Balanceadores de Carga com membros de back-end partilhados simultaneamente, geralmente quando uma aplicação tem um Balanceador de Carga interno e 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: tentar novamente a migração falhada do conjunto de escala da máquina virtual
Tente novamente uma atualização falhada no balanceador de carga de um conjunto de escalonamento de máquinas virtuais (devido a erro ou terminação de script) fornecendo o arquivo de estado de backup do Balanceador de Carga Básico e do Conjunto de Escalonamento 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: nova tentativa de 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 de script) fornecendo o arquivo de estado de backup do Balanceador de Carga Básico
Start-AzBasicLoadBalancerUpgrade -FailedMigrationRetryFilePathLB C:\RecoveryBackups\State_mybasiclb_rg-basiclbrg_20220912T1740032148.json
Perguntas comuns
Como posso listar os equilibradores de carga Básicos a serem migrados no meu ambiente?
Uma maneira de obter uma lista dos Balanceadores de Carga Básicos que precisam ser migrados em seu ambiente é usar uma consulta do Azure Resource Graph. A consulta a seguir lista todos os Balanceadores de Carga Básicos que você tem acesso para exibir:
Resources
| where type == 'microsoft.network/loadbalancers' and sku.name == 'Basic'
'' Criamos uma consulta complexa que avalia a prontidão de cada Balanceador de Carga Básico para migração na maioria dos critérios que este módulo verifica durante a validação. A consulta Gráfico de Recursos pode ser encontrada em nosso projeto GitHub ou aberta no Azure Resource Graph Explorer.
Essa migração causará tempo de inatividade para meu aplicativo?
Sim, como o Basic Load Balancer precisa ser removido antes que o novo Standard Load Balancer possa ser criado, há tempo de inatividade para seu aplicativo. Consulte Quanto tempo demora a atualização?
O módulo migrará meu endereço IP frontend para o novo Standard Load Balancer?
Sim, para balanceadores de carga públicos e internos, o módulo garante que os endereços IP 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 Basic Load Balancer foi excluído. Se o IP privado não estiver disponível, o script falhará (consulte O que acontece se minha atualização falhar no meio da migração?).
Quanto tempo demora a atualização?
A atualização normalmente leva alguns minutos para que o script seja concluído. Os seguintes fatores podem levar a 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 dos Conjuntos de Dimensionamento de Máquinas Virtuais ou das Máquinas Virtuais associados
- Cluster do Service Fabric: as atualizações para clusters do Service Fabric levam cerca de uma hora em testes
Tenha em mente o tempo de inatividade e planeje o failover, se necessário.
O script migra os membros do meu pool de servidores de retaguarda do meu balanceador de carga básico para o novo balanceador de carga padrão?
Sim. O script do Azure PowerShell migra os Conjuntos de Escala de Máquina Virtual e as Máquinas Virtuais para os pools de back-end do Balanceador de Carga Padrão recém-criados.
Quais componentes do balanceador de carga são migrados?
O script migra o seguinte do Basic Load Balancer para o Standard Load Balancer:
Balanceadores de carga públicos e privados:
- Sondas de Saúde:
- Todas as sondas são migradas para o novo Standard Load Balancer
- Regras de balanceamento de carga:
- Todas as regras de balanceamento de carga são migradas para o novo Standard Load Balancer
- Regras NAT de entrada:
- Todas as regras NAT criadas pelo usuário sã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 backend:
- Todos os pools de back-end são migrados para o novo Standard Load Balancer
- Todas as interfaces de rede e configurações IP do Conjunto de Dimensionamento de Máquina Virtual e da Máquina Virtual são migradas para o novo Balanceador de Carga Padrão
- Se um Conjunto de Dimensionamento de Máquina Virtual estiver usando a política de Atualização Contínua, o script atualizará a política de atualização do Conjunto de Dimensionamento de Máquina Virtual para "Manual" durante o processo de migração e reverterá para "Contínua" após a conclusão da migração.
- Endereços IP públicos ao nível da instância
- Para Máquinas Virtuais e Conjuntos de Dimensionamento de Máquinas Virtuais, converte IPs Públicos anexados de SKU Básico para Padrão. Nota, os IPs públicos da instância do Scale set mudam durante a atualização; IPs de máquina virtual não.
- Tags do Balanceador de Carga Básico para o Balanceador de Carga Padrão
Balanceador de carga público:
- Configuração de Endereço IP de Frontend Público
- Converte o IP público em um IP estático, se dinâmico
- Atualiza o SKU do IP público para Padrão, caso seja Básico
- Atualize todos os IPs públicos associados para o novo Standard Load Balancer
- Regras de saída:
- Os balanceadores de carga básicos não suportam regras de saída configuradas. O script cria uma regra de saída no balanceador de carga padrão para preservar o comportamento de saída do balanceador de carga básico. Para obter mais informações sobre regras de saída, consulte Regras de saída.
- Grupo de segurança de rede
- O Balanceador de Carga Básico não requer um grupo de segurança de rede para permitir a conectividade de saída. Caso não haja nenhum grupo de segurança de rede associado ao Conjunto de Dimensionamento de Máquina Virtual, um novo grupo de segurança de rede é criado para preservar a mesma funcionalidade. Este novo grupo de segurança de rede está associado às interfaces de rede dos membros do pool de back-end do Virtual Machine Scale Set. Ele permite as mesmas regras, portas e protocolos de balanceamento de carga, além de preservar a conectividade de saída.
Balanceador de carga interno:
- Configuração de IP frontend privado
Nota
Os grupos de segurança de rede não são configurados como parte da atualização do Balanceador de Carga Interno. Para saber mais sobre NSGs, consulte Grupos de segurança de rede
Como faço para migrar quando meus membros do pool de back-end pertencem a vários Load Balancers?
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 Load Balancer, como quando você tem Load Balancers internos e externos para o mesmo aplicativo, os Basic Load Balancers precisam ser migrados ao mesmo tempo. Tentar migrar os Load Balancers um de cada vez tentaria misturar recursos de SKU Básico e Padrão, o que não é permitido. O script de migração suporta isso ao passar vários Balanceadores de Carga Básicos para a execução do mesmo script, usando o parâmetro -MultiLBConfig
.
Como posso validar que uma migração foi bem-sucedida?
No final de sua execução, o módulo de atualização executa as seguintes validações, comparando o Basic Load Balancer com o novo Standard Load Balancer. Em uma migração com falha, essa mesma operação pode ser chamada usando os -validateCompletedMigration
parâmetros 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 fornece detalhes abrangentes sobre a operação de migração e quaisquer erros.
- O Standard Load Balancer existe e seu SKU é 'Standard'
- A contagem de configurações de IP front-end corresponde, e os endereços IP são os mesmos.
- A contagem de pools de back-end e suas associações corresponde
- O número de regras de balanceamento de carga corresponde
- A contagem das sondas de saúde coincide
- A contagem de regras NAT de entrada coincide
- A contagem dos grupos NAT de entrada corresponde
- Os balanceadores de carga padrão externos têm uma regra de saída configurada
- Os membros do pool de back-end do Balanceador de Carga Padrão Externo têm Grupos de Segurança de Rede associados
Como devo configurar o tráfego de saída para o meu Load Balancer?
Os Equilibradores de Carga SKU Standard não permitem acesso de saída padrão para os membros do seu pool de back-end. Permitir o acesso de saída à internet requer mais etapas.
Para External Load Balancers, você pode usar Outbound Rules 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.
Nos Load Balancers internos, as Regras de Saída não são uma opção porque não há endereço IP público disponível para SNAT. Isso deixa algumas opções a considerar:
- Gateway NAT: os gateways NAT são a abordagem recomendada do Azure para o tráfego de saída na maioria dos casos. No entanto, os gateways NAT exigem que a sub-rede anexada não tenha recursos básicos de rede SKU, o que significa que você precisa ter migrado todos os seus balanceadores de carga e endereços IP públicos antes de poder usá-los. Por esse motivo, recomendamos a utilização de um processo em duas etapas, onde se usa primeiro uma das seguintes abordagens para conectividade de saída e, depois, se muda para os gateways NAT, assim que as migrações básicas de SKU forem concluídas.
- Dispositivo Virtual de Rede: Encaminhe seu tráfego por meio de um Dispositivo Virtual de Rede, como um Firewall do Azure, para rotear seu tráfego para a Internet. Esta opção é ideal se já tiver uma Ferramenta Virtual de Rede configurada.
-
Balanceador de Carga Externo Secundário: Ao adicionar um Balanceador de Carga externo secundário aos seus 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 regras de balanceamento de carga, regras NAT ou pools de NAT de entrada configurados, seus recursos de back-end permanecerão isolados em sua rede interna para tráfego de entrada - consulte Configuração do balanceador de carga somente de saída. Com esta opção, o Equilibrador de Carga externo pode ser configurado antes de migrar do SKU básico para o avançado, podendo ser migrado ao mesmo tempo que o equilibrador de carga interno, usando o
-MultiLBConfig
parâmetro - 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 do Conjunto de Dimensionamento de Máquinas Virtuais. No entanto, esta opção não é recomendada devido à camada 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 é projetado para acomodar falhas, seja devido a erros não tratados ou terminação de script inesperada. O design de falha é uma abordagem de 'fail forward', onde, em vez de tentar voltar ao Basic Load Balancer, deve corrigir-se o problema que está a causar a falha (consulte a saída de erro ou o ficheiro de log) e voltar a tentar a migração, especificando os parâmetros -FailedMigrationRetryFilePathLB <BasicLoadBalancerBackupFilePath> -FailedMigrationRetryFilePathVMSS <VMSSBackupFile>
. Para balanceadores de carga públicos, uma vez que a SKU do Endereço IP Público seja atualizada para Padrão, não é possível mover o mesmo IP de volta para um Balanceador de Carga Básico.
Assista a um vídeo do processo de recuperação:
Se a migração com falha foi direcionada a vários balanceadores de carga ao mesmo tempo, usando o parâmetro -MultiLBConfig
, recupere cada balanceador de carga individualmente usando o seguinte processo:
- Resolva a causa da falha de migração. Verifique o arquivo de
Start-AzBasicLoadBalancerUpgrade.log
log para obter detalhes - Remova o novo Standard Load Balancer (se o tiver criado). Dependendo de qual estágio da migração falhou, poderá ter que remover a referência do balanceador de carga padrão do conjunto de escalonamento da máquina virtual, das interfaces de rede de máquinas virtuais (configurações IP) e/ou das sondas de integridade de modo a remover o balanceador de carga padrão.
- Localize o arquivo de backup de estado do Basic Load Balancer. Esse arquivo está no diretório onde o script foi executado ou no caminho especificado com o
-RecoveryBackupPath
parâmetro durante a execução com falha. O ficheiro tem o seguinte nome: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 Conjuntos de Dimensionamento de Máquinas Virtuais) em vez de -BasicLoadBalancerName ou passando o Balanceador de Carga Básico pelo pipeline.
Próximos passos
- Caso seja ignorado, migre do uso de pools NAT para regras NAT para conjuntos de escalabilidade de máquinas virtuais
- Saiba mais sobre o Azure Load Balancer