Uppgradera en grundläggande lastbalanserare med PowerShell
Viktigt!
Den 30 september 2025 dras Basic Load Balancer tillbaka. Mer information finns i det officiella meddelandet. Om du för närvarande använder Basic Load Balancer måste du uppgradera till Standard Load Balancer före slutdatumet.
Azure Standard Load Balancer erbjuder en omfattande uppsättning funktioner och hög tillgänglighet via zonredundans. Mer information om Load Balancer SKU finns i jämförelsetabellen.
Den här artikeln introducerar en PowerShell-modul som skapar en Standard Load Balancer med samma konfiguration som Basic Load Balancer och sedan associerar vm-skalningsuppsättningen eller vm-serverdelspoolmedlemmar med den nya lastbalanseraren.
En djupgående genomgång av uppgraderingsmodulen och processen finns i följande video:
- 03:06 – Steg för steg
- 32:54 – Återställning
- 40:55 – Avancerade scenarier
- 57:54 – Resurser
Uppgraderingsöversikt
PowerShell-modulen utför följande funktioner:
- Verifierar att det angivna Basic Load Balancer-scenariot stöds för uppgradering.
- Säkerhetskopierar konfigurationen Grundläggande lastbalanserare och VM-skalningsuppsättning, vilket aktiverar återförsök vid fel eller om fel påträffas.
- För offentliga lastbalanserare uppdaterar de offentliga IP-adresserna för klientdelen till Standard SKU och statisk tilldelning
- Uppgraderar Basic Load Balancer-konfigurationen till en ny Standard Load Balancer, vilket säkerställer konfiguration och funktionsparitet.
- Migrerar vm-skalningsuppsättningar och medlemmar i serverdelspoolen för virtuella datorer från Basic Load Balancer till Standard Load Balancer.
- Skapar och associerar en nätverkssäkerhetsgrupp med VM-skalningsuppsättningen eller den virtuella datorn för att säkerställa att belastningsutjämnad trafik når medlemmar i serverdelspoolen, efter att Standard Load Balancer har flyttats till en standardprincip för nekat nätverk.
- Uppgraderar offentliga IP-adresser på instansnivå som är associerade med vm-skalningsuppsättningar eller virtuella datorinstanser
- Uppgraderar inkommande NAT-pooler till inkommande NAT-regler för vm-skalningsuppsättningsserverdelar, vilket skapar en ny serverdelspool för varje migrerad NAT-pool. Ange
-skipUpgradeNATPoolsToNATRules
för att hoppa över den här uppgraderingen och använd den fristående NAT-poolmigreringsmodulen senare för fler alternativ för serverdelspooler. - Loggar uppgraderingsåtgärden för enkel granskning och återställning av fel.
Varning
Migrering av interna grundläggande lastbalanserare där de virtuella serverdelsdatorerna eller VMSS-instanserna inte har offentliga IP-adresser kräver ytterligare steg för serverdelsanslutning till Internet. Läs Hur ska jag konfigurera utgående trafik för min lastbalanserare?
Kommentar
Om vm-skalningsuppsättningen i lastbalanserarens serverdelspool har offentliga IP-adresser i nätverkskonfigurationen ändras de offentliga IP-adresserna som är associerade med varje vm-skalningsuppsättningsinstans när de uppgraderas till Standard SKU. Detta beror på att skalningsuppsättningens offentliga IP-adresser på instansnivå inte kan uppgraderas, utan endast ersätts med en ny offentlig IP-adress för standard-SKU. Alla andra offentliga IP-adresser behålls via migreringen.
Kommentar
Om vm-skalningsuppsättningen bakom lastbalanseraren är ett Service Fabric-kluster tar migreringen med det här skriptet längre tid, är större risk för ditt program och orsakar avbrott. Läs uppgraderingsvägledningen för Service Fabric Cluster Load Balancer för migreringsalternativ.
Scenarier som inte stöds
- Grundläggande lastbalanserare med IP-konfigurationer för IPv6-klientdelen
- Basic Load Balancers för AKS-kluster (Azure Kubernetes Services)
- Grundläggande lastbalanserare med en vm-skalningsuppsättningsmedlem i serverdelspoolen där en eller flera vm-skalningsuppsättningsinstanser har ProtectFromScaleSetActions-instansskyddsprinciper aktiverade
- Migrera en grundläggande lastbalanserare till en befintlig Standard Load Balancer
Installera modulen "AzureBasicLoadBalancerUpgrade"
Förutsättningar
- PowerShell: En version av PowerShell version 7 eller senare som stöds rekommenderas för användning med Modulen AzureBasicLoadBalancerUpgrade på alla plattformar, inklusive Windows, Linux och macOS. PowerShell 5.1 i Windows stöds dock.
Modulinstallation
Installera modulen från PowerShell-galleriet
Install-Module -Name AzureBasicLoadBalancerUpgrade -Scope CurrentUser -Repository PSGallery -Force
Steg före och efter migreringen
Steg före migrering
- Kontrollera att ditt scenario stöds
- Planera för programavbrott under migreringen
- Utveckla inkommande och utgående anslutningstester för din trafik
- Planera för offentliga IP-ändringar på instansnivå på vm-skalningsuppsättningsinstanser (se anmärkning)
- [Rekommenderas] Skapa nätverkssäkerhetsgrupper eller lägg till säkerhetsregler i en befintlig nätverkssäkerhetsgrupp för dina medlemmar i serverdelspoolen. Tillåt trafik via lastbalanseraren och annan trafik som uttryckligen måste tillåtas på offentliga Standard SKU-resurser
- [Rekommenderas] Förbered din utgående anslutning med någon av följande metoder som beskrivs i Hur ska jag konfigurera utgående trafik för min lastbalanserare?
Steg efter migrering
- Kontrollera att migreringen lyckades
- Testa inkommande programanslutning via Load Balancer
- Testa utgående anslutning från medlemmar i serverdelspoolen till Internet
- För offentliga lastbalanserare med flera serverdelspooler skapar du regler för utgående trafik för varje serverdelspool
Använda modulen
Kontrollera att du har valt prenumerations-ID:t för Basic Load Balancer genom att köra
Select-AzSubscription
.Select-AzSubscription -Subscription <SubscriptionId>
Leta reda på den lastbalanserare som du vill uppgradera. Registrera dess namn och resursgruppsnamn.
Granska de grundläggande modulparametrarna:
- BasicLoadBalancerName [sträng] Krävs – Den här parametern är namnet på den befintliga Basic Load Balancer som du vill uppgradera
- ResourceGroupName [sträng] Krävs – Den här parametern är namnet på resursgruppen som innehåller Basic Load Balancer
- StandardLoadBalancerName [sträng] Valfritt – Använd den här parametern om du vill konfigurera ett nytt namn för Standard Load Balancer. Om det inte anges återanvänds basic Load Balancer-namnet.
- RecoveryBackupPath [sträng] Valfritt – Med den här parametern kan du ange en alternativ sökväg där du kan lagra säkerhetskopieringsfilen för ARM-mallen Basic Load Balancer (standardvärdet för den aktuella arbetskatalogen)
Dricks
Ytterligare parametrar för avancerade scenarier och återställningsscenarier kan visas genom att köra
Get-Help Start-AzBasicLoadBalancerUpgrade -Detailed
Start-AzBasicLoadBalancerUpgrade
Kör kommandot med hjälp av följande exempel för vägledning.
Exempel: verifiera ett scenario
Kontrollera att en grundläggande lastbalanserare stöds för uppgradering
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName> -validateScenarioOnly
Exempel: uppgradera efter namn
Uppgradera en Basic Load Balancer till en Standard Load Balancer med samma namn, med namnet Basic Load Balancer och resursgruppens namn
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName>
Exempel: uppgradera, ändra namn och visa loggar
Uppgradera en Basic Load Balancer till en Standard Load Balancer med det angivna namnet och visa loggade utdata på skärmen
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName> -StandardLoadBalancerName <newStandardLBName> -FollowLog
Exempel: uppgradera med alternativ säkerhetskopieringssökväg
Uppgradera en Basic Load Balancer till en Standard Load Balancer med det angivna namnet och lagra basic Load Balancer-säkerhetskopieringsfilen på den angivna sökvägen
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName> -StandardLoadBalancerName <newStandardLBName> -RecoveryBackupPath C:\BasicLBRecovery
Exempel: verifiera slutförd migrering
Verifiera en slutförd migrering genom att skicka säkerhetskopieringen av basic load balancer-tillståndsfilen och Standard Load Balancer-namnet
Start-AzBasicLoadBalancerUpgrade -validateCompletedMigration -StandardLoadBalancerName <newStandardLBName> -basicLoadBalancerStatePath C:\RecoveryBackups\State_mybasiclb_rg-basiclbrg_20220912T1740032148.json
Exempel: migrera flera relaterade lastbalanserare
Migrera flera lastbalanserare med delade serverdelsmedlemmar samtidigt, vanligtvis när ett program har en intern och en extern lastbalanserare
# 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
Exempel: Migrering av vm-skalningsuppsättningar som misslyckats igen
Försök att uppgradera igen för en vm-skalningsuppsättnings lastbalanserare (på grund av fel eller skriptavslut) genom att ange säkerhetskopieringstillståndsfilen Basic Load Balancer och Virtual Machine Scale Set
Start-AzBasicLoadBalancerUpgrade -FailedMigrationRetryFilePathLB C:\RecoveryBackups\State_mybasiclb_rg-basiclbrg_20220912T1740032148.json -FailedMigrationRetryFilePathVMSS C:\RecoveryBackups\VMSS_myVMSS_rg-basiclbrg_20220912T1740032148.json
Exempel: Försök att utföra migrering av virtuella datorer igen
Försök att uppgradera igen för en vm-lastbalanserare (på grund av fel eller skriptavslut) genom att ange säkerhetskopieringstillståndsfilen basic Load Balancer
Start-AzBasicLoadBalancerUpgrade -FailedMigrationRetryFilePathLB C:\RecoveryBackups\State_mybasiclb_rg-basiclbrg_20220912T1740032148.json
Vanliga frågor
Hur kan jag lista de grundläggande lastbalanserare som ska migreras i min miljö?
Ett sätt att få en lista över de grundläggande lastbalanserare som behöver migreras i din miljö är att använda en Azure Resource Graph-fråga. En enkel fråga som den här visar en lista över alla grundläggande lastbalanserare som du har åtkomst till.
Resources
| where type == 'microsoft.network/loadbalancers' and sku.name == 'Basic'
'' Vi har också skrivit en mer komplex fråga som utvärderar beredskapen för varje grundläggande lastbalanserare för migrering på de flesta av de kriterier som den här modulen kontrollerar under valideringen. Resource Graph-frågan finns i vårt GitHub-projekt eller öppnas i Azure Resource Graph Explorer.
Kommer den här migreringen att orsaka stilleståndstid för mitt program?
Ja, eftersom Den grundläggande lastbalanseraren måste tas bort innan den nya Standard Load Balancer kan skapas, blir det avbrott i programmet. Se Hur lång tid tar uppgraderingen?
Kommer modulen att migrera min IP-adress för klientdelen till den nya Standard Load Balancer?
Ja, för både offentliga och interna lastbalanserare säkerställer modulen att klientdelens IP-adresser underhålls. För offentliga IP-adresser konverteras IP-adressen till en statisk IP-adress före migreringen. För interna klientdelar försöker modulen omtilldela samma IP-adress som frigjordes när Basic Load Balancer togs bort. Om den privata IP-adressen inte är tillgänglig misslyckas skriptet (se Vad händer om uppgraderingen misslyckas mitt i migreringen?).
Hur lång tid tar uppgraderingen?
Uppgraderingen tar normalt några minuter för skriptet att slutföras. Följande faktorer kan leda till längre uppgraderingstider:
- Komplexiteten i konfigurationen av lastbalanseraren
- Antal medlemmar i serverdelspoolen
- Antal instanser av associerade VM-skalningsuppsättningar eller virtuella datorerf
- Service Fabric-kluster: Uppgraderingar för Service Fabric-kluster tar ungefär en timme att testa
Tänk på stilleståndstiden och planera för redundans vid behov.
Migrerar skriptet mina medlemmar i serverdelspoolen från min Basic Load Balancer till den nyligen skapade Standard Load Balancer?
Ja. Azure PowerShell-skriptet migrerar vm-skalningsuppsättningar och virtuella datorer till de nyligen skapade Standard Load Balancer-serverdelspoolerna.
Vilka lastbalanseringskomponenter migreras?
Skriptet migrerar följande från Basic Load Balancer till Standard Load Balancer:
Offentliga och privata lastbalanserare:
- Hälsoavsökningar:
- Alla avsökningar migreras till den nya Standard Load Balancer
- Regler för belastningsutjämning:
- Alla belastningsutjämningsregler migreras till den nya Standard Load Balancer
- Inkommande NAT-regler:
- Alla användarskapade NAT-regler migreras till den nya Standard Load Balancer
- Inkommande NAT-pooler:
- Som standard uppgraderas NAT-pooler till NAT-regler
- Om du vill migrera NAT-pooler i stället anger du parametern
-skipUpgradeNATPoolsToNATRules
när du uppgraderar
- Serverdelspooler:
- Alla serverdelspooler migreras till den nya Standard Load Balancer
- Alla vm-skalningsuppsättningar och nätverksgränssnitt för virtuella datorer och IP-konfigurationer migreras till den nya Standard Load Balancer
- Om en vm-skalningsuppsättning använder en princip för löpande uppgradering uppdaterar skriptet uppgraderingsprincipen för vm-skalningsuppsättningen till "Manuell" under migreringsprocessen och återställer den till "Rullande" när migreringen har slutförts.
- Offentliga IP-adresser på instansnivå
- För både virtuella datorer och VM-skalningsuppsättningar konverterar anslutna offentliga IP-adresser från Basic till Standard SKU. Observera att offentliga IP-adresser för skalningsuppsättningsinstansen ändras under uppgraderingen. virtuella dator-IP-adresser gör det inte.
- Taggar från Basic Load Balancer till Standard Load Balancer
Offentlig lastbalanserare:
- Ip-konfiguration för offentlig klientdel
- Konverterar den offentliga IP-adressen till en statisk IP-adress, om den är dynamisk
- Uppdaterar den offentliga IP-SKU:n till Standard, om Basic
- Uppgradera alla associerade offentliga IP-adresser till den nya Standard Load Balancer
- Regler för utgående trafik:
- Grundläggande lastbalanserare stöder inte konfigurerade regler för utgående trafik. Skriptet skapar en regel för utgående trafik i standardlastbalanseraren för att bevara utgående beteende för basic-lastbalanseraren. Mer information om regler för utgående trafik finns i Regler för utgående trafik.
- Nätverkssäkerhetsgrupp
- Basic Load Balancer kräver inte någon nätverkssäkerhetsgrupp för att tillåta utgående anslutning. Om det inte finns någon nätverkssäkerhetsgrupp som är associerad med VM-skalningsuppsättningen skapas en ny nätverkssäkerhetsgrupp för att bevara samma funktioner. Den här nya nätverkssäkerhetsgruppen är associerad med nätverksgränssnitten för vm-skalningsuppsättningens serverdelspool. Den tillåter samma portar och protokoll för belastningsutjämningsregler och bevarar den utgående anslutningen.
Intern lastbalanserare:
- Ip-konfiguration för privat klientdel
Kommentar
Nätverkssäkerhetsgrupper har inte konfigurerats som en del av uppgraderingen av den interna lastbalanseraren. Mer information om nätverkssäkerhetsgrupper finns i Nätverkssäkerhetsgrupper
Hur migrerar jag när mina medlemmar i serverdelspoolen tillhör flera lastbalanserare?
I ett scenario där medlemmarna i serverdelspoolen också är medlemmar i serverdelspooler i en annan lastbalanserare, till exempel när du har interna och externa lastbalanserare för samma program, måste de grundläggande lastbalanserarna migreras samtidigt. Ett försök att migrera lastbalanserarna en i taget skulle försöka blanda Basic- och Standard SKU-resurser, vilket inte är tillåtet. Migreringsskriptet stöder detta genom att skicka flera grundläggande lastbalanserare till samma skriptkörning med hjälp av parametern -MultiLBConfig
.
Hur verifierar jag att en migrering lyckades?
I slutet av körningen utför uppgraderingsmodulen följande valideringar och jämför Basic Load Balancer med den nya Standard Load Balancer. I en misslyckad migrering kan samma åtgärd anropas med parametrarna -validateCompletedMigration
och -basicLoadBalancerStatePath
för att fastställa konfigurationstillståndet för Standard Load Balancer (om en har skapats). Loggfilen som skapades under migreringen innehåller också omfattande information om migreringsåtgärden och eventuella fel.
- Standard Load Balancer finns och dess SKU är "Standard"
- Antalet IP-konfigurationer i klientdelen matchar och att IP-adresserna är desamma
- Antalet serverdelspooler och deras medlemskap matchar
- Antalet belastningsutjämningsregler matchar
- Antalet hälsoavsökningar matchar
- Antalet inkommande NAT-regler matchar
- Antalet inkommande NAT-pooler matchar
- Externa standardlastbalanserare har en konfigurerad regel för utgående trafik
- Medlemmar i den externa Standard Load Balancer-serverdelspoolen har associerade nätverkssäkerhetsgrupper
Hur ska jag konfigurera utgående trafik för min lastbalanserare?
Standard SKU Load Balancers tillåter inte standardutgående åtkomst för sina medlemmar i serverdelspoolen. Att tillåta utgående åtkomst till Internet kräver fler steg.
För externa lastbalanserare kan du använda regler för utgående trafik för att uttryckligen aktivera utgående trafik för dina poolmedlemmar. Om du har en enda serverdelspool konfigurerar vi automatiskt en regel för utgående trafik åt dig under migreringen. Om du har fler än en serverdelspool måste du manuellt skapa dina utgående regler för att ange portallokeringar.
För interna lastbalanserare är regler för utgående trafik inte ett alternativ eftersom det inte finns någon offentlig IP-adress att SNAT via. Detta lämnar ett par alternativ att överväga:
- NAT Gateway: NAT-gatewayer är Azures rekommenderade metod för utgående trafik i de flesta fall. NAT-gatewayer kräver dock att det anslutna undernätet inte har några grundläggande SKU-nätverksresurser, vilket innebär att du måste ha migrerat alla dina lastbalanserare och offentliga IP-adresser innan du kan använda dem. Därför rekommenderar vi att du använder en tvåstegsmetod där du först använder någon av följande metoder för utgående anslutning och sedan växlar till NAT Gateways när dina grundläggande SKU-migreringar har slutförts.
- Virtuell nätverksinstallation: Dirigera trafiken via en virtuell nätverksinstallation, till exempel en Azure-brandvägg, som i sin tur dirigerar trafiken till Internet. Det här alternativet är perfekt om du redan har konfigurerat en virtuell nätverksinstallation.
- Sekundär extern lastbalanserare: Genom att lägga till en sekundär extern lastbalanserare till dina serverdelsresurser kan du använda den externa lastbalanseraren för utgående trafik genom att konfigurera regler för utgående trafik. Om den här externa lastbalanseraren inte har några belastningsutjämningsregler, NAT-regler eller inkommande NAT-pooler konfigurerade förblir dina serverdelsresurser isolerade till ditt interna nätverk för inkommande trafik – se konfiguration av lastbalanserare med endast utgående trafik. Med det här alternativet kan den externa lastbalanseraren konfigureras innan du migrerar från grundläggande till standard-SKU och migreras samtidigt som den interna lastbalanseraren med hjälp av parametern
-MultiLBConfig
- Offentliga IP-adresser: Slutligen kan offentliga IP-adresser läggas till direkt till dina vm-datorer eller vm-skalningsuppsättningsinstanser. Det här alternativet rekommenderas dock inte på grund av den extra säkerhetsytan och kostnaden för att lägga till offentliga IP-adresser.
Vad händer om uppgraderingen misslyckas mitt i migreringen?
Modulen är utformad för att hantera fel, antingen på grund av ohanterade fel eller oväntad skriptavslutning. Feldesignen är en "fail forward"-metod, där du i stället för att försöka flytta tillbaka till Basic Load Balancer bör korrigera problemet som orsakar felet (se felutdata eller loggfil) och försöka migrera igen och ange parametrarna -FailedMigrationRetryFilePathLB <BasicLoadBalancerBackupFilePath> -FailedMigrationRetryFilePathVMSS <VMSSBackupFile>
igen. För offentliga lastbalanserare, eftersom den offentliga IP-adress-SKU:n har uppdaterats till Standard, går det inte att flytta samma IP-adress tillbaka till en Basic Load Balancer.
Titta på en video av återställningsprocessen:
Om din misslyckade migrering var riktad mot flera lastbalanserare samtidigt återställer du varje lastbalanserare individuellt med hjälp av parametern -MultiLBConfig
med samma process som nedan.
Den grundläggande felåterställningsproceduren är:
- Åtgärda orsaken till migreringsfelet. Mer information finns i loggfilen
Start-AzBasicLoadBalancerUpgrade.log
- Ta bort den nya Standard Load Balancer (om den skapas). Beroende på vilken fas av migreringen som misslyckades kan du behöva ta bort Standard Load Balancer-referensen från vm-skalningsuppsättningen eller nätverksgränssnitten för virtuella datorer (IP-konfigurationer) och hälsoavsökningar för att ta bort Standard Load Balancer.
- Leta upp säkerhetskopieringsfilen för Basic Load Balancer-tillstånd. Den här filen finns antingen i katalogen där skriptet kördes eller på den sökväg som angavs med parametern
-RecoveryBackupPath
under den misslyckade körningen. Filen heter:State_<basicLBName>_<basicLBRGName>_<timestamp>.json
- Kör migreringsskriptet igen, ange parametrarna
-FailedMigrationRetryFilePathLB <BasicLoadBalancerbackupFilePath>
och-FailedMigrationRetryFilePathVMSS <VMSSBackupFile>
(för vm-skalningsuppsättningens serverdelar) i stället för -BasicLoadBalancerName eller skicka Basic Load Balancer över pipelinen