Mettre à niveau un équilibreur de charge de base avec PowerShell
Important
Le 30 septembre 2025, l’équilibreur de charge De base sera mis hors service. Pour plus d’informations, consultez l’annonce officielle. Si vous utilisez actuellement des équilibreurs de charge De base, veillez à effectuer une mise à niveau vers Standard Load Balancer avant la date de mise hors service.
Azure Standard Load Balancer offre un ensemble complet de fonctionnalités et une haute disponibilité avec la redondance de zone. Pour en savoir plus sur la référence SKU de Load Balancer, consultez le tableau comparatif.
Cet article présente un module PowerShell qui crée un Standard Load Balancer avec la même configuration que le Basic Load Balancer, puis associe les membres du pool de back-ends de machine virtuelle ou de groupe de machines virtuelles identiques au nouvel équilibreur de charge.
Pour une procédure pas à pas détaillée du module et du processus de mise à niveau, consultez la vidéo suivante :
- 03:06 : Procédure pas à pas
- 32:54 : Récupération
- 40:55 : Scénarios avancés
- 57:54 : Ressources
Vue d'ensemble de la mise à niveau
Le module PowerShell effectue les fonctions suivantes :
- Vérifie que le scénario d’équilibreur de charge de base fourni est pris en charge pour la mise à niveau.
- Sauvegarde la configuration de l’équilibreur de charge De base et du groupe de machines virtuelles identiques, permettant une nouvelle tentative en cas d’échec ou si des erreurs sont rencontrées.
- Pour les équilibreurs de charge publics, met à jour les adresses IP publiques de front-end vers la référence SKU standard et l’attribution statique
- Met à niveau la configuration de l’équilibreur de charge De base vers un nouvel équilibreur de charge Standard, ce qui garantit la configuration et la parité des fonctionnalités.
- Migre les membres du pool de back-ends de machine virtuelle ou de groupe de machines virtuelles identiques du Basic Load Balancer vers le Standard Load Balancer.
- Crée et associe un groupe de sécurité réseau au groupe de machines virtuelles identiques ou à la machine virtuelle pour garantir que le trafic à charge équilibrée atteint les membres du pool principal. Cela suit le déplacement de Standard Load Balancer vers une stratégie réseau de refus par défaut.
- Met à niveau les adresses IP publiques au niveau de l’instance associées aux instances de groupe de machines virtuelles identiques ou de machine virtuelle.
- Met à niveau les pools NAT entrants vers les règles NAT de trafic entrant pour les back-ends de jeu de mise à l’échelle de machine virtuelle, en créant un nouveau pool de back-ends pour chaque pool NAT migré. Spécifiez
-skipUpgradeNATPoolsToNATRules
pour ignorer cette mise à niveau et utiliser le module de migration de pool NAT autonome ultérieurement pour plus d’options de pool de back-end. - Enregistre l’opération de mise à niveau pour faciliter l’audit et la récupération après défaillance.
Avertissement
La migration des équilibreurs de charge de base internes, où les machines virtuelles de back-end / instances VMSS n’ont pas d’adresses IP publiques, nécessite des étapes supplémentaires pour la connectivité du back-end à Internet. Consultez Comment configurer le trafic sortant pour mon équilibreur de charge ?
Remarque
Si le groupe de machines virtuelles identiques du pool de back-ends Load Balancer a des adresses IP publiques dans sa configuration réseau, les adresses IP publiques associées à chaque instance de groupe de machines virtuelles identiques changent lorsqu’elles sont mises à niveau vers la référence SKU Standard. Cela est dû au fait que les adresses IP publiques au niveau de l’instance de groupe identique ne peuvent pas être mises à niveau, mais uniquement remplacées par une nouvelle adresse IP publique de référence SKU Standard. Toutes les autres adresses IP publiques seront conservées après la migration.
Remarque
Si le groupe de machines virtuelles identiques derrière le Load Balancer est un cluster Service Fabric, la migration au moyen de ce script va prendre plus de temps, sera plus risquée pour votre application et va causer un temps d’arrêt. Passez en revue les conseils de mise à niveau de Load Balancer du cluster Service Fabric pour les options de migration.
Scénarios non pris en charge
- Équilibreurs de charge de base avec des configurations IP frontales IPv6
- Équilibreurs de charge de base pour les clusters Azure Kubernetes Services (AKS)
- Équilibreurs de charge De base avec un membre du pool principal de groupe de machines virtuelles identiques où une ou plusieurs instances de groupe de machines virtuelles identiques ont des stratégies de protection d’instance ProtectFromScaleSetActions activées
- Migration d’un équilibreur de charge De base vers un équilibreur de charge Standard existant
Installez le module « AzureBasicLoadBalancerUpgrade »
Prérequis
- PowerShell : Une version prise en charge de PowerShell version 7 ou supérieure est recommandée pour une utilisation avec le module AzureBasicLoadBalancerUpgrade sur toutes les plateformes, y compris Windows, Linux et macOS. Cependant, PowerShell 5.1 sous Windows est pris en charge.
Installation des modules
Installer le module à partir de PowerShell Gallery
Install-Module -Name AzureBasicLoadBalancerUpgrade -Scope CurrentUser -Repository PSGallery -Force
Étapes avant et après la migration
Étapes de prémigration
- Valider la prise en charge pour votre scénario
- Planifier les temps d'arrêt des applications pendant la migration
- Développez des tests de connectivité entrante et sortante pour votre trafic
- Planifier les changements d’IP publique au niveau de l’instance sur les instances de groupe de machines virtuelles identiques (voir la note)
- [Recommandé] Créez des groupes de sécurité réseau ou ajoutez des règles de sécurité à un groupe de sécurité réseau existant pour les membres de votre pool de back-ends. Autoriser le trafic via Load Balancer ainsi que tout autre trafic à être explicitement autorisé sur les ressources de référence SKU standard publiques
- [Recommandé] Préparez votre connectivité sortante, en choisissant une des approches suivantes décrites dans Comment configurer le trafic sortant pour mon équilibreur de charge ?
Étapes post-migration
- Vérifiez que votre migration a réussi
- Testez la connectivité des applications entrantes via Load Balancer
- Testez la connectivité sortante des membres du pool principal vers Internet
- Pour les équilibreurs de charge publics dotés de plusieurs pools back-end, créez des règles sortantes pour chaque pool back-end
Utiliser le module
Vérifiez que vous avez sélectionné l’ID d’abonnement de Load Balancer Essentiel en exécutant
Select-AzSubscription
.Select-AzSubscription -Subscription <SubscriptionId>
Recherchez l’équilibreur de charge que vous souhaitez mettre à niveau. Enregistrez son nom et son nom de groupe de ressources.
Examinez les paramètres de base du module :
- BasicLoadBalancerName [string] Requis - Ce paramètre est le nom de l’équilibreur de charge de base existant que vous souhaitez mettre à niveau
- ResourceGroupName [string] Requis - Ce paramètre est le nom du groupe de ressources contenant l’équilibreur de charge De base
- StandardLoadBalancerName [string] Facultatif : utilisez ce paramètre pour configurer éventuellement un nouveau nom pour le Standard Load Balancer. S’il n’est pas spécifié, le nom du Basic Load Balancer est réutilisé.
- RecoveryBackupPath [string] Facultatif - Ce paramètre vous permet de spécifier un chemin alternatif dans lequel stocker le fichier de sauvegarde du modèle ARM de l’équilibreur de charge De base (par défaut, le répertoire de travail actuel)
Conseil
Vous pouvez afficher des paramètres supplémentaires pour les scénarios avancés et de récupération en exécutant
Get-Help Start-AzBasicLoadBalancerUpgrade -Detailed
.Exécutez la commande
Start-AzBasicLoadBalancerUpgrade
en vous inspirant des exemples suivants.
Exemple : valider un scénario
Vérifier qu'Azure Load Balancer De base est pris en charge pour la mise à niveau
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName> -validateScenarioOnly
Exemple : mise à niveau par nom
Mettez à niveau un Azure Load Balancer De base vers un Standard Load Balancer portant le même nom, en fournissant le nom de l'Azure Load Balancer De base et le nom du groupe de ressources
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName>
Exemple : mettre à niveau, modifier le nom et afficher les journaux
Mettre à niveau Load Balancer Essentiel vers Standard Load Balancer avec le nom spécifié affiché dans la sortie journalisée
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName> -StandardLoadBalancerName <newStandardLBName> -FollowLog
Exemple : mise à niveau avec un autre chemin de sauvegarde
Mettez à niveau un Azure Load Balancer De base vers un Standard Load Balancer portant le nom spécifié et stockez le fichier de sauvegarde de l'Azure Load Balancer de base au chemin spécifié
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName> -StandardLoadBalancerName <newStandardLBName> -RecoveryBackupPath C:\BasicLBRecovery
Exemple : valider la migration terminée
Validez une migration terminée en transmettant la sauvegarde du fichier d'état de l'Azure Load Balancer De base et le nom de Standard Load Balancer
Start-AzBasicLoadBalancerUpgrade -validateCompletedMigration -StandardLoadBalancerName <newStandardLBName> -basicLoadBalancerStatePath C:\RecoveryBackups\State_mybasiclb_rg-basiclbrg_20220912T1740032148.json
Exemple : migrer plusieurs équilibreurs de charge associés
Migrez simultanément plusieurs Azure Load Balancer avec des membres backend partagés, généralement lorsqu'une application dispose d'un équilibreur de charge interne et externe
# 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
Exemple : nouvelle tentative de migration d'un groupe de machines virtuelles identiques ayant échoué
Réessayez une mise à niveau ayant échoué pour l'Azure Load Balancer d'un groupe de machines virtuelles identiques (en raison d'une erreur ou de l'arrêt d'un script) en fournissant le fichier d'état de sauvegarde de l'Azure Load Balancer De base et du groupe de machines virtuelles identiques
Start-AzBasicLoadBalancerUpgrade -FailedMigrationRetryFilePathLB C:\RecoveryBackups\State_mybasiclb_rg-basiclbrg_20220912T1740032148.json -FailedMigrationRetryFilePathVMSS C:\RecoveryBackups\VMSS_myVMSS_rg-basiclbrg_20220912T1740032148.json
Exemple : réessayer une migration de machine virtuelle ayant échoué
Réessayez une mise à niveau ayant échoué pour un équilibreur de charge de VM (en raison d'une erreur ou de l'arrêt d'un script) en fournissant le fichier d'état de sauvegarde de l'Azure Load Balancer De base
Start-AzBasicLoadBalancerUpgrade -FailedMigrationRetryFilePathLB C:\RecoveryBackups\State_mybasiclb_rg-basiclbrg_20220912T1740032148.json
Questions courantes
Comment puis-je répertorier les équilibreurs de charge de base à migrer dans mon environnement ?
Une façon d’obtenir une liste des équilibreurs de charge de base qui doivent être migrés dans votre environnement consiste à utiliser une requête Azure Resource Graph. La requête suivante répertorie tous les Load Balancer Essentiel que vous avez accès à afficher :
Resources
| where type == 'microsoft.network/loadbalancers' and sku.name == 'Basic'
« ' Nous avons créé une requête complexe qui évalue la préparation de chaque Load Balancer Essentiel pour la migration sur la plupart des critères que ce module vérifie pendant validation. La requête Resource Graph se trouve dans notre projet GitHub ou ouverte dans l' Azure Resource Graph Explorer.
Cette migration entraîne-t-elle un temps d’arrêt pour mon application ?
Oui, étant donné que Load Balancer Essentiel doit être supprimé avant que le nouveau Standard Load Balancer puisse être créé, il y a un temps d’arrêt pour votre application. Consultez Combien de temps dure la mise à niveau ?
Le module migrera-t-il mon adresse IP frontale vers le nouvel équilibreur de charge Standard ?
Oui, pour les équilibreurs de charge publics et internes, le module garantit que les adresses IP frontales sont conservées. Pour les IP publiques, l’IP est convertie en IP statique avant la migration. Pour les front-ends internes, le module tente de réattribuer la même adresse IP libérée quand l’équilibreur de charge de base a été supprimé. Si l’IP privée n’est pas disponible, le script échoue (consultez Que se passe-t-il si la mise à niveau échoue au milieu de la migration ?).
Combien de temps dure la mise à niveau ?
La mise à niveau prend normalement quelques minutes, le temps que le script se termine. Les facteurs suivants peuvent entraîner des temps de mise à niveau plus longs :
- Complexité de votre configuration d’équilibreur de charge
- Nombre de membres du pool principal
- Nombre d’instances de groupes de machines virtuelles identiques ou de machines virtuelles associés
- Cluster Service Fabric : les mises à niveau des clusters Service Fabric prennent environ une heure en phase de test.
Gardez le temps d’arrêt à l’esprit et planifiez le basculement si nécessaire.
Le script fait-il migrer les membres du pool principal de mon équilibreur de charge De base vers l’équilibreur de charge Standard nouvellement créé ?
Oui. Le script Azure PowerShell migre les groupes de machines virtuelles identiques et les machines virtuelles vers les nouveaux pools de back-ends Standard Load Balancer.
Quels composants de l’équilibreur de charge sont-ils migrés ?
Le script migre les éléments suivants de l’équilibreur de charge De base vers l’équilibreur de charge Standard :
Équilibreurs de charge publics et privés :
- Sondes d’intégrité :
- Toutes les sondes sont migrées vers le nouvel équilibreur de charge Standard
- Règles d’équilibrage de charge :
- Toutes les règles d’équilibrage de charge sont migrées vers le nouvel équilibreur de charge Standard
- Règles NAT de trafic entrant :
- Toutes les règles NAT créées par l’utilisateur seront migrées vers le nouvel équilibreur de charge Standard
- Pools NAT entrants :
- Par défaut, les pools NAT sont mis à niveau vers des règles NAT
- Pour migrer des pools NAT à la place, spécifiez le paramètre
-skipUpgradeNATPoolsToNATRules
lors de la mise à niveau
- Pools de back-ends :
- Tous les pools de back-ends sont migrés vers le nouvel équilibreur de charge Standard
- Toutes les interfaces réseau et configurations IP de groupe de machines virtuelles identiques et de machine virtuelle sont migrées vers le nouveau Standard Load Balancer
- Si un groupe de machines virtuelles identiques utilise une stratégie de mise à niveau progressive, le script mettra à jour la stratégie de mise à niveau du groupe de machines virtuelles identiques sur « Manuelle » pendant le processus de migration et la remettra en « Progressive » une fois la migration terminée.
- Adresses IP publiques au niveau de l’instance
- Pour les machines virtuelles et les groupes de machines virtuelles identiques, convertit les adresses IP publiques jointes de la référence SKU Basic vers la référence SKU Standard. Notez que les adresses IP publiques de l’instance de groupe identique changent pendant la mise à niveau ; les adresses IP de machine virtuelle ne le font pas.
- Étiquettes de Basic Load Balancer vers Standard Load Balancer
Équilibreur de charge public :
- Configuration IP front-end publique
- Convertit l’adresse IP publique en adresse IP statique, si dynamique
- Met à jour la référence SKU IP publique en Standard, si De base
- Mettre à niveau toutes les adresses IP publiques associées vers le nouvel équilibreur de charge Standard
- Règles de trafic sortant :
- Les équilibreurs de charge De base ne prennent pas en charge les règles de trafic sortant configurées. Le script crée une règle de trafic sortant dans l’équilibreur de charge Standard pour conserver le comportement de l’équilibreur de charge De base pour le trafic sortant. Pour plus d’informations sur les règles de trafic sortant, consultez Règles de trafic sortant.
- Groupe de sécurité réseau
- L’équilibreur de charge De base ne nécessite pas de groupe de sécurité réseau pour autoriser la connectivité sortante. Si aucun groupe de sécurité réseau n’est associé au groupe de machines virtuelles identiques, un nouveau groupe de sécurité réseau est créé pour conserver la même fonctionnalité. Ce nouveau groupe de sécurité réseau est associé aux interfaces réseau de membres du pool de back-ends du groupe de machines virtuelles identiques. Il permet les mêmes règles d’équilibrage de charge, ports et protocoles, ainsi que la préservation de la connectivité sortante.
Équilibreur de charge interne :
- Configuration IP front-end privée
Remarque
Les groupes de sécurité réseau ne sont pas configurés dans le cadre de la mise à niveau de l’équilibreur de charge interne. Pour en savoir plus sur les groupes de sécurité réseau, consultez Groupes de sécurité réseau
Comment faire pour migrer quand les membres de mon pool de back-ends appartiennent à plusieurs équilibreurs de charge ?
Dans un scénario où les membres de votre pool de back-ends sont également membres de pools de back-ends sur un autre équilibreur de charge, par exemple lorsque vous avez des équilibreurs de charge internes et externes pour la même application, les Basic Load Balancers doivent être migrés en même temps. Si vous essayez de migrer les Load Balancer un par un, vous tentez de combiner des ressources de référence SKU Essentiel et Standard, ce qui n’est pas autorisé. Le script de migration prend en charge cette opération en passant plusieurs Basic Load Balancers dans la même exécution de script à l’aide du paramètre -MultiLBConfig
.
Comment faire pour vérifier qu’une migration a réussi ?
À la fin de son exécution, le module de mise à niveau effectue les validations suivantes, comparant le Basic Load Balancer au nouveau Standard Load Balancer. Dans une migration ayant échoué, cette même opération peut être appelée à l’aide des paramètres -validateCompletedMigration
et -basicLoadBalancerStatePath
afin de déterminer l’état de configuration du Standard Load Balancer (s’il en a été créé un). Le fichier journal créé pendant la migration fournit également des détails étendus sur l’opération de migration et les erreurs éventuelles.
- Le Standard Load Balancer existe et sa référence SKU est « Standard »
- Le nombre de configurations IP front-end correspond et les adresses IP sont identiques
- Le nombre de pools de back-ends et leurs appartenances correspondent
- Le nombre de règles d’équilibrage de charge correspond
- Le nombre de sondes d’intégrité correspond
- Le nombre de règles NAT de trafic entrant correspond
- Le nombre de pools NAT entrants correspond
- Les Standard Load Balancers externes ont une règle de trafic sortant configurée
- Les membres du pool de back-ends du Standard Load Balancer externe ont des groupes de sécurité réseau associés
Comment configurer le trafic sortant pour mon équilibreur de charge ?
Les Load Balancer SKU standard n’autorisent pas l’accès sortant par défaut pour leurs membres du pool principal. L’autorisation de l’accès sortant à Internet nécessite plus d’étapes.
Pour les équilibreurs de charge externes, vous pouvez utiliser des règles de trafic sortant afin d’activer explicitement le trafic sortant pour les membres de votre pool. Si vous disposez d’un pool principal unique, nous configurons automatiquement une règle de trafic sortant pour vous pendant la migration ; si vous avez plusieurs pools principaux, vous devez créer manuellement vos règles de trafic sortant pour spécifier les allocations de ports.
Pour les Load Balancer internes, les règles de trafic sortant ne sont pas une option, car il n’existe aucune adresse IP publique à SNAT. Cela laisse quelques options à prendre en compte :
- Passerelle NAT : les passerelles NAT constituent l’approche recommandée d’Azure pour le trafic sortant dans la plupart des cas. Toutefois, les passerelles NAT nécessitent que le sous-réseau attaché n’ait aucune ressource réseau de référence SKU de base, ce qui signifie que vous devez avoir migré tous vos Load Balancer et adresses IP publiques avant de pouvoir les utiliser. Pour cette raison, nous vous recommandons d’utiliser une approche en deux étapes où vous utilisez d’abord une des approches suivantes pour la connectivité sortante, puis vous basculez vers des passerelles NAT une fois vos migrations de référence SKU de base terminées.
- Appliance virtuelle réseau: routez votre trafic via une appliance virtuelle réseau, telle qu’un pare-feu Azure, pour acheminer votre trafic vers Internet. Cette option est idéale si vous avez déjà configuré une appliance virtuelle réseau.
- Équilibreur de charge externe secondaire : en ajoutant un équilibreur de charge externe secondaire à vos ressources de back-end, vous pouvez utiliser l’équilibreur de charge externe pour le trafic sortant en configurant des règles de trafic sortant. Si ce Load Balancer externe n’a pas de règles d’équilibrage de charge, de règles NAT ou de pools NAT entrants configurés, vos ressources back-end restent isolées sur votre réseau interne pour le trafic entrant, voir configuration de Load Balancer sortant uniquement. Avec cette option, Load Balancer externe peut être configuré avant de migrer de la référence SKU Essentiel vers la référence SKU standard et migré en même temps que Load Balancer interne à l’aide de à l’aide du
-MultiLBConfig
paramètre - Adresses IP publiques : enfin, les adresses IP publiques peuvent être ajoutées directement à vos machines virtuelles ou instances de groupe de machines virtuelles identiques. Toutefois, cette option n’est pas recommandée en raison de la surface de sécurité supplémentaire et des dépenses d’ajout d’adresses IP publiques.
Que se passe-t-il si ma mise à niveau échoue en cours de migration ?
Le module est conçu pour prendre en charge les défaillances, soit en raison d’erreurs non gérées ou d’une interruption de script inattendue. La conception de l’échec est une approche avec « basculement », où au lieu d’essayer de revenir à l’équilibreur de charge De base, vous devez corriger le problème à l’origine de l’échec (en vérifiant la sortie d’erreur ou le fichier journal), et réessayer la migration en spécifiant les paramètres -FailedMigrationRetryFilePathLB <BasicLoadBalancerBackupFilePath> -FailedMigrationRetryFilePathVMSS <VMSSBackupFile>
. Pour les Load Balancer publics, car la référence SKU d’adresse IP publique est mise à jour vers standard, le déplacement de la même adresse IP vers un Load Balancer Essentiel n’est pas possible.
Regardez une vidéo du processus de récupération :
Si votre migration ayant échoué ciblait plusieurs Load Balancer en même temps, à l’aide du paramètre -MultiLBConfig
, récupérez chaque Load Balancer individuellement à l’aide du processus suivant :
- Traitez la cause de l’échec de la migration. Consultez le fichier journal
Start-AzBasicLoadBalancerUpgrade.log
pour plus de détails - Supprimez le nouvel équilibreur de charge Standard (s’il a été créé). Selon l’étape de la migration ayant échoué, vous pouvez avoir à supprimer la référence Standard Load Balancer du groupe de machines virtuelles identiques, des interfaces réseau de machines virtuelles (configurations IP) et/ou des sondes d’intégrité pour supprimer Standard Load Balancer.
- Recherchez le fichier de sauvegarde de l’état de l’équilibreur de charge De base. Ce fichier se trouve dans le répertoire où le script a été exécuté ou au chemin spécifié avec le paramètre
-RecoveryBackupPath
pendant l’exécution ayant échoué. Le fichier est nommé :State_<basicLBName>_<basicLBRGName>_<timestamp>.json
- Réexécutez le script de migration, en spécifiant les paramètres
-FailedMigrationRetryFilePathLB <BasicLoadBalancerbackupFilePath>
et-FailedMigrationRetryFilePathVMSS <VMSSBackupFile>
(pour les back-ends du groupe de machines virtuelles identiques) au lieu de -BasicLoadBalancerName ou en passant l’équilibreur de charge de base sur le pipeline