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

Ce document explique comment créer un groupe d'instances géré (MIG). Un MIG est un groupe d'instances de machines virtuelles (VM) qui sont gérées en tant qu'entité unique. Les MIG acceptent des fonctionnalités telles que l'autoréparation, l'équilibrage de charge, l'autoscaling, la mise à jour automatique et les charges de travail avec état.

Vous pouvez créer des MIG régionaux ou des MIG zonaux. Les MIG régionaux offrent une disponibilité plus élevée que les MIG zonaux, car les instances d'un MIG régional sont réparties sur plusieurs zones d'une même région. Ce document fournit des informations sur la création de MIG zonaux ou régionaux. Toutefois, les MIG régionaux comportent des options et des considérations supplémentaires. Pour plus d'informations sur les MIG régionaux, consultez la présentation des MIG régionaux.

Pour obtenir des informations conceptuelles sur les groupes d'instances et les fonctionnalités qui leur sont associées, consultez la présentation des groupes d'instances.

Avant de commencer

Limites

  • Avec un MIG régional, vous pouvez créer jusqu'à 2 000 VM dans une région, avec un maximum de 1 000 VM par zone. Avec un MIG zonal, vous pouvez créer jusqu'à 1 000 VM. Si vous en avez besoin d'un plus grand nombre, contactez l'assistance.
  • Lors de la mise à jour d'un MIG, vous pouvez spécifier jusqu'à 1 000 VM dans une même requête.
  • Vous ne pouvez pas créer un MIG avec plusieurs sous-réseaux. Une fois créé, vous ne pouvez pas modifier le réseau ou le sous-réseau dans un MIG.
  • Si vous souhaitez un MIG avec état, vérifiez les limites des MIG avec état.

  • Si vous souhaitez un MIG régional, consultez les limites applicables aux MIG régionaux.

  • Vous pouvez connecter un VPC partagé à des interfaces autres que nic0 pour les groupes d'instances gérés dans l'outil gcloud et l'API, mais pas dans Cloud Console.

MIG sans état ou avec état

Vous pouvez utiliser des MIG pour les charges de travail de diffusion ou par lot sans état, telles que l'interface d'un site Web ou le traitement d'images à partir d'une file d'attente, ou pour les applications avec état comme les bases de données ou les anciennes applications.

Utiliser des MIG pour les applications sans état

Les applications sans état ne dépendent pas de l'état spécifique de l'instance de machine virtuelle (VM) sous-jacente à exécuter. Si vous utilisez un MIG sans état, votre application ne doit pas dépendre des propriétés de VM qui ne persistent pas, telles que le contenu des disques associés ou des données en mémoire. Si votre application nécessite la conservation des propriétés de VM, consultez la section Configurer des MIG avec état.

Le comportement par défaut de tous les disques persistants d'un MIG consiste à les supprimer ou à les recréer lorsque la VM correspondante est supprimée ou recréée. Évitez donc de dépendre des disques associés pour conserver vos données persistantes. Pour conserver vos données dans un MIG sans état, nous vous recommandons de mettre régulièrement à jour vos images personnalisées à l'aide de logiciels et de configurations mis à jour, ou d'utiliser des scripts de démarrage et de configurer vos applications pour qu'elles sauvegardent les données nécessaires dans un autre emplacement centralisé, tel que Cloud Storage.

Dans vos modèles d'instance, vous pouvez spécifier une image de conteneur ou une image personnalisée avec des scripts de démarrage pertinents. Ainsi, lorsque vous recréez une VM, elle possède déjà les applications nécessaires et peut accéder aux données requises. Pour en savoir plus sur la création de modèles d'instances, consultez la section Modèles d'instances déterministes.

Utiliser des MIG pour des applications avec état

Les groupes d'instances gérés sont également compatibles avec les applications avec état. Un MIG avec état préserve l'état unique de chaque VM (nom d'instance de VM, disques persistants associés et/ou métadonnées) lors du redémarrage, de la recréation, de l'autoréparation ou de la mise à jour de la machine.

Utilisez des MIG avec état pour les applications contenant des données ou une configuration avec état, telles que des bases de données, des applications de traitement de données, des applications existantes et des charges de travail par lots de longue durée avec point de contrôle.

Envisagez d'utiliser des MIG avec état lorsque vous déployez une application ou un cluster avec état sur Compute Engine et que vous souhaitez améliorer sa disponibilité grâce à l'autoréparation et au déploiement multizone. Envisagez également de les utiliser si vous souhaitez simplifier et accélérer les mises à jour grâce à des mises à jour progressives automatiques.

Pour savoir comment créer un MIG avec état ou ajouter une configuration avec état à un MIG existant, consultez la section Configurer des MIG avec état.

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

Un MIG crée chacune de ses instances gérées en fonction des modèles d'instance et de la configuration avec état facultative que vous spécifiez. Chaque instance gérée est une entité de données dans le MIG qui contient l'état actuel et l'état souhaité d'une instance de VM. Les MIG maintiennent la haute disponibilité de vos applications en s'assurant de manière proactive que les VM existantes restent à l'état RUNNING.

Vous pouvez créer un MIG à l'aide de Google Cloud Console, de l'outil gcloud ou de l'API Compute Engine. Si vous préférez créer un MIG régional, consultez la page Créer des MIG régionaux.

Console

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

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

  2. Cliquez sur Créer un groupe d'instances.

  3. Si vous souhaitez créer un MIG avec état, sélectionnez l'option Nouveau groupe d'instances géré (avec état). Pour vous aider à faire votre choix, consultez la section Quand utiliser des MIG avec état.

  4. Nommez le MIG et sélectionnez la zone dans laquelle vous souhaitez localiser le groupe.

  5. Dans la section Type de groupe, sélectionnez Groupe d'instances géré.

  6. Dans la section Modèle d'instance, sélectionnez un modèle d'instance. Si aucun modèle n'est disponible, créez-en un.

  7. Spécifiez le nombre d'instances que vous souhaitez créer au sein du groupe.

  8. Pour les MIG sans état, vous pouvez éventuellement activer l'autoscaling pour que le groupe puisse ajouter ou supprimer automatiquement des instances en fonction de son utilisation.

  9. Vous pouvez également activer l'autoréparation pour pouvoir vérifier l'état des VM du groupe.

  10. Cliquez sur Créer pour créer le groupe.

gcloud

Créez un groupe d'instances à l'aide de la commande instance-groups managed create.

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --size SIZE \
    --template INSTANCE_TEMPLATE \
    --zone ZONE

Remplacez les éléments suivants :

  • INSTANCE_GROUP_NAME : nom du groupe d'instances.
  • SIZE : taille du groupe d'instances.
  • INSTANCE_TEMPLATE : nom du modèle d'instance à utiliser pour le groupe.
  • ZONE : une des zones disponibles pour Compute Engine. Si vous souhaitez créer un MIG régional, consultez la page Créer et gérer des MIG régionaux.

Vous pouvez éventuellement indiquer l'option --base-instance-name. Étant donné que ces VM sont basées sur un modèle commun, chaque VM se voit attribuer une chaîne aléatoire dans son nom. Cette chaîne aléatoire est précédée du nom de base. Par exemple, si vous définissez le nom de base sur test, les VM porteront des noms tels que test-yahs et test-qtyz. Si vous souhaitez attribuer un nom spécifique, consultez la section Créer des instances avec des noms spécifiques dans les MIG.

Par exemple, la commande suivante crée un groupe d'instances nommé "example-group", dont le nom de VM de base est test. Le groupe contient trois instances :

gcloud compute instance-groups managed create example-group \
    --base-instance-name test \
    --size 3 \
    --template an-instance-template

API

Appelez la méthode instanceGroupManagers.insert ou regionInstanceGroupManagers.insert. Dans le corps de la requête, spécifiez le nom du groupe, sa taille et l'URL du modèle d'instance.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers

{
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE"
    }
  ],
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": SIZE
}

Remplacez les éléments suivants :

  • PROJECT_ID : l'ID du projet pour la requête.
  • ZONE : zone de la requête Pour un MIG régional, remplacez zones/ZONE par regions/REGION et spécifiez une région. Pour en savoir plus, consultez la page Créer et gérer des MIG régionaux.
  • INSTANCE_GROUP_NAME : nom du groupe d'instances.
  • SIZE : taille du groupe d'instances.
  • INSTANCE_TEMPLATE : modèle d'instance à utiliser pour le groupe.

Vous pouvez éventuellement spécifier le champ base-name. Étant donné que ces VM sont basées sur un modèle commun, chaque VM se voit attribuer une chaîne aléatoire dans son nom. Cette chaîne aléatoire est précédée du nom de base. Par exemple, si vous définissez le nom de base sur test, les VM porteront des noms tels que test-yahs et test-qtyz. Si vous souhaitez attribuer un nom spécifique, consultez la section Créer des instances avec des noms spécifiques dans les MIG.

Selon votre configuration et votre utilisation du MIG, différentes règles et actions peuvent affecter les instances du groupe. Pour répertorier les instances gérées opérationnelles, consultez la section Vérifier l'état des instances gérées.

Modifier le modèle d'instance d'un groupe d'instances géré

Pour savoir comment appliquer un nouveau modèle d'instance à un MIG, consultez la page Mettre à jour des instances dans un MIG.

Redimensionner un groupe d'instances géré

Pour ajouter ou supprimer des VM dans un MIG, vous pouvez :

Redimensionner automatiquement un MIG

Vous pouvez configurer des groupes d'instances gérés pour ajouter ou supprimer automatiquement des VM en fonction de leurs charges de travail. Cela permet à vos applications de gérer de façon optimale les hausses de trafic, et vous aide à réduire vos coûts lorsque les besoins en ressources de calcul sont moins importants. Pour découvrir comment mettre à l'échelle vos groupes d'instances gérés, consultez la page Procéder à l'autoscaling de groupes d'instances.

Définir manuellement la taille d'un MIG

Si un groupe d'instances géré n'est pas déjà configuré pour le scaling automatique, vous pouvez le redimensionner manuellement afin de modifier le nombre d'instances qui le composent. Lorsque vous augmentez sa taille, le groupe d'instances géré exploite le modèle d'instance actuel pour ajouter de nouvelles instances. Si vous diminuez la taille, le groupe d'instances géré supprime les VM du groupe. Le groupe supprime d'abord les instances dont le champ currentAction correspond à DELETING, CREATING ou RECREATING avant de supprimer les instances en cours d'exécution sans action planifiée.

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.

Vous pouvez redimensionner un groupe d'instances géré à l'aide de Google Cloud Console, de l'outil gcloud ou de l'API Compute Engine.

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 dont vous souhaitez modifier la taille.

  3. Cliquez sur Modifier pour modifier le groupe d'instances géré.

  4. Dans la section Nombre d'instances, spécifiez le nombre d'instances que vous souhaitez inclure au sein du groupe. Si l'autoscaling est activé, le groupe ajoute ou supprime automatiquement des instances, si nécessaire. Vous pouvez toutefois modifier les champs Nombre minimal d'instances et Nombre maximal d'instances pour ajuster indirectement la taille du groupe par le biais d'un autoscaler.

  5. Cliquez sur Enregistrer pour appliquer le nouveau modèle.

gcloud

Exécutez la commande resize.

gcloud compute instance-groups managed resize INSTANCE_GROUP_NAME \
    --size NEW_SIZE \
    --zone ZONE

API

Appelez la méthode resize pour une ressource de MIG zonal ou régional. Spécifiez la nouvelle taille du groupe d'instances en tant que paramètre.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resize?size=NEW_SIZE

Si le groupe d'instances est un groupe d'instances géré régional, remplacez zones/ZONE par regions/REGION :

Après avoir effectué une requête pour redimensionner un groupe d'instances géré, les VM démarrent ou s'arrêtent dès que le système est en mesure de les provisionner ou de les supprimer. Ce processus peut prendre un certain temps selon le nombre d'instances au sein du groupe. Vérifiez l'état des instances de votre groupe d'instances géré.

Désactiver le mode de répétition des tentatives de création lors du redimensionnement

Par défaut, si la création initiale d'une instance de VM échoue, le groupe d'instances géré tente de créer la VM en continu jusqu'à ce que l'opération aboutisse. Toutefois, si vous ne souhaitez pas effectuer automatiquement de nouvelles tentatives de création, vous pouvez désactiver le mode de répétition des tentatives de création en définissant l'option --nocreation-retries lors du redimensionnement du groupe d'instances. Lorsque ce mode est activé, le groupe d'instances géré n'essaie de créer toutes les instances qu'une seule fois. Si une erreur se produit lors de la création de l'instance, le groupe d'instances géré abandonne cette instance, la supprime de la liste des instances gérées du groupe et diminue la taille cible du groupe d'instances géré.

Ce mode ne s'applique que lors de la première tentative de création d'une VM. Si la création réussit lorsque ce mode est activé, la VM se comporte de la même manière que toutes les autres VM créées avec une requête de redimensionnement standard. Plus précisément si une VM en cours d'exécution cesse de fonctionner de manière inattendue et doit être recréée par la suite, ce mode n'affecte pas le comportement de la recréation dans ce scénario.

Il est particulièrement utile de désactiver le mode de répétition des tentatives de création lorsque des systèmes créent automatiquement des groupes de VM qui n'ont pas besoin de disposer d'un nombre exact de VM. Vous préférerez peut-être choisir rapidement une taille fixe pour votre groupe d'instances géré et vous être plus flexible quant au nombre de VM, plutôt que d'attendre indéfiniment la fin de la création de toutes les instances demandées (qui pourrait être retardée de façon temporaire ou permanente en raison d'erreurs de quotas ou d'autres problèmes).

Pour redimensionner un groupe d'instances géré en ayant désactivé le mode de répétition des tentatives de création, utilisez l'outil gcloud ou l'API Compute Engine.

gcloud

Exécutez la commande bêta resize avec l'option --no-creation-retries.

gcloud beta compute instance-groups managed resize INSTANCE_GROUP_NAME --size NEW_SIZE \
    --no-creation-retries \
    --zone ZONE

API

Appelez la méthode bêta resizeAdvanced pour une ressource de MIG zonale. Spécifiez la nouvelle taille du groupe et le champ noCreationRetries dans le corps de la requête.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeAdvanced

{
 "targetSize": SIZE
 "noCreationRetries": true
}

Vous pouvez répertorier les instances en cours de création et vérifier leur mode de création à l'aide de la méthode listManagedInstances. Lorsque le mode de répétition des tentatives de création est désactivé, le champ currentAction des instances que vous créez est défini sur CREATING_WITHOUT_RETRIES.

Créer des instances avec des noms spécifiques dans les MIG

Si votre système dépend de noms spécifiques, vous pouvez créer des VM avec ces noms. Les noms que vous attribuez à ces instances gérées sont conservés si la VM est recréée. Consultez la section Ajouter des instances portant des noms spécifiques.

Supprimer des instances spécifiques d'un groupe

Vous pouvez supprimer des instances de VM individuelles dans un groupe d'instances géré. Cette opération réduit la valeur targetSize spécifiée pour le groupe d'instances et retire les VM des pools cibles auxquels elles appartiennent.

La suppression des instances d'un groupe géré n'entraîne aucune modification des paramètres d'autoscaler définis. Si vous supprimez des instances d'un groupe géré, l'autoscaler est susceptible de détecter une augmentation de la charge de travail sur les autres instances du groupe, et de lui réattribuer sa taille précédente. Pour éviter cela, désactivez ou supprimez 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.

Vous pouvez supprimer des instances d'un groupe d'instances géré à l'aide de Google Cloud Console, de l'outil gcloud ou de l'API Compute Engine.

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 section Membres, 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

Exécutez la commande delete-instances.

gcloud compute instance-groups managed delete-instances INSTANCE_GROUP_NAME \
    --instances example-i3n2,example-z2x9 \
    --zone ZONE

API

Appelez la méthode deleteInstances pour une ressource de MIG zonal ou régional. Dans le corps de la requête, spécifiez les URL des instances que vous souhaitez supprimer.

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"
 ]
}

Si le groupe d'instances est un groupe d'instances géré régional, remplacez zones/ZONE par regions/REGION :

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 des instances de votre groupe d'instances géré.

Abandonner des instances d'un groupe

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 VM individuelles sans affecter le groupe dans son ensemble. Lorsque vous abandonnez une instance, cette VM 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.

L'abandon d'instances réduit la taille targetSize spécifiée pour le groupe d'instances, mais n'entraîne aucune modification des paramètres d'autoscaler définis. Les groupes d'instances gérés dotés d'un autoscaler continuent d'ajouter ou de retirer automatiquement des VM, 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.

Vous pouvez abandonner des instances d'un groupe d'instances géré à l'aide de Google Cloud Console, de l'outil gcloud ou de l'API Compute Engine.

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 section Membres, sélectionnez une ou plusieurs instances à retirer du groupe dans la liste des instances.

  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 sans la supprimer, exécutez la commande abandon-instances.

gcloud compute instance-groups managed abandon-instances INSTANCE_GROUP_NAME \
    --instances example-i3n2,example-z2x9 \
    --zone ZONE

API

Appelez la méthode abandonInstances pour une ressource de MIG zonal ou régional. Dans le corps de la requête, spécifiez les URL des instances que vous souhaitez abandonner.

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"
 ]
}

Si le groupe d'instances est un groupe d'instances géré régional, remplacez zones/ZONE par regions/REGION :

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

Recréer des instances au sein du groupe

Lorsque vous recréez une instance gérée, cela supprime la VM spécifiée et en crée une autre à partir du modèle d'instance attribué au groupe d'instances géré.

Utilisez cette méthode pour mettre à jour les VM sélectionnées afin qu'elles utilisent le dernier modèle d'instance. 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.

Pour recréer des VM dans un groupe d'instances géré, vous pouvez utiliser l'outil gcloud ou l'API Compute Engine.

gcloud

Utilisez la commande recreate-instances.

gcloud compute instance-groups managed recreate-instances INSTANCE_GROUP_NAME \
    --instances example-i3n2,example-z2x9 \
    --zone ZONE

API

Appelez la méthode recreateInstances pour une ressource de MIG zonal ou régional. Dans le corps de la requête, spécifiez les URL des instances que vous souhaitez recréer.

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"
 ]
}

Si le groupe d'instances est un groupe d'instances géré régional, remplacez zones/ZONE par regions/REGION :

Une fois votre requête de recréation d'instances 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 des instances de votre groupe d'instances géré.

Supprimer un groupe d'instances géré

Lorsque vous supprimez un groupe d'instances géré, toutes les VM du groupe sont supprimées. Si vous devez conserver l'une des VM de ce groupe d'instances géré, abandonnez d'abord les instances pour retirer les VM du groupe. Supprimez ensuite le groupe d'instances géré.

Lorsque vous supprimez un groupe d'instances géré et ses instances à l'aide de Google Cloud Console ou de l'outil gcloud, tous les autoscalers associés sont automatiquement supprimés. Néanmoins, si vous utilisez l'API Compute Engine, vous devez d'abord envoyer des requêtes distinctes pour supprimer tous les autoscalers associés à autoscalers.delete ou regionAutoscalers.delete.

Console

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

    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 et toutes les VM du groupe d'instances géré.

gcloud

Utilisez la commande delete.

gcloud compute instance-groups managed delete INSTANCE_GROUP_NAME \
    --zone ZONE

API

Appelez la méthode delete pour une ressource de MIG zonal ou régional.

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME

Si le groupe d'instances est un groupe d'instances géré régional, remplacez zones/ZONE par regions/REGION :

Créer des groupes d'instances préemptives

Vous pouvez utiliser des groupes d'instances gérés pour créer rapidement plusieurs instances préemptives. Vous pouvez ainsi réduire les coûts des VM dans vos groupes d'instances gérés. Par exemple, vous pouvez créer un groupe d'instances préemptives, exécuter une tâche de traitement par lot à l'aide de ces instances, puis supprimer le groupe une fois la tâche terminée.

Pour créer un groupe d'instances préemptives, activez l'option "Préemption" dans un modèle d'instance, puis créez le groupe d'instances géré à partir du modèle.

Console

  1. Dans Cloud Console, accédez à la page Modèles d'instance.

    Accéder à la page Modèles d'instance

  2. Cliquez sur Nouveau modèle d'instance.

  3. Spécifiez les propriétés souhaitées dans votre modèle d'instance.

  4. Cliquez sur Afficher les options avancées pour développer la section Règles de disponibilité.

  5. Activez l'option Préemption.

  6. Cliquez sur Créer pour générer le modèle.

  7. Créez un groupe d'instances géré à partir du modèle.

gcloud

Créez un modèle d'instance à l'aide de la commande instance-templates create. Spécifiez l'option --preemptible.

gcloud compute instance-templates create INSTANCE_TEMPLATE \
    --preemptible

Une fois le modèle d'instance généré, créez un groupe d'instances géré à partir de celui-ci.

API

Appelez la méthode instanceTemplates.insert pour créer un modèle d'instance. Ajoutez la propriété scheduling.preemptible, puis définissez-la sur true.

{
"name": "INSTANCE_TEMPLATE",
"properties": {
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "networkInterfaces": [
    {
      "network": "global/networks/default",
      "accessConfigs":
      [
        {
          "name": "external-IP",
          "type": "ONE_TO_ONE_NAT"
        }
      ]
    }
  ],
  "scheduling":
  {
    "preemptible": true
  },
  "disks":
  [
    {
      "type": "PERSISTENT",
      "boot": true,
      "mode": "READ_WRITE",
      "initializeParams":
      {
        "sourceImage": "projects/debian-cloud/global/images/family/debian-9"
      }
    }
  ]
  }
}

Une fois le modèle d'instance généré, créez un groupe d'instances géré à partir de celui-ci.

Fonctionnement des champs instanceTemplate et versions

Lorsque vous créez un groupe d'instances géré, vous fournissez un modèle d'instance qui permet au groupe de créer des instances de VM individuelles. Par défaut, Compute Engine décrit le modèle d'instance utilisé dans deux propriétés distinctes de l'API Compute Engine : la propriété de niveau supérieur instanceTemplate et la propriété versions. Par exemple, dans le groupe d'instances géré suivant, les champs instanceTemplate et versions sont renseignés :

{

 "name": "example-group",
 "zone": "zones/us-central1-a",
 "instanceTemplate": "global/instanceTemplates/example-it",
 "versions": [
  {
   "name": "v3",
   "instanceTemplate": "global/instanceTemplates/example-it",
   "targetSize": {
    "calculated": 3
   }
  }
 ]...
}

Compute Engine renseigne automatiquement le champ de niveau supérieur instanceTemplate et le champ versions pour permettre la rétrocompatibilité. Nous vous recommandons de spécifier le champ versions et d'omettre le champ de niveau supérieur instanceTemplate dans la mesure du possible. Toutefois, si votre code d'application définit actuellement le champ de niveau supérieur instanceTemplate, la requête reste valide.

Pour en savoir plus, consultez la section Relation entre les champs "versions" et "instanceTemplate".

(Avancé) Créer des versions Canary des modèles d'instance avec un groupe d'instances géré

Vous pouvez créer un groupe d'instances géré composé de deux groupes de VM exploitant des modèles d'instance différents. Par exemple, vous voudrez peut-être créer un groupe d'instances géré comportant 20 instances de VM, mais n'en exécuter que 10 sur une image d'OS spécifique et exécuter le reste sur une autre image d'OS. Cette fonctionnalité vous permet de comparer les deux versions de modèle d'instance avant d'en choisir une.

Pour en savoir plus, consultez la section Mises à jour Canary.

Groupes d'instances gérés et IAM

Toutes les opérations effectuées par Compute Engine dans le groupe d'instances géré sont exécutées à l'aide de l'agent de service des API Google qui est associé à votre projet. Ce compte de service basé sur un projet possède une adresse e-mail au format suivant, où :

PROJECT_ID est l'ID numérique du projet correspondant :

PROJECT_ID@cloudservices.gserviceaccount.com

Le compte de service des API Google est différent du compte de service Compute Engine par défaut. Par défaut, l'agent de service des API Google dispose du rôle Éditeur (roles/editor) au niveau du projet, qui accorde les droits suffisants pour créer des ressources en fonction de la configuration du groupe. Si vous personnalisez l'accès pour l'agent de service des API Google, accordez le rôle roles/compute.instanceAdmin.v1 et, éventuellement, le rôle roles/iam.serviceAccountUser. Le rôle serviceAccountUser n'est requis que si le groupe d'instances géré crée des VM pouvant s'exécuter en tant que compte de service.

Notez que l'agent de service des API Google est également utilisé par d'autres processus, y compris Deployment Manager.

Lorsque vous créez un groupe d'instances géré ou mettez à jour un modèle d'instance, Compute Engine confirme que l'agent de service des API Google répond aux exigences suivantes :

  • Rôle serviceAccountUser. Le compte de service doit détenir ce rôle si vous envisagez de créer des instances pouvant s'exécuter en tant que compte de service.
  • Le compte de service doit être autorisé à accéder à toutes les ressources référencées dans les modèles d'instance, telles que des images, disques, réseaux VPC et sous-réseaux.

Pour en savoir plus sur les comptes de service, lisez la présentation des comptes de service.

Mettre à jour toutes les instances d'un groupe d'instances géré

Consultez la page Mettre à jour des instances dans un MIG.

Étapes suivantes