Configura la versión con imágenes en una familia de imágenes


Utiliza familias de imágenes para simplificar el control de versiones de imágenes. Agrega una imagen a una familia de imágenes para establecerla como la versión más reciente de la imagen. Si determinas que debes revertir la familia de imágenes a una versión anterior, da de baja la imagen más reciente de la familia.

Para conocer las prácticas recomendadas sobre cómo trabajar con familias de imágenes, consulta Prácticas recomendadas para las familias de imágenes.

De forma opcional, puedes especificar la ubicación de almacenamiento de la imagen mediante Google Cloud Console, el comando gcloud compute images create con la marca --storage-location o el método images().insert.

Antes de comenzar

Configura la versión con imágenes en una familia de imágenes

Console

  1. En Google Cloud Console, ve a la página Crea una imagen.

    Ir a Crea una imagen

  2. Especifica el Nombre de la imagen. Por ejemplo, image-v1

  3. Especifica el Origen desde el que deseas crear una imagen. Puede ser un disco persistente, una instantánea, otra imagen o un archivo disk.raw en Cloud Storage.

  4. Si creas una imagen desde un disco conectado a una VM en ejecución, marca Keep instance running para confirmar que deseas crear la imagen mientras se ejecuta la VM. Puedes preparar tu VM antes de crear la imagen.

  5. En la lista desplegable Se basa en la ubicación del disco de origen (predeterminado), especifica la ubicación para almacenar la imagen. Por ejemplo, especifica us para almacenar la imagen en la multirregión us o us-central1 a fin de almacenarla en la región us-central1. Si no realizas una selección, Compute Engine almacenará la imagen en la multirregión más cercana a la ubicación de origen de la imagen.

  6. Especifica la imagen Familia para la imagen nueva. Por ejemplo, agrega my-image-family para organizar la imagen como parte de una familia de imágenes.

  7. Especifica otras propiedades de imagen (opcional):

    • Descripción: Es la descripción de la imagen personalizada.
    • Etiqueta: Es la etiqueta que agrupa los recursos.
  8. Especifica la clave de encriptación. Puedes elegir entre una clave administrada por Google, una clave de Cloud Key Management Service (Cloud KMS) o una clave de encriptación proporcionada por el cliente (CSEK). Si no se especifica una clave de encriptación, las imágenes se encriptarán mediante una clave administrada por Google

  9. Haz clic en Crear para crear la imagen.

gcloud

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

La familia de imágenes apunta a image-v1. Agrega una segunda imagen a la familia:

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

API

Realiza una solicitud POST al método images().insert. Especifica la familia de imágenes en el cuerpo de la solicitud.

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 familia de imágenes apunta a image-v2 porque es la imagen más reciente que agregaste a la familia de imágenes.

gcloud

Puedes ver a qué imagen apunta una familia si ejecutas el comando gcloud compute images describe-from-family.

Por ejemplo:

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

Realiza una solicitud GET al método images().getFromFamily. Especifica la familia de imágenes en el cuerpo de la solicitud.

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

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

}

Si determinas que debes revertir la familia de imágenes para que ya no apunte a image-v2, debes dar de baja image-v2, y la familia volverá a apuntar a image-v1.

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

Asegúrate de que la familia de imágenes apunte a 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