Configurer le basculement pour les équilibreurs de charge réseau passthrough externes

Ce guide s'appuie sur un exemple pour vous apprendre à configurer le basculement pour un équilibreur de charge réseau passthrough externe avec un service de backend. Avant de suivre ce guide, familiarisez-vous avec les points suivants :

Permissions

Pour suivre ce guide, vous devez créer des instances et modifier un réseau dans un projet. Vous devez être propriétaire ou éditeur du projet, ou disposer de tous les rôles IAM Compute Engine suivants :

Tâche Rôle requis
Créer des composants pour l'équilibreur de charge Administrateur réseau
Ajouter et supprimer des règles de pare-feu Administrateur de sécurité
Créer des instances Administrateur d'instances Compute

Pour en savoir plus, consultez les guides suivants :

Préparation

Ce guide vous explique comment configurer et tester un équilibreur de charge réseau passthrough externe qui utilise le basculement. La procédure décrite dans cette section explique comment configurer les éléments suivants :

  1. Des VM de backend :
    • Un backend principal dans un groupe d'instances non géré dans la zone us-west1-a
    • Un backend de basculement dans un groupe d'instances non géré dans la zone us-west1-c
  2. Des règles de pare-feu autorisant les connexions entrantes aux VM de backend
  3. Une VM cliente pour tester les connexions et observer le comportement du basculement
  4. Les composants de l'équilibreur de charge réseau passthrough externe sont les suivants :
    • Vérification d'état du service de backend
    • Un service de backend dans la région us-west1 pour gérer la distribution des connexions entre les VM de backend
    • Une règle de transfert et adresse IP pour l'interface de l'équilibreur de charge

L'architecture de cet exemple se présente comme suit :

Basculement avec un équilibreur de charge réseau passthrough externe.
Basculement avec un équilibreur de charge réseau passthrough externe (cliquez pour agrandir).

Créer des VM de backend et des groupes d'instances

À cette étape, vous allez créer les VM de backend et les groupes d'instances non gérés :

  • Le groupe d'instances ig-a dans us-west1-a est un backend principal avec deux VM :
    • vm-a1
    • vm-a2
  • Le groupe d'instances ig-c dans us-west1-c est un backend de basculement avec deux VM :
    • vm-c1
    • vm-c2

Le backend principal et le backend de basculement sont placés dans des zones distinctes pour plus de clarté et pour gérer le basculement si une zone tombe panne.

Les VM principales et les VM de secours sont configurées pour exécuter un serveur Web Apache sur le port TCP 80. Par défaut, Apache est configuré pour se lier à n’importe quelle adresse IP. Les équilibreurs de charge réseau distribuent des paquets en conservant l'adresse IP de destination.

Vérifiez que le logiciel serveur exécuté sur les VM principales et les VM de secours écoute sur l'adresse IP de la règle de transfert de l'équilibreur de charge. L'adresse IP de destination d'un paquet distribué à une VM de backend par un équilibreur de charge réseau passthrough externe est l'adresse IP de la règle de transfert.

Pour plus de simplicité, toutes les VM principales et les VM de secours exécutent Debian GNU/Linux 9.

Console

Créer des VM de backend

  1. Dans Google Cloud Console, accédez à la page Instances de VM. Accéder à la page "Instances de VM"
  2. Répétez les étapes ci-dessous pour créer quatre VM, en utilisant les combinaisons de noms et de zones suivantes :
    • Nom : vm-a1, zone : us-west1-a
    • Nom : vm-a2, zone : us-west1-a
    • Nom : vm-c1, zone : us-west1-c
    • Nom : vm-c2, zone : us-west1-c
  3. Cliquez sur Créer une instance.
  4. Définissez le Nom comme indiqué à l'étape 2.
  5. Dans le champ Région, choisissez us-west1, puis sélectionnez une zone comme indiqué à l'étape 2.
  6. Dans la section Disque de démarrage, assurez-vous que l'image sélectionnée est Debian GNU/Linux 10 (buster). Si nécessaire, cliquez sur Sélectionner pour modifier l'image.
  7. Cliquez sur Options avancées.
  8. Cliquez sur Mise en réseau et configurez le champ suivant :
    1. Pour Tags réseau, saisissez network-lb.
  9. Cliquez sur Gestion. Saisissez le script suivant dans le champ Script de démarrage. Le contenu du script est identique pour les quatre VM :

    #! /bin/bash
    apt-get update
    apt-get install apache2 -y
    a2ensite default-ssl
    a2enmod ssl
    vm_hostname="$(curl -H "Metadata-Flavor:Google" \
    http://metadata.google.internal/computeMetadata/v1/instance/name)"
    echo "Page served from: $vm_hostname" | \
    tee /var/www/html/index.html
    systemctl restart apache2
    
  10. Cliquez sur Create (Créer).

Créer des groupes d'instances

  1. Dans la console Google Cloud, accédez à la page Groupes d'instances.

    Accéder à la page "Groupes d'instances"

  2. Répétez les étapes ci-dessous pour créer deux groupes d'instances non gérés, comportant chacun deux VM, à l'aide des combinaisons suivantes :

    • Groupe d'instances : ig-a, zone : us-west1-a, VM : vm-a1 et vm-a2
    • Groupe d'instances : ig-c, zone : us-west1-c, VM : vm-c1 et vm-c2
  3. Cliquez sur Créer un groupe d'instances.

  4. Cliquez sur Nouveau groupe d'instances non géré.

  5. Définissez le Nom comme indiqué à l'étape 2.

  6. Dans la section Emplacement, sélectionnez us-west1 pour la région, puis choisissez une zone comme indiqué à l'étape 2.

  7. Pour Réseau, saisissez la valeur suivante : default.

  8. Dans la section Instances de VM, ajoutez les VM comme indiqué à l'étape 2.

  9. Cliquez sur Create (Créer).

gcloud

  1. Créez quatre VM en exécutant la commande suivante quatre fois, en utilisant ces quatre combinaisons pour VM-NAME et ZONE. Le contenu du script est identique pour les quatre VM.

    • VM-NAME : vm-a1 et ZONE : us-west1-a
    • VM-NAME : vm-a2 et ZONE : us-west1-a
    • VM-NAME : vm-c1 et ZONE : us-west1-c
    • VM-NAME : vm-c2 et ZONE : us-west1-c
    gcloud compute instances create VM-NAME \
        --zone=ZONE \
        --image-family=debian-10 \
        --image-project=debian-cloud \
        --tags=network-lb \
        --metadata=startup-script='#! /bin/bash
          apt-get update
          apt-get install apache2 -y
          a2ensite default-ssl
          a2enmod ssl
          vm_hostname="$(curl -H "Metadata-Flavor:Google" \
          http://metadata.google.internal/computeMetadata/v1/instance/name)"
          echo "Page served from: $vm_hostname" | \
          tee /var/www/html/index.html
          systemctl restart apache2'
    
  2. Créez les deux groupes d'instances non gérés dans chaque zone :

    gcloud compute instance-groups unmanaged create ig-a \
        --zone us-west1-a
    gcloud compute instance-groups unmanaged create ig-c \
        --zone us-west1-c
    
  3. Ajoutez les VM aux groupes d'instances appropriés :

    gcloud compute instance-groups unmanaged add-instances ig-a \
        --zone us-west1-a \
        --instances vm-a1,vm-a2
    gcloud compute instance-groups unmanaged add-instances ig-c \
        --zone us-west1-c \
        --instances vm-c1,vm-c2
    

Configurer les règles de pare-feu

Créez une règle de pare-feu permettant au trafic externe d'atteindre les instances backend.

Console

  1. Dans la console Google Cloud, accédez à la page Règles d'administration.

    Accéder à la page "Stratégies de pare-feu"

  2. Cliquez sur Créer une règle de pare-feu pour créer la règle autorisant le trafic provenant de n'importe quelle source. Utilisez les valeurs suivantes :

    1. Nom : allow-network-lb.
    2. Réseau :default
    3. Priorité : 1000
    4. Sens du trafic : entrée
    5. Action en cas de correspondance : autoriser
    6. Cibles : tags cibles spécifiés
    7. Tags cibles : network-lb
    8. Filtre source : Plages IPv4
    9. Plages IPv4 sources : 0.0.0.0/0, qui autorise le trafic provenant de n'importe quelle source. Cela permet à la fois au trafic externe et aux test de vérification d'état d'atteindre les instances backend.
    10. Protocoles et ports : sélectionnez Protocoles et ports spécifiés. Cochez la case tcp et saisissez comme port 80.
  3. Cliquez sur Créer.

  4. Cliquez à nouveau sur Créer une règle de pare-feu pour créer la règle autorisant les connexions SSH entrantes aux instances. Utilisez les valeurs suivantes :

    1. Nom : allow-ssh
    2. Réseau : default
    3. Priorité : 1000
    4. Sens du trafic : entrée
    5. Action en cas de correspondance : autoriser
    6. Cibles : tags cibles spécifiés
    7. Tags cibles : network-lb
    8. Filtre source : Plages IPv4
    9. Plages IPv4 sources : 0.0.0.0/0
    10. Protocoles et ports : sélectionnez Protocoles et ports spécifiés. Cochez la case tcp et saisissez comme port 22.
  5. Cliquez sur Créer.

gcloud

gcloud compute firewall-rules create allow-network-lb \
    --target-tags network-lb \
    --allow tcp:80
gcloud compute firewall-rules create allow-ssh \
    --target-tags network-lb \
    --allow tcp:22

Configurer les composants de l'équilibreur de charge

Ces étapes configurent les composants directs de l'équilibreur de charge réseau passthrough externe suivants:

  • Vérification de l'état : cet exemple utilise la vérification d'état HTTP qui recherche simplement une réponse HTTP 200 (OK).

  • Service de backend : étant donné que l'exemple transmet le trafic HTTP via l'équilibreur de charge, la configuration spécifie TCP, et non UDP. Pour illustrer le basculement, ce service de backend a un taux de basculement de 0.75.

  • Règle de transfert : cet exemple crée une seule règle de transfert.

Console

Démarrer la configuration

  1. Dans Google Cloud Console, accédez à la page Équilibrage de charge.

    Accéder à la page "Équilibrage de charge"

  2. Cliquez sur Créer un équilibreur de charge.
  3. Sous Type d'équilibreur de charge, sélectionnez Équilibreur de charge réseau (TCP/UDP/SSL), puis cliquez sur Suivant.
  4. Pour Proxy ou passthrough, sélectionnez Équilibreur de charge passthrough, puis cliquez sur Suivant.
  5. Pour Public ou interne, sélectionnez Public (externe), puis cliquez sur Suivant.
  6. Cliquez sur Configurer.

Configuration du backend

  1. Sur la page Créer un équilibreur de charge réseau passthrough externe, saisissez un Nom de tcp-network-lb pour le nouvel équilibreur de charge.
  2. Cliquez sur Configuration du backend. Le nom que vous avez saisi précédemment pour l'équilibreur de charge s'affiche, mais il est impossible de le modifier.
  3. Cliquez sur Configuration du backend et apportez les modifications suivantes :
    1. Pour la région, sélectionnez us-west1.
    2. Sous Backends, sélectionnez ig-a dans le menu déroulant Groupe d'instances. Cliquez sur OK.
    3. Cliquez sur Ajouter un backend et répétez cette étape pour ajouter ig-c. Cochez la case Utiliser ce groupe d'instances comme groupe de basculement pour la sauvegarde.
    4. Sous Vérification d'état, sélectionnez Créer une autre vérification d'état ou Créer une autre vérification d'état, saisissez les informations suivantes :
      • Nom : hc-http-80
      • Protocole : TCP
      • Port : 80
    5. Cliquez sur Enregistrer et continuer.
    6. Cliquez sur Configurations avancées.
    7. Pour Taux de basculement, saisissez 0.75.
    8. Vérifiez qu'une coche bleue apparaît à côté de Configuration du backend avant de continuer.

Configuration du frontend

  1. Cliquez sur Frontend configuration (Configuration du frontend).
  2. Saisissez le nom network-lb-forwarding-rule.
  3. Sous Adresse IP, cliquez sur le menu déroulant et sélectionnez Créer une adresse IP.
    1. Sur l'écran Réserver une nouvelle adresse IP statique, saisissez network-lb-ip dans le champ Nom.
    2. Cliquez sur Réserver.
  4. Sélectionnez Unique et saisissez 80 pour le numéro de port.
  5. Cliquez sur le bouton OK.

    Si un cercle bleu avec une coche s'affiche à gauche de Configuration du frontend, cela indique que la configuration a réussi.

Vérifier la configuration

  1. Cliquez sur le bouton Vérification et finalisation pour vérifier tous les paramètres de configuration définis pour l'équilibreur de charge.
  2. Si les paramètres sont corrects, cliquez sur Créer. La création de l'équilibreur de charge prend quelques minutes.

    Sur l'écran Équilibrage de charge, sous la colonne Backend qui concerne votre nouvel équilibreur de charge, vous devriez voir une coche verte indiquant que ce dernier est sain.

gcloud

  1. Créez une adresse IP externe statique pour votre équilibreur de charge.

    gcloud compute addresses create network-lb-ip \
        --region us-west1
    
  2. Créez une vérification d'état HTTP pour tester la connectivité TCP aux VM sur le port 80.

    gcloud compute health-checks create http hc-http-80 \
        --region us-west1 \
        --port 80
    
  3. Créez le service de backend pour le trafic HTTP :

    gcloud compute backend-services create network-lb-backend-service \
        --protocol tcp \
        --region us-west1 \
        --health-checks hc-http-80 \
        --health-checks-region us-west1 \
        --failover-ratio 0.75
    
  4. Ajoutez le backend principal au service de backend :

    gcloud compute backend-services add-backend network-lb-backend-service \
        --region us-west1 \
        --instance-group ig-a \
        --instance-group-zone us-west1-a
    
  5. Ajoutez le backend de basculement au service de backend :

    gcloud compute backend-services add-backend network-lb-backend-service \
        --region us-west1 \
        --instance-group ig-c \
        --instance-group-zone us-west1-c \
        --failover
    
  6. Créez une règle de transfert pour le service de backend. Utilisez l'adresse IP réservée à l'étape 1 comme adresse IP externe statique de l'équilibreur de charge.

    gcloud compute forwarding-rules create network-lb-forwarding-rule \
        --region us-west1 \
        --load-balancing-scheme external \
        --address network-lb-ip\
        --ports 80 \
        --backend-service network-lb-backend-service
    

Tests

Ces tests vous montrent comment valider la configuration de votre équilibreur de charge et en savoir plus sur son comportement attendu.

Envoyer du trafic vers l'équilibreur de charge

Cette procédure envoie le trafic externe à l'équilibreur de charge. Cette procédure permet de réaliser les autres tests.

  1. Connectez-vous à l'instance de VM cliente.

    gcloud compute forwarding-rules describe network-lb-forwarding-rule \
        --region us-west1
    
  2. Envoyez une requête Web à l'équilibreur de charge à l'aide de curl pour contacter son adresse IP.

    curl http://IP_ADDRESS
    
  3. Notez le texte renvoyé par la commande curl. Le nom de la VM de backend qui génère la réponse est affiché dans ce texte, par exemple : Page served from: vm-a1.

Test de l'état initial

Une fois que vous avez configuré l'exemple d'équilibreur de charge, les quatre VM de backend doivent être opérationnelles :

  • Les deux VM principales, vm-a1 et vm-a2
  • Les deux VM de secours, vm-c1 et vm-c2

Suivez la procédure de test pour envoyer du trafic vers l'équilibreur de charge. Répétez la deuxième étape plusieurs fois. Le comportement attendu est que le trafic soit desservi par les deux VM principales, vm-a1 et vm-a2, car elles sont toutes deux opérationnelles. Vous devriez voir chaque VM principale fournir une réponse environ la moitié du temps, car aucune affinité de session n'a été configurée pour cet équilibreur de charge.

Test du basculement

Ce test simule l'échec de vm-a1 afin que vous puissiez observer le comportement de basculement.

  1. Connectez-vous à la VM vm-a1.

    gcloud compute ssh vm-a1 --zone us-west1-a
    
  2. Arrêtez le serveur Web Apache. Au bout de dix secondes, Google Cloud considère cette VM comme étant non opérationnelle. (La vérification d'état hc-http-80 que vous avez créée dans la configuration utilise l'intervalle entre deux tests par défaut de cinq secondes et le seuil non opérationnel de deux vérifications consécutives en échec.)

    sudo apachectl stop
    
  3. Suivez la procédure de test pour envoyer du trafic vers l'équilibreur de charge. Répétez la deuxième étape plusieurs fois. Le comportement attendu est que le trafic soit à présent desservi par les deux VM de secours, vm-c1 et vm-c2. Étant donné qu'une seule VM principale, vm-a2, est opérationnelle, le ratio entre les VM principales opérationnelles et le total des VM principales est de 0.5. Ce nombre est inférieur au seuil de basculement défini sur 0.75. Google Cloud a donc reconfiguré le pool actif de l'équilibreur de charge pour utiliser les VM de secours. Vous devriez voir chaque VM de secours fournir une réponse environ la moitié du temps tant qu'aucune affinité de session n'a été configurée pour cet équilibreur de charge.

Test de la restauration

Ce test simule la restauration en redémarrant le serveur Apache sur vm-a1.

  1. Connectez-vous à la VM vm-a1.

    gcloud compute ssh vm-a1 --zone us-west1-a
    
  2. Démarrez le serveur Web Apache et attendez 10 secondes.

    sudo apachectl start
    
  3. Suivez la procédure de test client. Répétez la deuxième étape plusieurs fois. Le comportement attendu est que le trafic soit desservi par les deux VM principales, vm-a1 et vm-a2. Les VM principales étant opérationnelles, le rapport entre les VM principales et opérationnelles est de 1.0, supérieur au seuil de basculement de 0.75. Google Cloud a donc configuré le pool actif pour réutiliser les VM principales.

Ajouter d'autres VM de backend

Cette section élargit l'exemple de configuration en ajoutant des VM principales et des VM de secours à l'équilibreur de charge. Pour cela, deux autres groupes d'instances backend sont créés afin de démontrer que vous pouvez répartir les VM principales et les VM de secours entre plusieurs zones de la même région :

  • Un troisième groupe d'instances, ig-d dans us-west1-c, sert de backend principal avec deux VM :
    • vm-d1
    • vm-d2
  • Un quatrième groupe d'instances, ig-b dans us-west1-a, sert de backend de basculement avec deux VM :
    • vm-b1
    • vm-b2

L'architecture modifiée de cet exemple se présente comme suit :

Basculement de l'équilibreur de charge réseau passthrough externe multizone
Basculement de l'équilibreur de charge réseau passthrough externe multizone (cliquez pour agrandir)

Créer des VM et des groupes d'instances supplémentaires

Pour créer des VM principales et des VM de secours supplémentaires ainsi que des groupes d'instances non gérés correspondants, procédez comme suit.

Console

Créer des VM de backend

  1. Dans Google Cloud Console, accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  2. Répétez les étapes ci-dessous pour créer quatre VM, en utilisant les combinaisons de noms et de zones suivantes :

    • Nom : vm-b1, zone : us-west1-a
    • Nom : vm-b2, zone : us-west1-a
    • Nom : vm-d1, zone : us-west1-c
    • Nom : vm-d2, zone : us-west1-c
  3. Cliquez sur Créer une instance.

  4. Définissez le Nom comme indiqué à l'étape 2.

  5. Dans le champ Région, choisissez us-west1, puis sélectionnez une zone comme indiqué à l'étape 2.

  6. Dans la section Disque de démarrage, assurez-vous que l'image sélectionnée est Debian GNU/Linux 9 Stretch. Si nécessaire, cliquez sur Sélectionner pour modifier l'image.

  7. Cliquez sur Options avancées.

  8. Cliquez sur Mise en réseau et configurez les champs suivants :

    1. Pour Tags réseau, saisissez network-lb.
  9. Cliquez sur Gestion. Saisissez le script suivant dans le champ Script de démarrage. Le contenu du script est identique pour les quatre VM :

    #! /bin/bash
    apt-get update
    apt-get install apache2 -y
    a2ensite default-ssl
    a2enmod ssl
    vm_hostname="$(curl -H "Metadata-Flavor:Google" \
    http://metadata.google.internal/computeMetadata/v1/instance/name)"
    echo "Page served from: $vm_hostname" | \
    tee /var/www/html/index.html
    systemctl restart apache2
    
  10. Cliquez sur Create (Créer).

Créer des groupes d'instances

  1. Dans la console Google Cloud, accédez à la page Groupes d'instances.

    Accéder à la page "Groupes d'instances"

  2. Répétez les étapes ci-dessous pour créer deux groupes d'instances non gérés, comportant chacun deux VM, à l'aide des combinaisons suivantes.

    • Groupe d'instances : ig-b, zone : us-west1-a, VM : vm-b1 et vm-b2
    • Groupe d'instances : ig-d, zone : us-west1-c, VM : vm-d1 et vm-d2
  3. Cliquez sur Créer un groupe d'instances.

  4. Cliquez sur Nouveau groupe d'instances non géré.

  5. Définissez le Nom comme indiqué à l'étape 2.

  6. Dans la section Emplacement, sélectionnez us-west1 pour la région, puis choisissez une zone comme indiqué à l'étape 2.

  7. Pour Réseau, saisissez la valeur suivante : default.

  8. Dans la section Instances de VM, ajoutez les VM comme indiqué à l'étape 2.

  9. Cliquez sur Create (Créer).

gcloud

  1. Créez quatre VM en exécutant la commande suivante quatre fois, en utilisant ces quatre combinaisons pour VM-NAME et ZONE. Le contenu du script est identique pour les quatre VM.

    • VM-NAME : vm-b1 et ZONE : us-west1-a
    • VM-NAME : vm-b2 et ZONE : us-west1-a
    • VM-NAME : vm-d1 et ZONE : us-west1-c
    • VM-NAME : vm-d2 et ZONE : us-west1-c
    gcloud compute instances create VM-NAME \
        --zone=ZONE \
        --image-family=debian-10 \
        --image-project=debian-cloud \
        --tags=network-lb \
        --metadata=startup-script='#! /bin/bash
          apt-get update
          apt-get install apache2 -y
          a2ensite default-ssl
          a2enmod ssl
          vm_hostname="$(curl -H "Metadata-Flavor:Google" \
          http://metadata.google.internal/computeMetadata/v1/instance/name)"
          echo "Page served from: $vm_hostname" | \
          tee /var/www/html/index.html
          systemctl restart apache2'
    
  2. Créez les deux groupes d'instances non gérés dans chaque zone :

    gcloud compute instance-groups unmanaged create ig-b \
        --zone us-west1-a
    gcloud compute instance-groups unmanaged create ig-d \
        --zone us-west1-c
    
  3. Ajoutez les VM aux groupes d'instances appropriés :

    gcloud compute instance-groups unmanaged add-instances ig-b \
        --zone us-west1-a \
        --instances vm-b1,vm-b2
    gcloud compute instance-groups unmanaged add-instances ig-d \
        --zone us-west1-c \
        --instances vm-d1,vm-d2
    

Ajouter un backend principal

Vous pouvez utiliser cette procédure comme modèle pour ajouter un groupe d'instances non géré au service de backend d'un équilibreur de charge réseau passthrough externe en tant que backend principal. Pour l'exemple de configuration, cette procédure explique comment ajouter le groupe d'instances ig-d en tant que backend principal à l'équilibreur de charge network-lb.

Console

Modifiez la configuration de l'équilibreur de charge pour ajouter un backend principal.

  1. Dans la console Google Cloud, accédez à la page Équilibrage de charge.

    Accéder à la page "Équilibrage de charge"

  2. Cliquez sur l'équilibreur de charge que vous souhaitez modifier.

  3. Cliquez sur Modifier.

  4. Cliquez sur Configuration du backend et apportez les modifications suivantes :

    1. Sous Backends, cliquez sur Ajouter un backend.
    2. Dans la liste déroulante, sélectionnez le groupe d'instances à ajouter en tant que backend principal. Dans ce cas, ig-d.
    3. Cliquez sur OK.
    4. Vérifiez qu'une coche bleue apparaît à côté de Configuration du backend avant de continuer.

Vérifier la configuration

  1. Cliquez sur le bouton Vérification et finalisation et vérifiez que le nouveau backend principal s'affiche sous Backend.
  2. Si les paramètres sont corrects, cliquez sur Créer. La création de l'équilibreur de charge prend quelques minutes.

    Sur l'écran Équilibrage de charge, sous la colonne Backend qui concerne votre nouvel équilibreur de charge, vous devriez voir une coche verte indiquant que ce dernier est sain.

gcloud

Utilisez la commande gcloud suivante pour ajouter un backend principal au service de backend d'un équilibreur de charge réseau passthrough externe existant.

gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
   --instance-group INSTANCE_GROUP_NAME \
   --instance-group-zone INSTANCE_GROUP_ZONE \
   --region REGION

où :

  • BACKEND_SERVICE_NAME est le nom du service de backend de l'équilibreur de charge. Pour l'exemple, utilisez network-lb-backend-service.
  • INSTANCE_GROUP_NAME est le nom du groupe d'instances à ajouter en tant que backend principal. Pour l'exemple, utilisez ig-d.
  • INSTANCE_GROUP_ZONE est la zone dans laquelle le groupe d'instances est défini. Pour l'exemple, utilisez us-west1-c.
  • REGION est la région de l'équilibreur de charge. Pour l'exemple, utilisez us-west1.

Ajouter un backend de basculement

Vous pouvez utiliser cette procédure comme modèle pour ajouter un groupe d'instances non géré au service de backend d'un équilibreur de charge réseau passthrough externe existant en tant que backend de basculement. Pour l'exemple de configuration, cette procédure explique comment ajouter le groupe d'instances ig-b en tant que backend de basculement à l'équilibreur de charge network-lb.

Console

Modifiez la configuration de l'équilibreur de charge pour ajouter un backend principal.

  1. Dans la console Google Cloud, accédez à la page Équilibrage de charge.

    Accéder à la page "Équilibrage de charge"

  2. Cliquez sur l'équilibreur de charge que vous souhaitez modifier.

  3. Cliquez sur Modifier.

  4. Cliquez sur Configuration du backend et apportez les modifications suivantes :

    1. Sous Backends, cliquez sur Ajouter un backend.
    2. Dans la liste déroulante, sélectionnez le groupe d'instances à ajouter en tant que backend de basculement. Dans ce cas, ig-b.
    3. Cochez la case Utiliser ce groupe d'instances comme groupe de basculement pour la sauvegarde.
    4. Cliquez sur OK.
    5. Vérifiez qu'une coche bleue apparaît à côté de Configuration du backend avant de continuer.

Vérifier la configuration

  1. Cliquez sur le bouton Vérification et finalisation et vérifiez que le nouveau backend principal s'affiche sous Backend.
  2. Si les paramètres sont corrects, cliquez sur Créer. La création de l'équilibreur de charge prend quelques minutes.

    Sur l'écran Équilibrage de charge, sous la colonne Backend qui concerne votre nouvel équilibreur de charge, vous devriez voir une coche verte indiquant que ce dernier est sain.

gcloud

Utilisez la commande gcloud suivante pour ajouter un backend de basculement au service de backend d'un équilibreur de charge réseau passthrough externe existant.

gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
   --instance-group INSTANCE_GROUP_NAME \
   --instance-group-zone INSTANCE_GROUP_ZONE \
   --region REGION \
   --failover

où :

  • BACKEND_SERVICE_NAME est le nom du service de backend de l'équilibreur de charge. Pour l'exemple, utilisez network-lb-backend-service.
  • INSTANCE_GROUP_NAME est le nom du groupe d'instances à ajouter en tant que backend principal. Pour l'exemple, utilisez ig-b.
  • INSTANCE_GROUP_ZONE est la zone dans laquelle le groupe d'instances est défini. Pour l'exemple, utilisez us-west1-a.
  • REGION est la région de l'équilibreur de charge. Pour l'exemple, utilisez us-west1.

Convertir un backend principal ou un backend de basculement

Vous pouvez convertir un backend principal en backend de basculement, ou inversement, sans avoir à supprimer le groupe d'instances du service de backend de l'équilibreur de charge réseau passthrough externe.

gcloud

Utilisez la commande gcloud suivante pour convertir un backend principal existant en backend de basculement :

gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \
   --instance-group INSTANCE_GROUP_NAME \
   --instance-group-zone INSTANCE_GROUP_ZONE \
   --region REGION \
   --failover

Utilisez la commande gcloud suivante pour convertir un backend de basculement existant en backend principal :

gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \
   --instance-group INSTANCE_GROUP_NAME \
   --instance-group-zone INSTANCE_GROUP_ZONE \
   --region REGION \
   --no-failover

où :

  • BACKEND_SERVICE_NAME est le nom du service de backend de l'équilibreur de charge.
  • INSTANCE_GROUP_NAME est le nom du groupe d'instances.
  • INSTANCE_GROUP_ZONE est la zone dans laquelle le groupe d'instances est défini.
  • REGION est la région de l'équilibreur de charge.

Configurer les règles de basculement

Cette section décrit comment gérer une règle de basculement pour le service de backend d'un équilibreur de charge réseau passthrough externe. Une règle de basculement comprend les éléments suivants :

  • Taux de basculement
  • Suppression du trafic lorsqu'aucune VM de backend n'est opérationnelle
  • Drainage de connexion en basculement

Pour plus d'informations sur les paramètres d'une règle de basculement, consultez les pages suivantes :

Définir une règle de basculement

Les instructions suivantes décrivent comment définir la règle de basculement pour un équilibreur de charge réseau passthrough externe existant.

gcloud

Pour définir une stratégie de basculement à l'aide de gCloud CLI, mettez à jour le service de backend de l'équilibreur de charge :

gcloud compute backend-services update BACKEND_SERVICE_NAME \
   --region REGION \
   --failover-ratio FAILOVER_RATIO \
   --connection-drain-on-failover \
   --connection-draining-timeout=CONNECTION_DRAINING_TIMEOUT \
   --drop-traffic-if-unhealthy

où :

  • BACKEND_SERVICE_NAME est le nom du service de backend de l'équilibreur de charge. Pour l'exemple, utilisez network-lb.
  • REGION est la région de l'équilibreur de charge. Pour l'exemple, utilisez us-west1.
  • FAILOVER_RATIO est le taux de basculement. Les valeurs possibles sont comprises entre 0.0 et 1.0, inclus. Pour l'exemple, utilisez 0.75.
  • CONNECTION_DRAINING_TIMEOUT permet aux connexions TCP de persister, même sur les VM qui ne se trouvent plus dans le pool actif, pendant toute la durée du délai avant expiration du drainage de connexion.

Afficher une règle de basculement

Les instructions suivantes décrivent comment afficher la règle de basculement pour un équilibreur de charge réseau passthrough externe

gcloud

Pour répertorier les paramètres de la stratégie de basculement à l'aide de gCloud CLI, exécutez la commande ci-dessous. Les paramètres non définis dans une règle de basculement utilisent les valeurs de règles de basculement par défaut.

gcloud compute backend-services describe BACKEND_SERVICE_NAME \
   --region REGION \
   --format="get(failoverPolicy)"

où :

  • BACKEND_SERVICE_NAME est le nom du service de backend de l'équilibreur de charge. Pour l'exemple, utilisez network-lb-backend-service.
  • REGION est la région de l'équilibreur de charge. Pour l'exemple, utilisez us-west1.

Étapes suivantes