Utiliser des instances gérées

Une instance gérée est une entité de données qui représente l'état souhaité d'une instance de machine virtuelle (VM) réelle dans un groupe d'instances géré (MIG). Lisez ce document pour savoir comment utiliser de manière fiable les instances gérées d'un MIG. Par exemple, vous devrez peut-être ajouter, supprimer ou mettre à jour une instance spécifique, ou bien obtenir des informations s'y rapportant.

Pour vous assurer que les modifications apportées à votre configuration ne sont pas annulées par le MIG, il est important d'utiliser les méthodes décrites dans ce document. Si vous travaillez en dehors des méthodes du groupe, le groupe d'instances géré détecte les modifications et peut essayer de réparer le groupe. Par exemple, si vous supprimez une instance d'un groupe, le MIG peut recréer automatiquement cette instance en appliquant la spécification de l'instance gérée.

Avant de commencer

Qu'est-ce qu'une instance gérée ?

Une instance gérée est une entité de données dans un MIG qui contient l'état actuel et l'état souhaité d'une instance de VM,

L'état actuel d'une instance gérée inclut les champs suivants :

  • l'état du cycle de vie de l'instance, par exemple : RUNNING, STOPPING ;
  • l'action actuelle réalisée par le MIG sur une instance, par exemple : RESTARTING, VERIFYING, NONE ;
  • l'état de santé de l'instance, par exemple : HEALTHY, UNHEALTHY.

Pour une instance de VM réelle, l'état souhaité d'une instance gérée inclut les éléments suivants :

  • la version souhaitée, c'est-à-dire le nom de version et le modèle d'instance à utiliser pour l'instance ;
  • l'état préservé des éléments (tels que les disques ou les métadonnées) à conserver.

Comme le montre la Figure 1, pour chaque instance gérée d'un MIG, celui-ci maintient une VM réelle opérationnelle en fonction de la spécification de l'instance gérée.

En fonction de votre configuration, le MIG génère automatiquement des instances gérées, qui correspondent aux instances de VM réelles qu'un MIG conserve en votre nom.

Figure 1 : Relation entre les instances gérées et les VM correspondantes.

Pour afficher les spécifications d'une instance gérée, consultez la section Obtenir des informations sur les instances de VM gérées d'un MIG.

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

Pour ajouter des instances à un groupe d'instances géré, vous pouvez :

Pour vérifier que les instances nouvellement ajoutées fonctionnent correctement, vérifiez l'état du groupe ou vérifiez l'état des instances gérées.

Redimensionnement manuel

Si l'autoscaling n'est pas déjà configuré pour un groupe d'instances géré, vous pouvez redimensionner le groupe manuellement (modifier le nombre d'instances du groupe). Reportez-vous à la section Redimensionner manuellement un groupe d'instances géré.

Autoscaling

Vous pouvez configurer des groupes d'instances gérés pour qu'ils ajoutent ou suppriment automatiquement des instances en fonction de leurs charges de travail. Cela permet à vos applications de gérer de façon optimale les hausses de trafic. En outre, cela vous permet de réduire les coûts lorsque vos besoins en ressources de calcul sont moins importants. Pour en savoir plus sur le scaling automatique de votre groupe d'instances géré, consultez la page Procéder à l'autoscaling de groupes d'instances.

Ajouter des instances avec des noms spécifiques

Si votre système dépend de noms spécifiques, utilisez l'outil gcloud ou l'API pour ajouter des VM avec des noms spécifiques à un MIG existant.

Les noms que vous attribuez à ces instances gérées sont conservés si le MIG recrée la VM. Pour en savoir plus sur la conservation de l'état des instances de MIG, consultez la page Groupes d'instances gérés avec état.

Limites

Respectez les conditions suivantes lorsque vous créez des instances avec des noms spécifiques :

  • Vous devez désactiver l'autoscaling pendant le processus de création de l'instance.
  • Vous devez définir la règle de mise à jour du MIG sur Quand l'occasion se présente.
  • Si vous mettez à jour un groupe d'instances géré régional :
  • Vous ne pouvez pas utiliser de noms d'instance de VM en double dans un projet.

gcloud

Utilisez la sous-commande create-instances.

gcloud compute instance-groups managed create-instance instance-group-name \
    --instance managed-instance-name \
    [--region region | --zone zone]

Remplacez les éléments suivants :

  • instance-group-name est le nom du groupe d'instances géré régional ou zonal auquel ajouter une instance.
  • managed-instance-name est le nom que vous souhaitez attribuer à la nouvelle instance.

API

Dans l'API, envoyez une requête POST à la méthode regionInstanceGroupManagers.createInstances. Pour un groupe d'instances géré zonal, utilisez la méthode instanceGroupManagers.createInstances. Dans le corps de la requête, incluez le champ instances avec les noms d'une ou de plusieurs instances.

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/createInstances
{
  "instances": [
    {
      "name": "instance-name-1"
    },
    {
      "name": "instance-name-2"
    }
  ]
}

Mettre à jour les instances sélectionnées dans un groupe

Consultez la section Mettre à jour de manière sélective les instances dans un groupe d'instances géré.

Supprimer certaines instances d'un groupe d'instances géré

Lorsque vous supprimez des instances gérées, le groupe d'instances géré réduit la valeur targetSize spécifiée pour le groupe et supprime les instances de VM correspondantes. Le groupe d'instances géré supprime les instances de tous les pools cibles auxquelles elles appartiennent.

La suppression d'instances appartenant à un groupe géré n'entraîne aucune modification des paramètres définis pour l'autoscaler. Si l'autoscaler détecte une augmentation de la charge de travail sur les autres instances du groupe, il peut alors lui réattribuer sa taille précédente. Pour éviter cela, arrêtez l'autoscaler avant d'essayer de supprimer les instances.

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.

Pour supprimer une instance gérée et donc supprimer l'instance de VM correspondante, vous pouvez :

Supprimer des instances spécifiques

Vous pouvez supprimer des instances spécifiques dans un groupe d'instances géré. Le fait de supprimer des instances réduit la taille cible (targetSize) spécifiée pour le groupe d'instances et entraîne le retrait des instances concernées de tous les pools cibles dont elles sont membres. Si vous configurez un MIG avec état, celui-ci supprime également les configurations d'état conservées des instances.

La suppression d'instances appartenant à un groupe géré n'entraîne aucune modification des paramètres définis pour l'autoscaler. Si l'autoscaler détecte une augmentation de la charge de travail sur les autres instances du groupe, il peut alors lui réattribuer sa taille précédente. Pour éviter cela, arrêtez l'autoscaler avant d'essayer de supprimer les instances.

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.

La suppression d'instances dans un groupe d'instances géré s'effectue à l'aide de Google Cloud Console, de l'outil de ligne de commande gcloud ou de l'API.

Console

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

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

  2. Dans la colonne Nom de la liste, cliquez sur le nom du groupe qui contient les instances individuelles que vous souhaitez supprimer. 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 à supprimer.

  4. Cliquez sur Supprimer l'instance. Les instances sélectionnées sont supprimées.

gcloud

Pour supprimer une instance avec l'outil gcloud, utilisez la sous-commande instance-groups managed delete-instances :

gcloud compute instance-groups managed delete-instances instance-group-name \
    --instances example-i3n2,example-z2x9 \
    [--region region | --zone zone]

API

Dans l'API, envoyez une requête POST à la méthode regionInstanceGroupManagers.deleteInstances. Pour un groupe d'instances géré zonal, utilisez la méthode instanceGroupManagers.deleteInstances.

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/deleteInstances

{
 "instances": [
  "zones/zone/instances/example-instance-i3n2",
  "zones/zone/instances/example-instance-l6n1"
 ]
}

Une fois votre requête de suppression d'instances envoyée, les instances s'arrêtent dès que le système est en mesure de les supprimer. Ce processus peut prendre un certain temps selon le nombre d'instances que vous supprimez du groupe. Vérifiez l'état du groupe ou vérifiez l'état des instances gérées.

Abandonner des instances d'un groupe d'instances géré

Vous pouvez séparer une instance de VM d'un groupe d'instances géré pour déboguer plus facilement des problèmes liés à des instances individuelles sans affecter le groupe dans son ensemble. Lorsque vous abandonnez une instance, elle est également retirée des équilibreurs de charge attribués au groupe d'instances géré. Les pools cibles qui ont été manuellement assignés à des instances individuelles spécifiques ne sont pas retirés.

Le fait d'abandonner des instances réduit la taille cible (targetSize) spécifiée pour le groupe d'instances, mais cela n'entraîne aucune modification des paramètres définis pour l'autoscaler. Les groupes d'instances gérés dotés d'un autoscaler continuent d'ajouter ou de retirer automatiquement des instances, si nécessaire.

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.

L'abandon d'instances dans un groupe d'instances géré s'effectue à l'aide de Google Cloud Console, de l'outil gcloud ou de l'API.

Console

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

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

  2. Dans la colonne Nom de la liste, cliquez sur le nom du groupe 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 retirer une instance du groupe d'instances sans supprimer la VM, exécutez la sous-commande abandon-instances.

gcloud compute instance-groups managed abandon-instances instance-group-name \
    --instances example-i3n2,example-z2x9 \
    [--region region | --zone zone]

API

Dans l'API, envoyez une requête POST à la méthode regionInstanceGroupManagers.abandonInstances. Pour un groupe d'instances géré zonal, utilisez la méthode instanceGroupManagers.abandonInstances.

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/abandonInstances

{
 "instances": [
  "zones/zone/instances/example-instance-i3n2",
  "zones/zone/instances/example-instance-l6n1"
 ]
}

Une fois votre requête d'abandon d'instances envoyée, le groupe retire les instances dès que possible. Vérifiez l'état du groupe ou vérifiez l'état des instances gérées.

Recréer des instances dans un groupe d'instances géré

Le processus de recréation d'instances supprime les VM spécifiées et en crée d'autres à partir de la configuration attribuée à l'instance gérée.

Utilisez cette méthode pour mettre à jour les VM sélectionnées afin qu'elles utilisent le dernier modèle d'instance et la dernière configuration avec état, le cas échéant. Si vous devez recréer toutes les VM d'un groupe d'instances géré, lancez plutôt une mise à jour progressive.

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.

Recréez les instances de VM sélectionnées dans un groupe d'instances géré à l'aide de l'outil gcloud ou de l'API.

gcloud

Exécutez la sous-commande instance-groups managed recreate-instances.

gcloud compute instance-groups managed recreate-instances instance-group-name \
    --instances example-i3n2,example-z2x9 \
    [--region region | --zone zone]

API

Dans l'API, envoyez une requête POST à la méthode regionInstanceGroupManagers.recreateInstances. Pour un groupe d'instances géré zonal, utilisez la méthode instanceGroupManagers.recreateInstances.

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/recreateInstances

{
 "instances": [
  "zones/zone/instances/example-instance-i3n2",
  "zones/zone/instances/example-instance-l6n1"
 ]
}

Une fois votre requête de recréation d'instances de VM dans un groupe d'instances géré envoyée, les nouvelles VM démarrent dès que le système est en mesure de les provisionner. Ce processus peut prendre un certain temps selon le nombre d'instances que vous recréez. Vérifiez l'état du groupe ou vérifiez l'état des instances gérées.

Obtenir des informations sur des instances appartenant à un groupe d'instances géré

Reportez-vous à la section Obtenir des informations sur les instances gérées d'un groupe d'instances géré.

Configurer des instances avec état dans un groupe d'instances géré

Pour en savoir plus, consultez la page Configurer des groupes d'instances gérés (MIG) avec état.

Étape suivante