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 :

    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

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 s'affichent 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.