Ce guide fournit des instructions pour faire passer un équilibreur de charge réseau passthrough externe existant d'un backend de pool cible vers un service de backend régional.
Le transfert vers un service de backend régional vous permet d'exploiter des fonctionnalités telles que les vérifications d'état non héritées (pour TCP, SSL, HTTP, HTTPS et HTTP/2), les groupes d'instances gérés, ledrainage de connexion et la stratégie de basculement.
Pour obtenir des instructions détaillées sur cette tâche directement dans la console Google Cloud, cliquez sur Visite guidée :
Ce guide vous accompagne tout au long de la transition de l'exemple suivant d'équilibreur de charge réseau passthrough externe basé sur un pool cible pour utiliser à la place un service de backend régional.
Le déploiement résultant de l'équilibreur de charge réseau passthrough externe basé sur un service de backend ressemble à ceci.
Cet exemple suppose que vous disposez d'un équilibreur de charge réseau passthrough externe traditionnel basé sur un pool cible avec deux instances dans la zone us-central-1a
et deux instances dans la zone us-central-1c
.
Voici les grandes étapes à suivre pour effectuer une telle transition:
Regroupez vos instances de pool cible dans des groupes d'instances.
Les services de backend ne fonctionnent qu'avec des groupes d'instances gérés ou non gérés. Bien qu'il n'existe aucune limite au nombre d'instances pouvant être placées dans un même pool cible, les groupes d'instances ont une taille maximale. Si votre pool cible dépasse ce nombre maximal d'instances, vous devez répartir ses backends entre plusieurs groupes d'instances.
Si votre déploiement existant inclut un pool cible de sauvegarde, créez un groupe d'instances distinct pour ces instances. Ce groupe d'instances est configuré en tant que groupe de basculement.
Créez un service de backend régional.
Si votre déploiement inclut un pool cible de sauvegarde, vous devez spécifier un taux de basculement lors de la création du service de backend. Il doit correspondre au taux de basculement précédemment configuré pour le déploiement du pool cible.
Ajoutez des groupes d'instances (créés précédemment) au service de backend.
Si votre déploiement inclut un pool cible de sauvegarde, marquez le groupe d'instances de basculement correspondant avec l'option
--failover
lors de son ajout au service de backend.Configurez une règle de transfert pointant vers le nouveau service de backend.
Vous avez le choix entre les options suivantes :
Mettre à jour la règle de transfert existante pour qu'elle pointe vers le service de backend (recommandé).
Créez une règle de transfert pointant vers le service de backend. Vous devez donc créer une adresse IP pour l'interface de l'équilibreur de charge. Modifiez ensuite vos paramètres DNS pour passer en toute fluidité de l'adresse IP de l'ancien équilibreur de charge basé sur le pool cible à la nouvelle adresse IP.
Avant de commencer
Installez Google Cloud CLI. Pour une présentation complète de l'outil, consultez le guide de l'outil gcloud. Vous trouverez des commandes associées à l'équilibrage de charge dans la section dédiée au groupe de commandes gcloud compute
.
Si vous n'avez pas encore utilisé Google Cloud CLI, exécutez d'abord gcloud init
pour vous authentifier.
Dans ce guide, nous partons du principe que vous maîtrisez bash.
Identifier les backends et la règle de transfert à migrer
Pour répertorier tous les pools cibles, exécutez la commande suivante dans Cloud Shell :
gcloud compute target-pools list
Notez le nom du pool cible à partir duquel effectuer la migration. Cette adresse sera désignée plus loin par le nom TARGET_POOL_NAME.
Pour répertorier toutes les instances de VM dans le pool cible TARGET_POOL_NAME, exécutez la commande dans Cloud Shell :
gcloud compute target-pools describe TARGET_POOL_NAME \ --region=us-central1
Notez les noms des instances de VM. Ces noms seront désignés plus loin par BACKEND_INSTANCE1, BACKEND_INSTANCE2, BACKEND_INSTANCE3 et BACKEND_INSTANCE4.
Pour répertorier les règles de transfert dans l'équilibreur de charge réseau passthrough externe, exécutez la commande dans Cloud Shell :
gcloud compute forwarding-rules list --filter="target: ( TARGET_POOL_NAME )"
Notez le nom de la règle de transfert. Ce nom sera désigné plus loin par FORWARDING_RULE.
Créer les groupes d'instances zonaux non gérés
Créez un groupe d'instances non géré zonal pour chacune des zones dans lesquelles vous disposez de backends. Selon votre configuration, vous pouvez répartir vos instances sur autant de groupes que nécessaire. Dans notre exemple, nous n'utilisons que deux groupes d'instances, un pour chaque zone, et toutes les VM de backend sont placées dans une zone donnée du groupe d'instances associé.
Pour cet exemple, nous créons deux groupes d'instances : l'un dans la zone uc-central1-a
et l'autre dans la zone us-central1-c
.
Configurer les groupes d'instances
Console
- Dans la console Google Cloud, accédez à la page Groupes d'instances.
- Cliquez sur Créer un groupe d'instances.
- Dans le volet de gauche, sélectionnez Nouveau groupe d'instances non géré.
- Dans le champ Nom, saisissez
ig-us-1
. - Pour Région, sélectionnez
us-central1
. - Pour Zone, sélectionnez
us-central1-a
. - Sélectionnez le réseau et le sous-réseau en fonction de l'emplacement de vos instances. Dans cet exemple, les instances du pool cible existant se trouvent dans le réseau et le sous-réseau
default
. - Pour ajouter des instances au groupe d'instances, sélectionnez les deux instances BACKEND_INSTANCE1 et BACKEND_INSTANCE2 dans la section Instances de VM.
- Cliquez sur Créer.
Répétez ces étapes pour créer un deuxième groupe d'instances avec les spécifications suivantes :
- Nom :
ig-us-2
- Région :
us-central1
- Zone :
us-central1-c
Ajoutez les deux instances BACKEND_INSTANCE3 et BACKEND_INSTANCE4 de la zone
us-central1-c
à ce groupe d'instances.- Nom :
Si le déploiement d'équilibreur de charge existant dispose également d'un pool cible de sauvegarde, répétez ces étapes pour créer un groupe d'instances de basculement distinct pour ces instances.
gcloud
Créez un groupe d'instances non géré dans la zone
us-central1-a
à l'aide de la commandegcloud compute instance-groups unmanaged create
.gcloud compute instance-groups unmanaged create ig-us-1 \ --zone us-central1-a
Créez un deuxième groupe d'instances non géré dans la zone
us-central1-c
.gcloud compute instance-groups unmanaged create ig-us-2 \ --zone us-central1-c
Ajoutez des instances au groupe d'instances
ig-us-1
.gcloud compute instance-groups unmanaged add-instances ig-us-1 \ --instances BACKEND_INSTANCE_1,BACKEND_INSTANCE_2 \ --zone us-central1-a
Ajoutez des instances au groupe d'instances
ig-us-2
.gcloud compute instance-groups unmanaged add-instances ig-us-2 \ --instances BACKEND_INSTANCE_3,BACKEND_INSTANCE_4 \ --zone us-central1-c
Si le déploiement d'équilibreur de charge existant dispose également d'un pool cible de sauvegarde, répétez ces étapes pour créer un groupe d'instances de basculement distinct pour ces instances.
Créer une vérification d'état
Créez une vérification d'état pour déterminer l'état des instances de vos groupes d'instances. Une ancienne vérification d'état HTTP est probablement associée à votre équilibreur de charge réseau passthrough externe basé sur un pool cible.
Vous pouvez créer une vérification d'état correspondant au protocole du trafic que l'équilibreur de charge va distribuer. Les équilibreurs de charge réseau passthrough externes basés sur un service de backend peuvent utiliser les vérifications d'état TCP, SSL, HTTP(S) et HTTP/2.
Console
- Dans Google Cloud Console, accédez à la page Vérifications d'état.
- Cliquez sur Créer une vérification d'état.
- Dans le champ Nom, saisissez
network-lb-health-check
. - Définissez le champ d'application sur Régional.
- Pour Région, sélectionnez
us-central1
. - Pour Protocole, sélectionnez HTTP.
- Dans la section Port, saisissez
80
. - Cliquez sur Créer.
gcloud
Pour cet exemple, nous créons une vérification d'état HTTP non-héritée à utiliser avec le service de backend.
gcloud compute health-checks create http network-lb-health-check \ --region us-central1 \ --port 80
Configurer le service de backend
Utilisez l'une des sections suivantes pour créer le service de backend. Si votre équilibreur de charge réseau passthrough externe existant dispose d'un pool cible de sauvegarde, vous devez configurer un taux de basculement lors de la création du service de backend.
Vous devez également désigner le groupe d'instances de basculement avec l'option --failover
lors de l'ajout de backends au service de backend.
Déploiements sans pool cible de sauvegarde
gcloud
Créez un service de backend régional dans la région
us-central1
.gcloud compute backend-services create network-lb-backend-service \ --region us-central1 \ --health-checks network-lb-health-check \ --health-checks-region us-central1 \ --protocol TCP
Ajoutez les deux groupes d'instances (
ig-us-1
etig-us-2
) en tant que backends au service de backend.gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-1 \ --instance-group-zone us-central1-a \ --region us-central1
gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-2 \ --instance-group-zone us-central1-c \ --region us-central1
Déploiements avec un pool cible de sauvegarde
gcloud
Créez un service de backend régional dans la région
us-central1
. Configurez le taux de basculement du service de backend afin qu'il corresponde au taux de basculement précédemment configuré pour le pool cible.gcloud compute backend-services create network-lb-backend-service \ --region us-central1 \ --health-check network-lb-health-check \ --failover-ratio 0.5
Ajoutez les deux groupes d'instances (
ig-us-1
etig-us-2
) en tant que backends au service de backend.gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-1 \ --instance-group-zone us-central1-a \ --region us-central1
gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-2 \ --instance-group-zone us-central1-c \ --region us-central1
Si vous avez créé un groupe d'instances de basculement, ajoutez-le au service de backend. Marquez ce backend avec l'option
--failover
lorsque vous l'ajoutez au service de backend.gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group FAILOVER_INSTANCE_GROUP \ --instance-group-zone ZONE \ --region us-central1 \ --failover
Configurer la règle de transfert
Vous disposez de deux options pour configurer la règle de transfert de façon à diriger le trafic vers le nouveau service de backend. Vous pouvez mettre à jour la règle de transfert existante ou créer une règle de transfert avec une nouvelle adresse IP.
Mettre à jour la règle de transfert existante (recommandé)
Utilisez l'option set-target
pour mettre à jour la règle de transfert existante afin qu'elle pointe vers le nouveau service de backend.
gcloud compute forwarding-rules set-target FORWARDING_RULE \ --backend-service network-lb-backend-service \ --region us-central1
Remplacez FORWARDING_RULE
par le nom de la règle de transfert existante.
Créer une règle de transfert
Si vous ne souhaitez pas mettre à jour la règle de transfert existante, vous pouvez créer une règle de transfert avec une nouvelle adresse IP. Étant donné qu'une adresse IP donnée ne peut être associée qu'à une seule règle de transfert à la fois, vous devez modifier manuellement votre paramètre DNS pour transférer le trafic entrant de l'ancienne adresse IP vers la nouvelle.
Utilisez la commande suivante pour créer une règle de transfert avec une nouvelle adresse IP. Vous pouvez utiliser l'indicateur --address
si vous souhaitez spécifier une adresse IP déjà réservée dans la région us-central1
.
gcloud compute forwarding-rules create network-lb-forwarding-rule \ --load-balancing-scheme external \ --region us-central1 \ --ports 80 \ --backend-service network-lb-backend-service
Tester l'équilibreur de charge
Testez l'équilibreur de charge pour vérifier que la règle de transfert dirige le trafic entrant comme prévu.
Rechercher l'adresse IP externe de l'équilibreur de charge
gcloud
Saisissez la commande suivante pour afficher l'adresse IP externe de la règle de transfert network-lb-forwarding-rule
utilisée par l'équilibreur de charge.
gcloud compute forwarding-rules describe network-lb-forwarding-rule --region us-central1
Utiliser la commande nc
pour accéder à l'adresse IP externe
Dans cet exemple, nous avons utilisé la méthode de hachage par défaut pour l'affinité de session. Par conséquent, les requêtes de la commande nc
sont distribuées de manière aléatoire sur les VM de backend en fonction du port source attribué par votre système d'exploitation.
Pour tester la connectivité, commencez par installer Netcat sous Linux en exécutant la commande suivante :
$ sudo apt install netcat
Répétez la commande suivante plusieurs fois jusqu'à ce que toutes les VM de backend répondent :
$ nc IP_ADDRESS 80
Supprimer les ressources associées à l'ancien équilibreur de charge
Après avoir vérifié que le nouvel équilibreur de charge réseau passthrough externe fonctionne comme prévu, vous pouvez supprimer les anciennes ressources de pool cible.
- Dans la console Google Cloud, accédez à la page Équilibrage de charge.
- Sélectionnez l'ancien équilibreur de charge associé au pool cible, puis cliquez sur Supprimer.
- Sélectionnez les vérifications d'état que vous avez créées, puis cliquez sur Supprimer l'équilibreur de charge et les ressources sélectionnées.
Étapes suivantes
- Pour en savoir plus sur le fonctionnement des équilibreurs de charge réseau passthrough externes avec les services de backend, consultez la page Présentation de l'équilibreur de charge réseau passthrough basé sur un service de backend.
- Pour configurer un équilibreur de charge réseau passthrough externe avec un service de backend, consultez la page Configurer un équilibreur de charge réseau passthrough externe avec un service de backend.
- Pour configurer un équilibreur de charge réseau passthrough externe avec un pool cible, consultez la page Configurer un équilibreur de charge réseau passthrough externe avec un pool cible.