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 :

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 à la machine virtuelle ou au groupe de machines virtuelles identiques afin de garantir que le trafic à charge équilibrée atteint les membres du pool de back-ends, suivant le déplacement du Standard Load Balancer vers une stratégie de 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 pools NAT entrants vers des règles NAT de trafic entrant pour les back-ends du groupe de machines virtuelles identiques. Spécifiez -skipUpgradeNATPoolsToNATRules d’ignorer cette mise à niveau.
  • 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.
  • Module Az PowerShell : déterminez si le module Az PowerShell le plus récent est installé.
  • Module Az.ResourceGraph PowerShell : le module Az.ResourceGraph PowerShell est utilisé pour interroger la configuration des ressources pendant la mise à niveau ; il s’agit d’une installation distincte du module Az PowerShell. Il est automatiquement ajouté si vous installez le module AzureBasicLoadBalancerUpgrade avec la commande Install-Module .

Installation des modules

Installer le module à partir de PowerShell Gallery

PS C:\> Install-Module -Name AzureBasicLoadBalancerUpgrade -Scope CurrentUser -Repository PSGallery -Force

Étapes avant et après la migration

Étapes de prémigration

  • Vérifiez que votre scénario est pris en charge
  • 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 avec l’équilibreur de charge et tout autre trafic devant être explicitement autorisé sur les ressources publiques de référence SKU standard
  • [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

  1. Utilisez Connect-AzAccount pour vous connecter à Azure, en spécifiant l’ID d’abonnement de Load Balancer Essentiel si vous avez plusieurs abonnements.

    PS C:\> Connect-AzAccount -Subscription <SubscriptionId>
    
  2. Recherchez l’équilibreur de charge que vous souhaitez mettre à niveau. Enregistrez son nom et son nom de groupe de ressources.

  3. 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.

  4. Exécutez la commande Mettre à niveau.

Exemple : valider un scénario

Vérifier qu'Azure Load Balancer De base est pris en charge pour la mise à niveau

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

PS C:\> Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName>

Exemple : mettre à niveau, modifier le nom et afficher les journaux

Mettez à niveau un Azure Load Balancer De base vers un Standard Load Balancer portant le nom spécifié, affichant la sortie enregistrée à l'écran

PS C:\> 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é

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

PS C:\> Start-AzBasicLoadBalancerUpgrade -validateCompletedMigration -basicLoadBalancerStatePath C:\RecoveryBackups\State_mybasiclb_rg-basiclbrg_20220912T1740032148.json

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
PS C:\> $multiLBConfig = @(
    @{
        'standardLoadBalancerName' = 'myStandardInternalLB01' # specifying the standard load balancer name is optional
        'basicLoadBalancer' = (Get-AzLoadBalancer -ResourceGroupName myRG -Name myBasicInternalLB01)
    },
        @{
        'standardLoadBalancerName' = 'myStandardExternalLB02'
        'basicLoadBalancer' = (Get-AzLoadBalancer -ResourceGroupName myRG -Name myBasicExternalLB02)
    }
)
# pass the array of load balancer configurations to the -MultiLBConfig parameter
PS C:\> Start-AzBasicLoadBalancerUpgrade -MultiLBConfig $multiLBConfig

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

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

PS C:\> 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. Une requête simple comme celle-ci répertorie tous les équilibreurs de charge de base que vous avez accès à voir.

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

« Nous avons également écrit une requête plus 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, dans la mesure où le Load Balancer de base doit être supprimé pour que le nouveau Standard Load Balancer soit créé, votre application va connaître un temps d’arrêt. 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 IP publiques de l’instance de groupe identique changent pendant la mise à niveau, contrairement aux IP de machine virtuelle.
  • É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 autorise les mêmes ports et les mêmes protocoles d’équilibrage de charge, et préserve 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. Toute tentative de migration des équilibreurs de charge un à la fois provoquerait une tentative de combinaison de ressources de référence SKU Basic 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 équilibreurs de charge de référence SKU standard n’autorisent pas l’accès sortant par défaut pour les membres de leur pool de back-ends. 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 avez un seul pool de back-ends, nous configurons automatiquement une règle de trafic sortant pour vous pendant la migration. Si vous avez plusieurs pools de back-ends, vous devez créer manuellement vos règles de trafic sortant pour spécifier les allocations de ports.

Pour les équilibreurs de charge internes, les règles de trafic sortant ne sont pas une option, car il n’y a pas d’adresse IP publique sur 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 équilibreurs de charge 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 avec une appliance virtuelle réseau, comme un Pare-feu Azure, qui route ensuite 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 cet équilibreur de charge externe n’a pas de règles d’équilibrage de charge, de règles NAT ou de pools NAT entrants configurés, vos ressources de back-end restent isolées sur votre réseau interne pour le trafic entrant. Consultez la configuration de l’équilibreur de charge sortant uniquement. Avec cette option, l’équilibreur de charge externe peut être configuré avant de migrer de la référence SKU de base vers la référence SKU standard, et être migré en même temps que l’équilibreur de charge interne avec le paramètre -MultiLBConfig
  • 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 d’exposition de sécurité et des dépenses supplémentaires liées à l’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 équilibreurs de charge publics, étant donné que la référence SKU d’adresse IP publique a été mise à jour vers Standard, le déplacement de la même adresse IP vers un équilibreur de charge De base n’est pas possible.

Regardez une vidéo du processus de récupération :

Si la migration ayant échoué ciblait plusieurs équilibreurs de charge en même temps, à l’aide du paramètre -MultiLBConfig, récupérez chaque équilibreur de charge individuellement en appliquant le processus ci-dessous.

La procédure de récupération d’échec de base est la suivante :

  1. Traitez la cause de l’échec de la migration. Consultez le fichier journal Start-AzBasicLoadBalancerUpgrade.log pour plus de détails
  2. Supprimez le nouvel équilibreur de charge Standard (s’il a été créé). En fonction de la phase de migration ayant échoué, vous devrez peut-être supprimer la référence du Standard Load Balancer des interfaces réseau de la machine virtuelle ou du groupe de machines virtuelles identiques (configurations IP) et des sondes d’intégrité afin de supprimer le Standard Load Balancer.
  3. Recherchez le fichier de sauvegarde de l’état de l’équilibreur de charge De base. Ce fichier sera soit dans le répertoire où le script a été exécuté, soit au chemin spécifié avec le paramètre -RecoveryBackupPath lors de l’échec de l’exécution. Le fichier est nommé : State_<basicLBName>_<basicLBRGName>_<timestamp>.json
  4. 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

Étapes suivantes