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 est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. Terraform

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

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

      Pour en savoir plus, consultez Set up authentication for a local development environment.

      REST

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

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

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 lors de redistributions interzones automatiques.
  • 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 la console Google Cloud, 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 apparaîtront automatiquement dans la console Google Cloud.

  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 \
    --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 : nom du modèle d'instance à utiliser lors de la création d'instances. Pour un modèle d'instance régional, vous devez spécifier l'URL complète ou partielle du modèle. https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template est un exemple d'URL complète et projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template est un exemple d'URL partielle.
  • 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 section 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 la page 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": "global/instanceTemplates/TEMPLATE"
    }
  ],
  "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.
  • TEMPLATE : nom du modèle d'instance à utiliser lors de la création d'instances.
  • 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 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