Créer une instance à partir d'une image partagée


Ce document explique comment créer une instance Compute Engine à partir d'une image personnalisée partagée par un autre projet.

Une instance contient un bootloader, un système de fichiers de démarrage et une image de l'OS. Vous pouvez créer des images personnalisées à partir de disques, d'images, d'instantanés ou d'images sources stockées dans Cloud Storage, puis les utiliser pour créer des instances. Par défaut, une image personnalisée n'appartient qu'au projet dans lequel elle a été créée. Si un autre utilisateur a partagé une image avec vous, vous pouvez utiliser cette image pour créer une instance.

Avant de commencer

  • Lorsque vous créez des instances à partir d'images à l'aide de Google Cloud CLI ou de l'API Compute Engine, la limite est de 20 instances par seconde. Si vous devez créer un nombre plus élevé d'instances par seconde, demandez une augmentation de limite de quota pour la ressource Images.
  • 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 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:

    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. 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.

Rôles requis

Pour obtenir les autorisations nécessaires pour créer une instance à partir d'une image partagée, demandez à votre administrateur de vous accorder le rôle IAM Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour créer une instance à partir d'une image partagée. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour créer une instance à partir d'une image partagée:

  • compute.instances.create sur le projet
  • Pour créer l'instance à l'aide d'une image partagée : compute.images.useReadOnly sur l'image

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Créer une instance à partir d'une image partagée

Pour créer une instance à partir d'une image partagée, procédez comme suit:

Console

  1. Dans la console Google Cloud, accédez à la page Créer une instance.

    Accéder à la page Créer une instance

    Si vous y êtes invité(e), sélectionnez votre projet et cliquez sur Continuer.

    La page Créer une instance s'affiche et affiche le volet Configuration de la machine.

  2. Dans le volet Configuration de la machine, procédez comme suit:

    1. Dans le champ Nom, spécifiez un nom pour votre instance. Pour en savoir plus, consultez la section Convention d'attribution de noms aux ressources.
    2. Facultatif: dans le champ Zone, sélectionnez une zone pour cette instance.

      La sélection par défaut est Tout. Si vous ne modifiez pas cette sélection par défaut, Google choisit automatiquement une zone en fonction du type de machine et de la disponibilité.

    3. Sélectionnez la famille de machines pour votre instance. La console Google Cloud affiche ensuite les séries de machines disponibles pour la famille de machines sélectionnée. Les options de famille de machines suivantes sont disponibles:

      • Général
      • Optimisé pour le calcul
      • Mémoire optimisée
      • Optimisé pour le stockage
      • GPU

    4. Dans la colonne Série, sélectionnez la série de machines de votre instance.

      Si vous avez sélectionné GPU comme famille de machines à l'étape précédente, sélectionnez le type de GPU souhaité. La série de machines est ensuite automatiquement sélectionnée pour le type de GPU sélectionné.

    5. Dans la section Type de machine, sélectionnez le type de machine pour votre instance.

  3. Dans le menu de navigation, cliquez sur OS et stockage. Dans le volet Système d'exploitation et stockage qui s'affiche, configurez votre disque de démarrage en procédant comme suit:

    1. Cliquez sur Modifier. Le volet Disque de démarrage s'affiche et affiche l'onglet Images publiques.
    2. Cliquez sur Custom images (Images personnalisées). L'onglet Images personnalisées s'affiche.
    3. Pour sélectionner le projet d'image, cliquez sur Modifier, puis sélectionnez le projet contenant l'image.
    4. Dans la liste Image, sélectionnez l'image que vous souhaitez importer.
    5. Dans la liste Type de disque de démarrage, sélectionnez le type de disque de démarrage.
    6. Dans le champ Taille (Go), spécifiez la taille du disque de démarrage.
    7. Facultatif: pour afficher les options de configuration avancées, développez la section Afficher les configurations avancées.
    8. Pour confirmer vos options de disque de démarrage et revenir au volet Système d'exploitation et espace de stockage, cliquez sur Sélectionner.
  4. Dans le menu de navigation, cliquez sur Mise en réseau. Dans le volet Networking (Mise en réseau) qui s'affiche, procédez comme suit:

    1. Accédez à la section Pare-feu.
    2. Pour autoriser le trafic HTTP ou HTTPS vers l'instance, sélectionnez Autoriser le trafic HTTP ou Autoriser le trafic HTTPS.

      Compute Engine ajoute un tag réseau à votre instance et crée la règle de pare-feu d'entrée correspondante, qui autorise l'intégralité du trafic entrant sur tcp:80 (HTTP) ou tcp:443 (HTTPS). Le tag réseau associe la règle de pare-feu à l'instance. Pour en savoir plus, consultez la section Présentation des règles de pare-feu dans la documentation sur le pare-feu Cloud nouvelle génération.

  5. Facultatif: spécifiez d'autres options de configuration. Pour en savoir plus, consultez la section Options de configuration lors de la création d'une instance.

  6. Pour créer et démarrer l'instance, cliquez sur Créer.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Créez une instance à l'aide de gcloud compute instances create command, et utilisez les options --image et --image-project pour spécifier le nom de l'image et le projet où réside l'image:

    gcloud compute instances create INSTANCE_NAME \
    --image=IMAGE \
    --image-project=IMAGE_PROJECT
    

    Remplacez les éléments suivants :

    • INSTANCE_NAME: nom de la nouvelle instance
    • IMAGE : nom de l'image.
    • IMAGE_PROJECT: projet auquel l'image appartient

    Si la commande réussit, gcloud envoie une réponse contenant les propriétés de la nouvelle instance, comme dans l'exemple suivant:

    Created [https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-b/instances/example-instance].
    NAME                 ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
    example-instance     us-central1-b  e2-standard-2               10.240.0.4   104.198.53.60  RUNNING
    

Terraform

Le processus de création d'une instance avec une image partagée dans Terraform est identique à celui consistant à créer une instance avec une image accessible publiquement.

  1. Dans Google Cloud Console, accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  2. Cliquez sur Créer une instance.
  3. Spécifiez les paramètres souhaités.
  4. En haut ou en bas de la page, cliquez sur Code équivalent, puis sur l'onglet Terraform pour afficher le code Terraform.

REST

Le processus de création d'une instance avec une image partagée dans l'API est identique à celui consistant à créer une instance avec une image accessible publiquement.

Pour créer l'instance à partir d'une image partagée, utilisez la méthode instances.insert.

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

{
   "machineType":"zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
   "name":"VM_NAME",
   
   "disks":[
      {
         "initializeParams":{
            "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE"
         },
         "boot":true
      }
   ],
   
   
   "networkInterfaces":[
      {
         "network":"global/networks/NETWORK_NAME"
      }
   ],
   
  
   "shieldedInstanceConfig":{
      "enableSecureBoot":"ENABLE_SECURE_BOOT"
   }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel créer la VM
  • ZONE : zone dans laquelle créer la VM
  • MACHINE_TYPE_ZONE : zone contenant le type de machine à utiliser pour la nouvelle VM
  • MACHINE_TYPE : type de machine prédéfini ou personnalisé pour la nouvelle VM
  • VM_NAME : nom de la nouvelle VM.
  • IMAGE_PROJECT : nom du projet contenant l'image partagée.
  • IMAGE: spécifiez l'une des options suivantes :
    • IMAGE : nom de l'image partagée. Exemple : "sourceImage": "projects/finance-project-1234/global/images/finance-debian-image-v2".
    • IMAGE_FAMILY : si l'image partagée est créée dans le cadre d'une famille d'images personnalisées, spécifiez cette famille.

      Cette action crée la VM à partir de l'image d'OS la plus récente et non obsolète de votre famille d'images personnalisée. Par exemple, si vous spécifiez "sourceImage": "projects/finance-project-1234/global/images/family/finance-debian-family", Compute Engine crée une VM à partir de la dernière version de l'image de l'OS dans la famille d'images finance-debian-family personnalisées.

  • NETWORK_NAME : réseau VPC que vous souhaitez utiliser pour la VM. Vous pouvez spécifier default pour utiliser votre réseau par défaut.
  • ENABLE_SECURE_BOOT (facultatif) : si vous avez choisi une image compatible avec les fonctionnalités de VM protégée, Compute Engine active par défaut le module vTPM et la surveillance de l'intégrité. Compute Engine n'active pas le démarrage sécurisé par défaut.

    Si vous spécifiez true pour enableSecureBoot, Compute Engine crée une VM avec les trois fonctionnalités de VM protégée activées. Une fois que Compute Engine a démarré votre VM, vous devez l'arrêter pour modifier les options de VM protégée.

Étape suivante