Créer un MIG utilisant des VM préemptives


Ce document explique comment créer un groupe d'instances géré (MIG) qui utilise des instances de VM préemptives. Les VM préemptives sont utiles si votre charge de travail peut tolérer des perturbations et que vous souhaitez tirer parti des économies associées aux VM préemptives.

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

Avant de commencer

  • 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 :

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

    Console

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

    gcloud

    1. Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init
    2. 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 gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.

    1. Installez Google Cloud CLI.
    2. Pour initialiser gcloudCLI, exécutez la commande suivante :

      gcloud init
    3. Créez des identifiants d'authentification locaux pour votre compte Google :

      gcloud auth application-default login

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

    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.

      Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init

Limites

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 modèle d'instance avec des VM préemptives

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

Pour créer un groupe de VM préemptives, activez l'option "Préemption" dans un modèle d'instance, puis créez le MIG à partir de ce modèle.

Console

  1. Dans la console, accédez à la page Modèles d'instances.

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

    Les étapes restantes apparaîtront automatiquement dans la console Google Cloud.

  2. Cliquez sur Créer un modèle d'instance.
  3. Spécifiez les propriétés souhaitées pour votre modèle d'instance.
  4. Cliquez sur Options avancées, puis développez la section Gestion.
  5. Sous Règle de disponibilité, dans la liste Modèle de provisionnement de VM, sélectionnez Spot.
  6. Cliquez sur Créer pour générer le 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

Terraform

L'exemple suivant crée un modèle d'instance global. Pour fournir l'option "Préemption", incluez le bloc scheduling. Pour en savoir plus sur la ressource utilisée dans l'exemple, consultez la section consacrée à la ressource google_compute_instance_template. Pour créer un modèle d'instance régional, utilisez la ressource google_compute_region_instance_template.

resource "google_compute_instance_template" "default" {
  name         = "preemptible-template"
  machine_type = "n1-standard-1"
  disk {
    source_image = "debian-cloud/debian-11"
  }
  network_interface {
    network = "default"
  }
  scheduling {
    preemptible       = "true"
    automatic_restart = "false"
  }
}

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

REST

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é, utilisez-le pour créer un MIG avec des VM limitées à une seule zone ou avec des VM réparties sur plusieurs zones d'une même région.

Étape suivante

  • Configurez l'autoréparation basée sur l'application, qui vérifie périodiquement que votre application répond comme prévu sur chacune des VM du MIG et recrée automatiquement les VM qui ne répondent pas.
  • Activez l'autoscaling pour ajouter ou supprimer automatiquement des VM dans votre groupe d'instances géré en fonction de l'augmentation ou de la diminution de la charge.
  • Découvrez comment appliquer une nouvelle configuration à un sous-ensemble ou à l'ensemble des VM d'un MIG en définissant et en appliquant un nouveau modèle d'instance, une configuration sur toutes les instances, ou une configuration par instance.
  • Préservez les disques, les métadonnées et les adresses IP lors d'événements perturbateurs tels que la recréation, l'autoréparation et la mise à jour de VM en ajoutant une configuration avec état.
  • Découvrez comment utiliser des instances gérées, par exemple pour supprimer, abandonner et recréer des VM dans un MIG.
  • Affichez les informations sur les MIG et leurs VM.