Utiliser des instances gérées

Vous contrôlez un groupe d'instances géré et ses instances de VM en tant qu'entité unique. Par exemple, vous pouvez définir des règles d'autoréparation, d'autoscaling et de mise à jour automatique pour l'ensemble du groupe. En fonction des paramètres que vous spécifiez, le groupe d'instances géré agit automatiquement sur ses instances pour obtenir l'état souhaité.

Si vous devez effectuer des opérations sur certaines instances d'un groupe d'instances géré, par exemple pour créer ou supprimer des instances portant des noms spécifiques, vous devez agir sur ces instances via l'entité de groupe. Utilisez les méthodes de cette page, par exemple, les méthodes API instanceGroupManager ou regionInstanceGroupManager.

Si vous effectuez des opérations sur des instances gérées à l'aide de méthodes ne faisant pas partie des méthodes du groupe, vos actions peuvent entrer en conflit avec les actions du groupe. Par exemple, si vous supprimez une instance appartenant à un groupe, mais que vous n'utilisez pas les méthodes de suppression d'instance du groupe, le groupe d'instances géré recrée automatiquement cette instance en appliquant les spécifications définies pour le groupe.

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, à savoir :

  • L'état actuel inclut :
    • 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.
  • L'état souhaité inclut :
    • 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 (disques, métadonnées) à conserver.

Pour chaque instance gérée dans le MIG, celui-ci garde une VM en cours d'exécution conformément aux spécifications de l'instance gérée.

Pour afficher les spécifications d'une instance gérée, consultez la section Obtenir des informations sur les VM gérées dans 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 découvrir comment faire le scaling automatique d'un 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

Reportez-vous à la page Déployer des mises à jour de groupes d'instances gérés.

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 supplémentaires 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 supplémentaires 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. 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 supplémentaires 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 supplémentaires 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é.

Étapes suivantes