Ajouter un groupe d'instances à un équilibreur de charge

La fonctionnalité d'équilibrage de charge de Google Cloud Platform (GCP) utilise des groupes d'instances, gérés ou non gérés, pour diffuser le trafic. Selon le type d'équilibreur de charge que vous utilisez, vous pouvez ajouter des groupes d'instances à un service de backend ou à un pool cible. Pour en savoir plus sur l'équilibrage de charge, consultez la page Choisir un équilibreur de charge.

Pour en savoir plus sur les groupes d'instances, consultez la présentation des groupes d'instances.

Avant de commencer

Ajouter un groupe d'instances géré à un service de backend

Vous devez disposer d'un service de backend pour pouvoir créer un équilibreur de charge interne, proxy TCP, proxy SSL ou HTTP(S). Un service de backend peut contenir plusieurs backends. Un groupe d'instances est un type de backend. Les instances du groupe d'instances répondent au trafic provenant de l'équilibreur de charge. Le service de backend sait ainsi quelles instances il peut exploiter, quel volume de trafic ces dernières peuvent traiter et quel volume elles traitent actuellement. En outre, le service de backend vérifie l'intégrité des instances et n'envoie pas de nouvelles connexions aux instances défectueuses.

Pour découvrir comment ajouter un groupe d'instances à un service de backend, consultez la section Ajouter des groupes d'instances à un service de backend.

Ajouter un groupe d'instances géré à un pool cible

Un pool cible est un objet qui contient une ou plusieurs instances de VM. Il permet à un équilibreur de charge réseau de transférer des requêtes utilisateur vers le pool cible associé. Les instances qui appartiennent à ce pool cible traitent ces requêtes et renvoient une réponse. Vous pouvez ajouter un groupe d'instances géré à un pool cible pour que, lorsque des instances sont ajoutées ou supprimées dans ce groupe, le pool soit lui aussi automatiquement mis à jour avec les modifications.

Le pool cible dans lequel vous ajoutez un groupe d'instances géré doit avoir été créé au préalable. Pour en savoir plus, consultez la section Ajouter un pool cible.

Pour ajouter un groupe d'instances géré existant à un pool cible, suivez les instructions ci-dessous. Ce processus permet d'ajouter toutes les instances de VM faisant partie du groupe géré au pool cible.

Console

  1. Accédez à la page "Pools cibles" de la console GCP.

    Accéder à la page "Pools cibles"

  2. Cliquez sur le pool cible auquel vous souhaitez ajouter le groupe d'instances.
  3. Cliquez sur le bouton Modifier.
  4. Faites défiler l'écran vers le bas jusqu'à la section Instances de VM, puis cliquez sur Sélectionner des groupes d'instances.
  5. Sélectionnez un groupe d'instances dans le menu déroulant.
  6. Enregistrez les modifications.

gcloud

Dans l'outil de ligne de commande gcloud, exécutez la commande set-target-pools :

gcloud compute instance-groups managed set-target-pools [INSTANCE_GROUP] \
        --target-pools [TARGET_POOL,..] [--zone ZONE]

où :

  • [INSTANCE_GROUP] est le nom du groupe d'instances.
  • [TARGET_POOL] est le nom du ou des pools cibles auxquels vous souhaitez ajouter le groupe d'instances.
  • [ZONE] est la zone du groupe d'instances.

API

Dans l'API, envoyez une demande POST à l'adresse URI suivante :

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroupManagers/[INSTANCE_GROUP]/setTargetPools

où :

  • [PROJECT_ID] est l'ID de projet pour cette requête.
  • [ZONE] est la zone du groupe d'instances.
  • [INSTANCE_GROUP] est le nom du groupe d'instances.

Le corps de la requête doit contenir une liste d'URI pointant vers les pools cibles auxquels vous souhaitez ajouter le groupe. Exemple :

{
  "targetPools": [
    "regions/us-central1/targetPools/example-targetpool-1",
    "regions/us-central1/targetPools/example-targetpool-2"
  ]
}

Attribuer des ports nommés à des groupes d'instances gérés

Les ports nommés sont des paires clé/valeur qui représentent un nom de service et le numéro de port sur lequel le service s'exécute. Ils permettent aux services d'équilibrage de charge de rediriger le trafic vers des ports spécifiques sur des instances individuelles. Par exemple, si vous définissez un port nommé sur http:80, puis que vous configurez votre service de backend pour qu'il envoie du trafic sur un port nommé http, l'équilibreur de charge transfère le trafic sur le port 80 d'instances individuelles faisant partie du groupe d'instances.

Les ports nommés sont des métadonnées simples utilisées par l'équilibrage de charge. Ils ne permettent de contrôler ni les ressources réseau, ni le pare-feu dans Compute Engine.

Vous pouvez attribuer plusieurs ports à chaque nom de service, et plusieurs noms de service à chaque port. Gardez toutefois à l'esprit qu'un service de backend ne peut transférer le trafic qu'à un seul port nommé à la fois.

Console

  1. Accédez à la page Groupes d'instances dans la console GCP.

    Accéder à la page Groupes d'instances

  2. Cliquez sur le nom du groupe d'instances dans lequel vous souhaitez spécifier des ports nommés. La page qui s'ouvre affiche les propriétés du groupe.
  3. Cliquez sur Modifier le groupe pour modifier le groupe d'instances géré.
  4. Cliquez sur Préciser le mappage des noms des ports pour développer les options relatives aux ports nommés.
  5. Cliquez sur Ajouter un élément, puis saisissez le nom de port souhaité, ainsi que les numéros de port que vous voulez associer à ce nom. Si vous avez besoin d'un plus grand nombre d'entrées, cliquez à nouveau sur Ajouter un élément pour ajouter d'autres entrées.
  6. Cliquez sur Enregistrer pour enregistrer les modifications et appliquer les ports nommés aux instances du groupe géré.

gcloud

Définissez un ou plusieurs ports nommés à l'aide de la commande set-named-ports :

gcloud compute instance-groups managed set-named-ports [INSTANCE_GROUP] \
      --named-ports [PORT_NAME]:[PORT],[PORT_NAME]:[PORT]

Exemple :

gcloud compute instance-groups managed set-named-ports [INSTANCE_GROUP] \
      --named-ports name1:80,name2:8080

Pour attribuer plusieurs ports à chaque nom de service, ou plusieurs noms à chaque service, créez plusieurs entrées pour chaque nom ou port. Par exemple, attribuez le nom name1 aux ports 10, 20 et 80. Assignez ensuite les noms name2 et name3 au port 80. Enfin, attribuez le port 9000 au nom name4.

gcloud compute instance-groups managed set-named-ports [INSTANCE_GROUP] \
      --named-ports name1:10,name1:20,name1:80,\
                    name2:8080,name3:8080,\
                    name4:9000

Vous pouvez vérifier les attributions des ports nommés d'un groupe d'instances géré à l'aide de la commande get-named-ports :

gcloud compute instance-groups managed get-named-ports [INSTANCE_GROUP]
NAME  PORT
name1 10
name1 20
name1 80
name2 8080
name3 8080
name4 9000

API

L'API instanceGroupManagers n'offre pas de méthode d'API setNamedPorts. Utilisez plutôt l'API instanceGroups pour effectuer cette tâche.

Envoyez une requête à l'API instanceGroups en incluant le nom du groupe d'instances. Récupérez la valeur fingerprint actuelle associée au groupe en obtenant des informations sur un groupe spécifique. Incluez la valeur fingerprint et une ou plusieurs paires de valeurs namedPorts dans le corps de la requête :

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroups/[INSTANCE_GROUP]/setNamedPorts

{
 "fingerprint": "42WmSpB8rSM=",
 "namedPorts": [
  {
   "name": "[PORT_NAME]",
   "port": [PORT_NUMBER]
  },
  {
   "name": "[PORT_NAME]",
   "port": [PORT_NUMBER]
  }
 ]
}

Exemple :

POST https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-group/setNamedPorts

{
 "fingerprint": "42WmSpB8rSM=",
 "namedPorts": [
  {
   "name": "name1",
   "port": 80
  },
  {
   "name": "name2",
   "port": 8080
  }
 ]
}

Pour attribuer plusieurs ports à chaque nom de service, créez plusieurs entrées pour ce nom de service. Par exemple, vous pouvez attribuer les ports 10, 20 et 80 au nom name1. Affectez également le port 8080 au nom name2.

POST https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-group/setNamedPorts

{
 "fingerprint": "42WmSpB8rSM=",
 "namedPorts": [
  {
   "name": "name1",
   "port": 10
  },
  {
   "name": "name1",
   "port": 20
  }
  {
   "name": "name1",
   "port": 80
  }
  {
   "name": "name2",
   "port": 8080
  }
  {
   "name": "name3",
   "port": 80
  }
  {
   "name": "name4",
   "port": 8080
  }
 ]
}

Pour répertorier les ports nommés déjà attribués à un groupe d'instances géré, envoyez une requête GET qui pointe vers le groupe :

GET https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroupManagers/[INSTANCE_GROUP]

Étape suivante

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation Compute Engine