Définir la version de l'image dans une famille d'images


Utilisez des familles d'images pour simplifier la gestion des versions d'images. Ajoutez une image à une famille d'images pour la définir comme la version d'image la plus récente. Si vous pensez que vous devez restaurer une version précédente de la famille d'images, abandonnez l'image la plus récente de la famille.

Consultez la page Bonnes pratiques concernant les familles d'images pour obtenir des conseils sur leur utilisation.

Vous pouvez éventuellement spécifier l'emplacement de stockage de l'image à l'aide de Google Cloud Console, de la commande gcloud compute images create avec l'option --storage-location, ou de la méthode images().insert.

Avant de commencer

Définir la version de l'image dans une famille d'images

Console

  1. Dans Google Cloud Console, accédez à la page Créer une image.

    Accéder à la page "Créer une image"

  2. Indiquez le Nom de votre image. Exemple :image-v1

  3. 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 Cloud Storage.

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

  5. 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égional us, ou us-central1 pour la stocker dans la région us-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.

  6. Spécifiez la Famille d'images pour la nouvelle image. Par exemple, ajoutez my-image-family pour organiser l'image dans une famille d'images.

  7. Facultatif : spécifiez d'autres propriétés de l'image :

    • Description : description de votre image personnalisée.
    • Libellé : libellé permettant de regrouper les ressources.
  8. 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.

  9. Cliquez sur Créer pour créer l'image.

gcloud

gcloud compute images create image-v1 \
    --source-disk disk-1 \
    --source-disk-zone us-central1-f \
    --family my-image-family

La famille d'images pointe vers image-v1. Ajoutez une deuxième image à la famille :

gcloud compute images create image-v2 \
    --source-disk disk-2 \
    --source-disk-zone us-central1-f \
    --family my-image-family

API

Envoyez une requête POST à la méthode images().insert. Spécifiez la famille d'images dans le corps de la requête.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images

{
  "name": "image-v2",
  "sourceDisk": "/zones/us-central1-f/disks/disk-2",
  "family":"my-image-family",

}

La famille d'images pointe vers image-v2, car il s'agit de l'image la plus récente que vous lui avez ajoutée.

gcloud

Vous pouvez voir vers quelle image pointe une famille en exécutant la commande gcloud compute images describe-from-family.

Exemple :

gcloud compute images describe-from-family my-image-family

family: my-image-family
id: '8904691942610171306'
kind: compute#image
name: image-v2
selfLink: https://compute.googleapis.com/compute/v1/projects/my-project/global/images/image-v2
sourceDisk: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/disks/disk-v2
sourceDiskId: '1677449456001963379'
sourceType: RAW
status: READY

API

Envoyez une requête GET à la méthode images().getFromFamily. Spécifiez la famille d'images dans le corps de la requête.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/family

{
  "resourceId":"my-image-family",

}

Si vous souhaitez effectuer un rollback de la famille d'images pour qu'elle ne pointe plus vers image-v2, abandonnez image-v2 pour que la famille pointe de nouveau vers image-v1.

gcloud compute images deprecate image-v2 \
    --state DEPRECATED \
    --replacement image-v1

Assurez-vous que la famille d'images pointe bien vers image-v1.

gcloud compute images describe-from-family my-image-family

family: my-image-family
id: '2741732787056801255'
kind: compute#image
name: image-v1
selfLink: https://compute.googleapis.com/compute/v1/projects/my-project/global/images/image-v1
sourceDisk: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/disks/disk-v1
sourceDiskId: '1677449456001963379'
sourceType: RAW
status: READY