Vous pouvez créer des images personnalisées à partir de disques, d'images, d'instantanés sources ou d'images stockées dans Cloud Storage, puis utiliser ces images pour créer des instances de machines virtuelles (VM). Les images personnalisées sont idéales lorsque vous avez créé et modifié un disque de démarrage persistant ou une image spécifique dans un certain état et devez enregistrer cet état pour créer des VM.
Vous pouvez également utiliser l'outil d'importation de disque virtuel pour importer des images de disque de démarrage dans Compute Engine à partir de vos systèmes existants et les ajouter à votre liste d'images personnalisée.
.Avant de commencer
- Si vous souhaitez utiliser les exemples de ligne de commande de ce guide, procédez comme suit :
- Installez la dernière version de Google Cloud CLI ou appliquez la mise à jour correspondante.
- Définissez une région et une zone par défaut.
- Si vous voulez utiliser les exemples d'API de ce guide, configurez l'accès aux API.
- Consultez l'article Images.
Créer une image personnalisée
Cette section explique comment créer une image personnalisée sur une VM Linux. Pour en savoir plus sur la création d'une image Windows, consultez la page Créer une image Windows.
Sélectionner un emplacement de stockage d'images
Lors de la création d'une image personnalisée, vous pouvez spécifier son emplacement dans Cloud Storage, en excluant les emplacements birégionaux. En spécifiant l'emplacement de stockage de l'image, vous répondez aux exigences réglementaires et de conformité liées à la localisation des données ainsi qu'à vos exigences de haute disponibilité, en assurant la redondance entre régions. Pour créer, modifier et supprimer des images stockées dans Cloud Storage, vous devez disposer de roles/compute.storageAdmin
.
La fonctionnalité d'emplacement de stockage est facultative. Si vous ne sélectionnez pas d'emplacement, Compute Engine stocke votre image dans l'emplacement multirégional le plus proche de l'image source. Par exemple, si vous créez une image à partir d'un disque source situé dans us-central1
et que vous ne spécifiez pas d'emplacement pour l'image personnalisée, Compute Engine stocke l'image dans l'emplacement multirégional us
.
Si l'image n'est pas disponible dans une région où vous créez une VM, Compute Engine la met en cache dans cette région la première fois que vous créez une VM.
Pour connaître l'emplacement de stockage actuel d'une image, exécutez la commande images describe
de gcloud compute
:
gcloud compute images describe IMAGE_NAME \ --project=PROJECT_ID
Remplacez l'élément suivant :
IMAGE_NAME : nom de votre image.
PROJECT_ID : l'ID de projet auquel appartient l'image.
Toutes les images existant avant le lancement de cette fonctionnalité restent à leur emplacement. La seule différence est que vous pouvez consulter l'emplacement de toutes vos images. Si vous souhaitez déplacer une image existante, vous devez la recréer à l'emplacement souhaité.
Préparer votre VM pour une image
Vous pouvez créer une image à partir d'un disque même si celui-ci est associé à une machine virtuelle en cours d'exécution. Cependant, votre image sera plus fiable si vous placez la VM dans un état rendant l'image plus facile à capturer. Cette section explique comment préparer votre disque de démarrage pour l'image.
Réduire l'écriture de données sur le disque persistant
Utilisez l'un des processus suivants pour réduire les écritures de disque :
Arrêtez la VM afin qu'elle puisse s'interrompre et arrêtez toute écriture de données sur le disque persistant.
Si vous ne pouvez pas arrêter votre VM avant de créer l'image, réduisez la quantité d'écritures sur le disque et synchronisez votre système de fichiers. Pour minimiser l'écriture sur votre disque persistant, procédez comme suit :
- Mettez en veille les applications ou les processus du système d'exploitation qui écrivent des données sur ce disque persistant.
- Si nécessaire, exécutez une application pour vider le disque. Par exemple, MySQL possède une instruction
FLUSH
. D'autres applications peuvent avoir des processus similaires. - Empêchez vos applications d'écrire sur votre disque persistant.
- Exécutez
sudo sync
.
Désactiver l'option de suppression automatique du disque
Par défaut, l'option de suppression automatique est activée sur les disques de démarrage. Avant de créer une image à partir d'un disque, désactivez la suppression automatique pour vous assurer que le disque ne sera pas automatiquement supprimé lorsque vous supprimerez la VM.
Vous pouvez utiliser Google Cloud Console, Google Cloud CLI ou l'API Compute Engine pour désactiver la suppression automatique du disque.
Console
Dans Google Cloud Console, accédez à la page Instances de VM.
Cliquez sur la VM que vous utilisez comme source pour créer une image. La page Informations sur l'instance de VM s'affiche.
Cliquez sur Modifier.
Dans la section Disque de démarrage, pour la Règle de suppression, assurez-vous que l'option Conserver le disque est sélectionnée.
Cliquez sur Enregistrer.
gcloud
Dans Google Cloud CLI, exécutez la commande gcloud compute instances set-disk-auto-delete
pour désactiver l'option de suppression automatique du disque.
gcloud compute instances set-disk-auto-delete VM_NAME \ --no-auto-delete \ --disk=SOURCE_DISK
Remplacez les éléments suivants :
VM_NAME
: nom de votre instance de VM.SOURCE_DISK
: nom du disque à partir duquel vous souhaitez créer l'image.
API
Pour définir l'option de suppression automatique d'un disque, envoyez une requête POST
à la méthode instances.setDiskAutoDelete
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setDiskAutoDelete?autoDelete=false&deviceName=SOURCE_DISK
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet auquel appartient la VM source.ZONE
: zone où se trouve la VM source.VM_NAME
: nom de la VM source.SOURCE_DISK
: nom d'appareil du disque à partir duquel vous souhaitez créer l'image.
Après avoir préparé la VM, créez l'image.
Créer l'image
Vous pouvez créer des images de disque à partir des sources suivantes :
- Un disque persistant, même lorsque ce disque est associé à une VM
- Un instantané d'un disque persistant
- Une autre image dans votre projet
- Une image partagée par un autre projet
- Une image RAW compressée dans Google Cloud Storage
Vous pouvez créer une image disque toutes les dix minutes. Si vous souhaitez effectuer une série de requêtes de création d'images disque, vous ne pouvez pas émettre plus de six requêtes en 60 minutes. Pour en savoir plus, consultez la section Limites de fréquence des instantanés.
Console
Dans Google Cloud Console, accédez à la page Créer une image.
Indiquez le Nom de votre image.
Spécifiez la Source à partir de laquelle vous souhaitez créer une image. Il peut s'agir d'un disque persistant, d'un instantané, d'une autre image ou d'un fichier au format disk.raw dans Google Cloud Storage.
Si vous créez une image à partir d'un disque associé à une VM en cours d'exécution, cochez l'option Conserver l'instance en cours d'exécution pour confirmer que vous souhaitez créer l'image pendant l'exécution de la VM. Vous pouvez préparer votre VM avant de créer l'image.
Dans la liste déroulante Basée sur l'emplacement du disque source (par défaut), spécifiez l'emplacement de stockage de l'image. Par exemple, spécifiez
us
pour stocker l'image dans l'emplacement multirégionalus
, ouus-central1
pour la stocker dans la régionus-central1
. Si vous ne sélectionnez pas d'emplacement, Compute Engine stocke l'image dans l'emplacement multirégional le plus proche de l'emplacement source de votre image.Facultatif : spécifiez les propriétés de votre image.
- Famille : famille d'images à laquelle cette nouvelle image appartient.
- Description : description de votre image personnalisée.
- Libellé : libellé permettant de regrouper les ressources.
Spécifiez la clé de chiffrement. Vous pouvez choisir entre une clé gérée par Google, une clé Cloud Key Management Service (Cloud KMS) ou une clé de chiffrement fournie par le client (CSEK). Si aucune clé de chiffrement n'est spécifiée, les images sont chiffrées à l'aide d'une clé gérée par Google.
Cliquez sur Créer pour créer l'image.
gcloud
Dans Google Cloud CLI, utilisez la commande gcloud compute images create
pour créer une image personnalisée.
Créer une image à partir d'un disque source :
L'option --force
est une option facultative qui vous permet de créer l'image à partir d'une instance en cours d'exécution. Par défaut, vous ne pouvez pas créer d'images à partir d'instances en cours d'exécution. Ne spécifiez cette option que si vous êtes certain de vouloir créer l'image pendant que l'instance est en cours d'exécution.
gcloud compute images create IMAGE_NAME \ --source-disk=SOURCE_DISK \ --source-disk-zone=ZONE \ [--family=IMAGE_FAMILY] \ [--storage-location=LOCATION] \ [--force]
Remplacez l'élément suivant :
IMAGE_NAME
: nom de la nouvelle image.SOURCE_DISK
: disque à partir duquel vous souhaitez créer l'image.ZONE
: zone où se trouve le disque.IMAGE_FAMILY
: option facultative spécifiant la famille d'images à laquelle cette image appartient.LOCATION
: option facultative permettant de spécifier la région ou l'emplacement multirégional dans lequel l'image est stockée. Par exemple, spécifiezus
pour stocker l'image dans l'emplacement multirégionalus
, ouus-central1
pour la stocker dans la régionus-central1
. Si vous ne sélectionnez pas d'emplacement, Compute Engine stocke l'image dans l'emplacement multirégional le plus proche de l'emplacement source de votre image.
Créer une image à partir d'une image source :
gcloud compute images create IMAGE_NAME \ --source-image=SOURCE_IMAGE \ [--source-image-project=IMAGE_PROJECT] \ [--family=IMAGE_FAMILY] \ [--storage-location=LOCATION]
Remplacez les éléments suivants :
IMAGE_NAME
: nom de la nouvelle image.SOURCE_IMAGE
: image à partir de laquelle vous souhaitez créer l'image.IMAGE_PROJECT
: projet contenant l'image source (facultatif). Utilisez ce paramètre si vous souhaitez copier une image d'un autre projet.IMAGE_FAMILY
: option facultative spécifiant la famille d'images à laquelle cette nouvelle image appartient.LOCATION
: option facultative permettant de spécifier la région ou l'emplacement multirégional dans lequel l'image est stockée. Par exemple, spécifiezus
pour stocker l'image dans l'emplacement multirégionalus
, ouus-central1
pour la stocker dans la régionus-central1
. Si vous ne sélectionnez pas d'emplacement, Compute Engine stocke l'image dans l'emplacement multirégional le plus proche de la source de l'image.
Créer une image à partir d'un instantané :
gcloud compute images create IMAGE_NAME \ --source-snapshot=SOURCE_SNAPSHOT \ [--storage-location=LOCATION]
Remplacez l'élément suivant :
IMAGE_NAME
: nom de la nouvelle image.SOURCE_SNAPSHOT
: instantané à partir duquel vous souhaitez créer l'image.LOCATION
: option facultative permettant de spécifier la région ou l'emplacement multirégional dans lequel l'image est stockée. Par exemple, spécifiezus
pour stocker l'image dans l'emplacement multirégionalus
, ouus-central1
pour la stocker dans la régionus-central1
. Si vous ne sélectionnez pas d'emplacement, Compute Engine stocke l'image dans l'emplacement multirégional le plus proche de l'emplacement source de votre image.
Afficher l'emplacement d'une image :
Exécutez la commande gcloud compute images describe
pour afficher l'emplacement d'une image.
gcloud compute images describe IMAGE_NAME
Remplacez IMAGE_NAME
par le nom de l'image que vous souhaitez examiner.
API
Envoyez une requête POST
à la méthode images().insert
, une URL dans le corps de la requête pointant vers l'objet source à partir duquel vous souhaitez créer l'image. Spécifiez les URL de vos ressources en utilisant vos propres ID de projet et noms de ressources.
Créer une image à partir d'un disque persistant :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images { "name": "IMAGE_NAME", "sourceDisk": "/zones/ZONE/disks/SOURCE_DISK", ("storageLocations": "LOCATION",) ("forceCreate": "TRUE") }
Remplacez l'élément suivant :
PROJECT_ID
: l'ID de projet auquel appartient l'image.IMAGE_NAME
: nom de la nouvelle image que vous souhaitez créer.ZONE
: zone où se trouve le disque source.SOURCE_DISK
: disque à partir duquel vous souhaitez créer l'image.LOCATION
: emplacement de stockage de votre image (facultatif). Par exemple, spécifiezus
pour stocker l'image dans l'emplacement multirégionalus
, ouus-central1
pour la stocker dans la régionus-central1
. Si vous ne sélectionnez pas d'emplacement, Compute Engine stocke l'image dans l'emplacement multirégional le plus proche de l'emplacement source de votre image.
Le paramètre facultatif forceCreate
vous permet de créer l'image à partir d'une VM en cours d'exécution. Spécifiez TRUE
uniquement si vous êtes certain de vouloir créer l'image à partir d'une VM en cours d'exécution. Le paramètre par défaut de forceCreate
est FALSE
.
Créer une image à partir d'une autre image :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images { "name": "IMAGE_NAME", "sourceImage": "/global/images/SOURCE_IMAGE", ("storageLocations": "LOCATION") }
Remplacez les éléments suivants :
PROJECT_ID
: projet auquel appartient l'image.IMAGE_NAME
: nom de la nouvelle image que vous souhaitez créer.SOURCE_IMAGE
: image à partir de laquelle vous souhaitez créer l'image.LOCATION
: emplacement de stockage de votre image (facultatif). Par exemple, spécifiezus
pour stocker l'image dans l'emplacement multirégionalus
, ouus-central1
pour la stocker dans la régionus-central1
. Si vous ne sélectionnez pas d'emplacement, Compute Engine stocke l'image dans l'emplacement multirégional le plus proche de la source de l'image.
Créer une image à partir d'un instantané :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images { "name": "IMAGE_NAME", "sourceSnapshot": "(/SOURCE_PROJECT_ID)/global/snapshots/SOURCE_SNAPSHOT", ("storageLocations": "LOCATION") }
Remplacez les éléments suivants :
PROJECT_ID
: projet auquel appartient l'image.IMAGE_NAME
: nom de la nouvelle image que vous souhaitez créer.SOURCE_PROJECT_ID
: projet contenant l'instantané (facultatif). Vous devez être autorisé à accéder à la ressource d'instantané dans ce projet.SOURCE_SNAPSHOT
: instantané à partir duquel vous souhaitez créer l'image.LOCATION
: emplacement de stockage de votre image (facultatif). Par exemple, spécifiezus
pour stocker l'image dans l'emplacement multirégionalus
, ouus-central1
pour la stocker dans la régionus-central1
. Si vous ne sélectionnez pas d'emplacement, Compute Engine stocke l'image dans l'emplacement multirégional le plus proche de la source de l'image.
Pour plus d'informations sur l'ajout d'images, consultez la documentation de référence sur les images.
Partager l'image
Après avoir créé une image personnalisée, vous pouvez la partager entre projets. Si vous autorisez les utilisateurs d'un autre projet à utiliser vos images personnalisées, ils peuvent accéder à ces images en spécifiant le projet d'images dans leur requête.
Activer des fonctionnalités d'un système d'exploitation invité sur des images personnalisées
Utilisez les fonctionnalités de système d'exploitation invité (OS) pour configurer les options suivantes de mise en réseau, de sécurité, de stockage et de système d'exploitation sur des images personnalisées. Les images personnalisées avec ces fonctionnalités configurées sont utilisées comme disques de démarrage.
gcloud
Utilisez la commande gcloud compute images
create
avec l'option --guest-os-features
pour créer une image personnalisée à partir d'une image personnalisée existante.
gcloud compute images create IMAGE_NAME \ --source-image=SOURCE_IMAGE \ [--source-image-project=IMAGE_PROJECT] \ --guest-os-features="FEATURES,..." \ [--storage-location=LOCATION]
Remplacez les éléments suivants :
IMAGE_NAME
: nom de la nouvelle image.SOURCE_IMAGE
: image sur laquelle sera basée la nouvelle image.IMAGE_PROJECT
: projet contenant l'image source (facultatif).Utilisez ce paramètre pour copier une image d'un autre projet.
FEATURES
: tags du système d'exploitation invité pour activer les fonctionnalités des VM que vous créez à partir d'images.Pour ajouter plusieurs valeurs, séparez-les par des virgules. Définissez ce paramètre sur une ou plusieurs des valeurs suivantes :
VIRTIO_SCSI_MULTIQUEUE
: utilisez sur les disques SSD locaux comme alternative à NVMe. Pour en savoir plus sur les images compatibles SCSI, consultez la section Choisir une interface.Pour les images Linux, vous pouvez activer la fonctionnalité SCSI à files d'attente multiples sur les disques SSD locaux pour les images dotées de la version 3.17 ou ultérieure du noyau. Pour les images Windows, vous pouvez activer la fonctionnalité SCSI à files d'attente multiples sur les disques SSD locaux pour les images dotées de la version 1.2 du pilote Windows Compute Engine.
WINDOWS
: ajoutez des tags aux images de démarrage personnalisées Windows Server en tant qu'images Windows.MULTI_IP_SUBNET
. : configurez des interfaces avec un masque de réseau autre que/32
. Pour en savoir plus sur les interfaces réseau multiples et leur fonctionnement, consultez la section Présentation des interfaces réseau multiples et exemples.UEFI_COMPATIBLE
. : démarrez avec le micrologiciel UEFI et les fonctionnalités de VM protégées suivantes :- Démarrage sécurisé : désactivé par défaut.
- Module vTPM (Virtual Trusted Platform Module) : activé par défaut.
- Surveillance de l'intégrité : activée par défaut.
GVNIC
. : compatibilité avec des bandes passantes réseau élevées (de 50 Gbit/s à 100 Gbit/s. Pour plus d'informations, consultez la section Utiliser la carte d'interface réseau virtuelle Google.SEV_CAPABLE
: utilisez cette option si vous créez une Confidential VM sur la plate-forme du processeur AMD SEV (Secure Encrypted Virtualization). Pour plus d'informations, consultez la section Créer une instance Confidential VM.SUSPEND_RESUME_COMPATIBLE
: activer la suspension et la réactivation d'une VM. Pour en savoir plus, consultez la section Compatibilité des systèmes d'exploitation.
LOCATION
: région ou emplacement multirégional où stocker l'image (facultatif).Par exemple, spécifiez
us
pour stocker l'image dans l'emplacement multirégionalus
, ouus-central1
pour la stocker dans la régionus-central1
. Si vous ne sélectionnez pas d'emplacement, Compute Engine stocke l'image dans l'emplacement multirégional le plus proche de l'emplacement source de votre image.
API
Utilisez la méthode images().insert
avec l'option guestOsFeatures
pour créer une image personnalisée à partir d'une image personnalisée existante.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images { "name": "IMAGE_NAME", "sourceImage": "(projects/IMAGE_PROJECT)/global/images/SOURCE_IMAGE", ("storageLocations": "LOCATION",) "guestOsFeatures": [ { "type": "FEATURES" } ] }
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet dans lequel créer l'image.IMAGE_NAME
: nom de la nouvelle image.IMAGE_PROJECT
: projet contenant l'image source (facultatif).Utilisez ce paramètre pour copier une image d'un autre projet.
SOURCE_IMAGE
: image sur laquelle sera basée la nouvelle image.LOCATION
: région ou emplacement multirégional où stocker l'image (facultatif).Par exemple, spécifiez
us
pour stocker l'image dans l'emplacement multirégionalus
, ouus-central1
pour la stocker dans la régionus-central1
. Si vous ne sélectionnez pas d'emplacement, Compute Engine stocke l'image dans l'emplacement multirégional le plus proche de l'emplacement source de votre image ;FEATURES
: tags du système d'exploitation invité pour activer les fonctionnalités des VM que vous créez à partir d'images.Pour ajouter plusieurs valeurs, séparez-les par des virgules. Définissez ce paramètre sur une ou plusieurs des valeurs suivantes :
VIRTIO_SCSI_MULTIQUEUE
: utilisez sur les disques SSD locaux comme alternative à NVMe. Pour en savoir plus sur les images compatibles SCSI, consultez la section Choisir une interface.Pour les images Linux, vous pouvez activer la fonctionnalité SCSI à files d'attente multiples sur les disques SSD locaux pour les images dotées de la version 3.17 ou ultérieure du noyau. Pour les images Windows, vous pouvez activer la fonctionnalité SCSI à files d'attente multiples sur les disques SSD locaux pour les images dotées de la version 1.2 du pilote Windows Compute Engine.
WINDOWS
: ajoutez des tags aux images de démarrage personnalisées Windows Server en tant qu'images Windows.MULTI_IP_SUBNET
. : configurez des interfaces avec un masque de réseau autre que/32
. Pour en savoir plus sur les interfaces réseau multiples et leur fonctionnement, consultez la section Présentation des interfaces réseau multiples et exemples.UEFI_COMPATIBLE
. : démarrez avec le micrologiciel UEFI et les fonctionnalités de VM protégées suivantes :- Démarrage sécurisé : désactivé par défaut.
- Module vTPM (Virtual Trusted Platform Module) : activé par défaut.
- Surveillance de l'intégrité : activée par défaut.
GVNIC
. : compatibilité avec des bandes passantes réseau élevées (de 50 Gbit/s à 100 Gbit/s. Pour plus d'informations, consultez la section Utiliser la carte d'interface réseau virtuelle Google.SEV_CAPABLE
: utilisez cette option si vous créez une Confidential VM sur la plate-forme du processeur AMD SEV (Secure Encrypted Virtualization). Pour plus d'informations, consultez la section Créer une instance Confidential VM.SUSPEND_RESUME_COMPATIBLE
: activer la suspension et la réactivation d'une VM. Pour en savoir plus, consultez la section Compatibilité des systèmes d'exploitation.
Éléments à prendre en compte pour les images Arm
Google propose la série de machines Tau T2A qui s'exécute sur la plate-forme de processeur Ampere Altra. Vous pouvez démarrer une VM avec la série de machines T2A, puis utiliser cette VM source pour créer une image Arm. Le processus de création d'une image Arm personnalisée est identique à la création d'une image x86.
Pour aider vos utilisateurs à différencier les images Arm des images x86, le champ architecture
des images Arm est défini sur ARM64
. Les valeurs possibles pour ce champ sont les suivantes :
ARCHITECTURE_UNSPECIFIED
X86_64
ARM64
Les utilisateurs d'images peuvent ensuite filtrer ce champ pour trouver des images x86 ou Arm.
Étape suivante
- Partagez votre image privée avec d'autres projets.
- Découvrez comment importer des disques, des images et des instances de VM.
- Apprenez à exporter une image personnalisée vers Cloud Storage.
- Apprenez à démarrer une VM à partir d'une image personnalisée.
- Apprenez à créer des images de base personnalisées à l'aide de Jenkins et Packer.
- Découvrez comment définir la version d'image dans une famille d'images.
- Découvrez comment rendre une image personnalisée obsolète.
- Apprenez à supprimer une image personnalisée.