Créer un MIG avec des disques avec état

Ce document explique comment créer un groupe d'instances géré (MIG) qui conserve les données sur disques avec un nom d'appareil donné pour toutes les VM du MIG, même en cas de recréation de VM, par exemple lorsqu'une VM du MIG est autoréparée, mise à jour ou recréée. La conservation des disques est utile pour certaines charges de travail, par exemple pour les bases de données ou les anciennes applications.

En plus de conserver les disques pour toutes les VM du groupe, vous pouvez également configurer un MIG avec état pour les éléments suivants :

  • Vous pouvez ajouter et conserver des disques spécifiques à une instance.
  • Vous pouvez ajouter et conserver des métadonnées spécifiques à une instance.
  • Vous pouvez ajouter et conserver des adresses IP.

Pour en savoir plus, consultez la présentation des MIG avec état.

Vous pouvez également découvrir d'autres scénarios de base pour la création d'un MIG.

Avant de commencer

  • Créez un modèle d'instance, qui est nécessaire pour créer un groupe d'instances géré.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification permet de valider votre identité pour accéder aux Google Cloud services et aux API. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la Google Cloud console pour accéder aux Google Cloud services et aux API, vous n'avez pas besoin de configurer l'authentification.

    gcloud

    1. Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisezla en exécutant la commande suivante :

      gcloud init

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  • Définissez une région et une zone par défaut.
  • Terraform

    Pour utiliser les exemples Terraform de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez le service Identifiants par défaut de l'application avec vos identifiants utilisateur.

    1. Installez la Google Cloud CLI.

    2. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

    3. Si vous utilisez un shell local, créez des identifiants d'authentification locaux pour votre compte utilisateur :

      gcloud auth application-default login

      Vous n'avez pas besoin de le faire si vous utilisez Cloud Shell.

      Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.

    Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

    REST

    Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.

      Installez la Google Cloud CLI.

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

    Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l' Google Cloud authentification.

Limites

Un MIG doté d'une configuration avec état (un MIG avec état) présente les limites suivantes :

  • Vous ne pouvez pas utiliser l'autoscaling si votre MIG dispose d'une configuration avec état.
  • Si vous souhaitez utiliser des mises à jour progressives automatiques, vous devez définir la méthode de remplacement sur RECREATE.
  • Pour les MIG régionaux avec état, vous devez désactiver la redistribution proactive (définissez le type de redistribution sur NONE) pour empêcher la suppression d'instances avec état en cas de redistribution interzone automatique.
  • Si vous utilisez une configuration sur toutes les instances pour remplacer les propriétés d'un modèle d'instance, vous ne pouvez pas spécifier ces propriétés à la fois dans une configuration par instance et dans une configuration sur toutes les instances du groupe.

Pour afficher la liste complète des limites des MIG, qui varie en fonction de la configuration que vous utilisez, consultez la section Limites des MIG.

Créer un MIG avec des disques avec état

Utilisez le Google Cloud console, la gcloud CLI, Terraform ou REST.

Console

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

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

    Les étapes restantes s'affichent dans la Google Cloud console.

  2. Cliquez sur Créer un groupe d'instances.
  3. Sélectionnez l'option Nouveau groupe d'instances géré (avec état).
  4. Attribuez un nom et éventuellement une description à votre groupe d'instances.
  5. Choisissez un modèle d'instance pour le groupe d'instances ou créez-en un.
  6. Dans le champ Nombre d'instances, spécifiez le nombre initial de VM dont vous avez besoin dans ce groupe.
  7. Dans la section Configuration avec état, sous Configuration du groupe, cliquez sur le disque à définir avec état, puis procédez comme suit.
    1. Dans la section Avec état, sélectionnez Oui.
    2. Dans la liste Lors de la suppression définitive de l'instance, indiquez si vous souhaitez dissocier ou supprimer le disque lorsque vous supprimez définitivement la VM.
    3. Pour enregistrer les paramètres, cliquez sur OK.
  8. Pour créer le MIG, cliquez sur Créer.

gcloud

Pour spécifier les disques du modèle d'instance qui doivent être avec état lors de la création d'un MIG, utilisez l'option --stateful-disk avec la commande gcloud compute instance-groups managed create :

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template INSTANCE_TEMPLATE_URL \
    --size SIZE \
    --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]

Remplacez les éléments suivants :

  • INSTANCE_GROUP_NAME: nom du groupe d'instances géré à créer.
  • INSTANCE_TEMPLATE_URL: URL du modèle d'instance que vous souhaitez utiliser pour créer des instances dans le MIG. L'URL peut contenir l' ID ou le nom du modèle d'instance. Spécifiez une des valeurs suivantes :
    • Pour un modèle d'instance régional : projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Pour un modèle d'instance global : INSTANCE_TEMPLATE_ID
  • SIZE: nombre initial de VM dont vous avez besoin dans ce groupe.
  • DEVICE_NAME : nom de l'appareil d'un disque spécifié dans le modèle d'instance.
  • DELETE_RULE : valeur qui indique ce qui doit arriver à un disque avec état lorsqu'une VM est supprimée. Les options disponibles sont les suivantes :

    • never : (Par défaut) Ne supprimez jamais le disque. À la place, dissociez le disque lorsque sa VM est supprimée.
    • on-permanent-instance-deletion : supprimez le disque lorsque son instance de VM est définitivement supprimée du groupe d'instances, par exemple lorsque l'instance gérée est supprimée manuellement ou lorsque la taille du groupe est réduite.

    Quelle que soit la valeur de la règle de suppression, les disques avec état sont toujours conservés lors des opérations d'autoréparation, de mise à jour et de recréation de VM.

Terraform

Si vous n'avez pas encore créé de modèle d'instance, qui spécifie le type de machine, l'image de disque de démarrage, le réseau et les autres propriétés de VM que vous souhaitez pour chaque VM de votre MIG, créez Un modèle d'instance.

Pour spécifier les disques du modèle d'instance qui doivent être avec état lors de la création d'un MIG, incluez le bloc stateful_disk. L'exemple suivant crée un MIG zonal avec des disques avec état. Pour en savoir plus sur la ressource utilisée dans l'exemple, consultez la ressource google_compute_instance_group_manager.

resource "google_compute_instance_group_manager" "default" {
  name               = "igm-stateful-disk-basic"
  zone               = "us-central1-f"
  base_instance_name = "instance"
  target_size        = 1

  version {
    instance_template = google_compute_instance_template.default.id
  }

  stateful_disk {
    device_name = "example-disk"
    delete_rule = "NEVER"
  }

}

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.

REST

Pour spécifier les disques du modèle d'instance qui doivent être avec état lors de la création d'un MIG, incluez-les dans le champ statefulPolicy du corps de la requête. Pour un MIG zonal, utilisez la méthode instanceGroupManagers.insert ou, pour un MIG régional, la méthode regionInstanceGroupManagers.insert.

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

{
  "name": "NAME",
  "versions": [
    {
      "instanceTemplate": "INSTANCE_TEMPLATE_URL"
    }
  ],
  "targetSize": SIZE,
  "statefulPolicy": {
    "preservedState": {
      "disks": {
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" },
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }
      }
    }
  }
}

Remplacez les éléments suivants :

  • PROJECT : ID du projet pour la requête.
  • ZONE : zone où se trouve le MIG (s'applique à un MIG zonal).
    • Pour un MIG régional, remplacez zones/ZONE par regions/REGION et spécifiez la région du MIG.
  • NAME: nom du MIG à créer.
  • INSTANCE_TEMPLATE_URL: URL du modèle d'instance que vous souhaitez utiliser pour créer des instances dans le MIG. L'URL peut contenir l' ID ou le nom du modèle d'instance. Spécifiez une des valeurs suivantes :
    • Pour un modèle d'instance régional : projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Pour un modèle d'instance global : INSTANCE_TEMPLATE_ID
  • SIZE: nombre initial d'instances dont vous avez besoin dans ce groupe.
  • DEVICE_NAME : nom de l'appareil d'un disque spécifié dans le modèle d'instance.
  • DELETE_RULE : valeur qui indique ce qui doit arriver au disque avec état lorsque l'instance de VM est supprimée. Les options disponibles sont les suivantes :

    • never : (Par défaut) Ne supprimez jamais le disque. Dissociez le disque lorsque la VM est supprimée.
    • on_permanent_instance_deletion : supprimez le disque avec état lorsque sa VM est définitivement supprimée du groupe d'instances, par exemple lorsque l'instance gérée est supprimée manuellement ou lorsque la taille du groupe est réduite.

    Quelle que soit la valeur de la règle de suppression, les disques avec état sont toujours conservés lors des opérations d'autoréparation, de mise à jour et de recréation d'instances.

Étape suivante