Créer des groupes d'instances non gérés

Les groupes d'instances non gérés sont des ensembles d'instances qui ne sont pas nécessairement identiques et ne partagent pas de modèle d'instance commun. Ils vous permettent d'exploiter vos configurations préexistantes lors de l'exécution de tâches d'équilibrage de charge. Cependant, vous devez toujours créer des groupes d'instances gérés, sauf si vos applications exigent que vous regroupiez des instances qui ne sont pas identiques.

Pour en savoir plus sur les groupes d'instances, consultez la présentation des groupes d'instances. Pour créer un groupe d'instances géré (MIG), consultez plutôt la section Créer des groupes d'instances gérées.

Avant de commencer

Créer un groupe d'instances non géré

Contrairement aux groupes d'instances gérés, les groupes d'instances non gérés ne sont que des ensembles d'instances uniques qui ne partagent pas de modèle d'instance commun. Ils ne permettent d'effectuer aucune tâche de création, de suppression ou de scaling du nombre d'instances au sein du groupe. Vous créez simplement un groupe, puis y ajoutez des instances individuelles par la suite.

Console

  1. Accédez à la page Groupes d'instances de Cloud Console.

    Accéder à la page Groupes d'instances

  2. Cliquez sur Créer un groupe d'instances.
  3. Saisissez un nom pour le groupe d'instances non géré.
  4. Dans la section Emplacement, sélectionnez Zone unique.
  5. Dans la section Zone, sélectionnez la zone dans laquelle vous souhaitez créer votre groupe.
  6. Dans la section Type de groupe, sélectionnez Groupe d'instances non géré.
  7. Sélectionnez le réseau pour ce groupe.
  8. Dans la section Instances de VM, sélectionnez les instances que vous souhaitez ajouter au groupe.
  9. Cliquez sur Créer pour créer le groupe.

gcloud

Pour créer un groupe d'instances non géré avec l'outil de ligne de commande gcloud, utilisez la commande instance-groups unmanaged create :

gcloud compute instance-groups unmanaged create [INSTANCE_GROUP]

API

Dans l'API, générez une requête POST auprès du service instanceGroups. en spécifiant un nom de groupe dans le corps de la requête.

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

{
 "name": "[INSTANCE_GROUP]"
}

Lorsque vous créez un groupe d'instances non géré, il est d'abord vide. Vous pouvez ensuite y ajouter des instances spécifiques.

Ajouter des instances à un groupe d'instances non géré

Après avoir créé un groupe d'instances non géré, vous pouvez ajouter vos instances existantes.

Remarques :

  • Une instance ne peut appartenir qu'à un seul groupe d'instances à équilibrage de charge. Vous pouvez également ajouter une instance à un seul groupe d'instances à équilibrage de charge ainsi qu'à plusieurs groupes d'instances sans équilibrage de charge.

  • Si le groupe d'instances est soumis à un équilibrage de charge, toutes les instances doivent appartenir au même réseau ou sous-réseau VPC.

Console

  1. Accédez à la page Groupes d'instances de Cloud Console.

    Accéder à la page Groupes d'instances

  2. Dans la colonne Nom de la liste, cliquez sur le nom du groupe auquel vous souhaitez ajouter des instances. La page qui s'ouvre affiche les propriétés du groupe ainsi que la liste des instances en faisant déjà partie.
  3. Cliquez sur Modifier le groupe pour modifier le groupe d'instances non géré.
  4. Dans la section Instances de VM, sélectionnez une ou plusieurs instances existantes à ajouter au groupe. Vous ne pouvez sélectionner des instances que si elles se trouvent dans la même zone que le groupe.
  5. Cliquez sur Enregistrer pour enregistrer les modifications. Les instances sélectionnées rejoignent le groupe non géré.

gcloud

Utilisez la sous-commande add-instances de gcloud instance-groups unmanaged :

gcloud compute instance-groups unmanaged add-instances [INSTANCE_GROUP] \
  --instances [INSTANCE_NAME],[ANOTHER_INSTANCE_NAME]

API

Construisez une requête adressée au service instanceGroups avec le nom du groupe d'instances non géré pour lequel vous souhaitez ajouter des instances. Spécifiez les URL des instances que vous souhaitez ajouter.

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

{
 "instances": [
  {
   "instance": "https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]",
   "instance": "https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]"
  }
 ]
}

Répertorier les groupes d'instances non gérés d'un projet

Récupérez la liste des groupes d'instances non gérés existants.

Console

Dans Cloud Console, accédez à la page Groupes d'instances.

Accéder à la page Groupes d'instances

Cette page répertorie les groupes d'instances dont vous disposez, ainsi que les groupes d'instances gérés.

gcloud

Confirmez que votre groupe d'instances non géré a bien été créé à l'aide de la commande list :

gcloud compute instance-groups unmanaged list [INSTANCE_GROUP]

Pour obtenir des informations sur un groupe spécifique, exécutez la commande suivante :

gcloud compute instance-groups unmanaged describe [INSTANCE_GROUP]

API

Pour répertorier tous les groupes d'instances d'un projet, Construisez une requête GET auprès du service instanceGroups :

GET https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroups

Pour obtenir des informations sur un groupe donné, Construisez une requête GET adressée au service instanceGroups, et incluez le nom d'un groupe d'instance non géré spécifique :

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

Répertorier les instances d'un groupe d'instances non géré

Récupérez la liste des instances appartenant à un groupe non géré.

Console

  1. Accédez à la page Groupes d'instances de Cloud Console.

    Accéder à la page Groupes d'instances

  2. Dans la colonne Nom de la liste, cliquez sur le nom du groupe non géré contenant les instances que vous souhaitez afficher. La page qui s'ouvre affiche les propriétés du groupe ainsi que la liste des instances qui en font partie.

gcloud

Pour répertorier les instances d'un groupe d'instances non géré, exécutez la sous-commande list-instances du groupe de commandes instances de gcloud compute instance-groups unmanaged :

gcloud compute instance-groups unmanaged list-instances [INSTANCE_GROUP]

API

Construisez une requête adressée au service instanceGroups avec le nom du groupe d'instances non géré pour lequel vous souhaitez répertorier des instances. Vous pouvez également inclure des filtres dans le corps de la requête.

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

Retirer des instances d'un groupe

Séparez des instances de leur groupe sans les supprimer.

Si le groupe fait partie d'un service de backend sur lequel le drainage de connexion est activé, le retrait ou la suppression de l'instance de VM peut prendre jusqu'à 60 secondes après la fin de la période de drainage.

Console

  1. Accédez à la page Groupes d'instances de Cloud Console.

    Accéder à la page Groupes d'instances

  2. Dans la colonne Nom de la liste, cliquez sur le nom du groupe d'instances qui contient les instances que vous souhaitez retirer. La page qui s'ouvre affiche les propriétés du groupe ainsi que la liste des instances qui en font partie.
  3. Dans la liste des instances, sélectionnez une ou plusieurs instances à retirer du groupe.
  4. Cliquez sur Retirer du groupe. Les instances sélectionnées ne font plus partie du groupe, mais continuent de s'exécuter en dehors de celui-ci.

gcloud

Pour supprimer des instances d'un groupe d'instances non géré, exécutez la sous-commande remove de gcloud compute instance-groups unmanaged :

gcloud compute instance-groups unmanaged remove-instances [INSTANCE_GROUP] \
  --instances [INSTANCE_NAME],[ANOTHER_INSTANCE_NAME],[INSTANCES ...]

API

Construisez une requête adressée au service instanceGroups avec le nom du groupe d'instances non géré pour lequel vous souhaitez supprimer des instances. Spécifiez l'URL des instances que vous souhaitez supprimer du groupe.

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

{
 "instances": [
  {
   "instance": "https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]",
   "instance": "https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[ANOTHER_INSTANCE_NAME]"
  }
 ]
}

Ajouter un groupe d'instances non 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.

Affecter des ports nommés à des groupes d'instances non 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 des instances individuelles faisant partie du groupe d'instances sur le port 80 .

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 que vers un seul port nommé à la fois.

Console

  1. Accédez à la page Groupes d'instances de Cloud Console.

    Accéder à la page Groupes d'instances

  2. Dans la colonne Nom de la liste, 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 non 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. Cliquez de nouveau sur Ajouter un élément pour ajouter d'autres entrées si nécessaire.
  6. Cliquez sur Enregistrer pour enregistrer les modifications et appliquer les ports nommés aux instances du groupe d'instances non géré.

gcloud

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

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

Exemple :

gcloud compute instance-groups unmanaged 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. Attribuez ensuite les noms name2 et name3 au port 8080. Enfin, attribuez le port 9000 au nom name4.

gcloud compute instance-groups unmanaged 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 non géré à l'aide de la commande get-named-ports :

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

API

Créez une requête auprès du service instanceGroups et incluez le nom d'un groupe d'instances non géré spécifique. 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://compute.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://compute.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 à name1. Attribuez également le port 8080 à name2.

POST https://compute.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à affectés à un groupe d'instances non géré, construisez une requête GET qui pointe vers le groupe :

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

Supprimer un groupe d'instances non géré

Contrairement à un groupe d'instances géré, la suppression d'un groupe d'instances non géré ne supprime aucune des instances du groupe. La suppression d'un groupe non géré dissout simplement le regroupement logique des instances.

Supprimez un groupe d'instance non géré à l'aide de l' outil de ligne de commande gcloud, ou de l' API.

Console

  1. Accédez à la page Groupes d'instances de Cloud Console.

    Accéder à la page Groupes d'instances

  2. Dans la liste, sélectionnez un ou plusieurs groupes à supprimer.
  3. Cliquez sur Supprimer pour supprimer le groupe. Les instances du groupe ne sont pas supprimées.

gcloud

Pour supprimer un groupe d'instances non géré, exécutez la commande delete :

gcloud compute instance-groups unmanaged delete [INSTANCE_GROUP]

API

Construisez une requête DELETE adressée au service instanceGroups et incluez le nom d'un groupe d'instances non géré spécifique que vous souhaitez supprimer :

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

Étapes suivantes