Definir la versión de una imagen en una familia de imágenes


Usa familias de imágenes para simplificar el control de versiones de las imágenes. Añade una imagen a una familia de imágenes para definirla como la versión más reciente. Si determinas que debes restaurar la familia de imágenes a una versión anterior, inhabilita la imagen más reciente de la familia.

Para consultar las prácticas recomendadas al trabajar con familias de imágenes, consulte Prácticas recomendadas para familias de imágenes.

Si quieres, puedes especificar la ubicación de almacenamiento de la imagen mediante laGoogle Cloud consola, el comando gcloud compute images create con la marca --storage-location o el método images().insert.

Antes de empezar

  • Consulta el documento Imágenes.
  • Si aún no lo has hecho, configura la autenticación. La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    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. Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    2. Set a default region and zone.

    REST

    Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.

      Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .

Definir la versión de una imagen en una familia de imágenes

Consola

  1. En la Google Cloud consola, ve a la página Crear una imagen.

    Ir a Crear una imagen

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

  3. Especifica la fuente a partir de la que quieras crear una imagen. Puede ser un disco persistente, una captura, otra imagen o un archivo disk.raw en Cloud Storage.

  4. Si vas a crear una imagen a partir de un disco conectado a una VM en ejecución, marca la casilla Mantener la instancia en ejecución para confirmar que quieres crear la imagen mientras la VM está en ejecución. Puedes preparar tu VM antes de crear la imagen.

  5. En la lista desplegable Según la ubicación del disco de origen (opción predeterminada), especifica la ubicación en la que se almacenará la imagen. Por ejemplo, especifica us para almacenar la imagen en la multirregión us o us-central1 para almacenarla en la región us-central1. Si no haces ninguna 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 nueva imagen. Por ejemplo, añade my-image-family para organizar la imagen como parte de una familia de imágenes.

  7. Opcional: especifica otras propiedades de la imagen:

    • Descripción: descripción de la imagen personalizada.
    • Etiqueta: una etiqueta para agrupar recursos.
  8. Especifica la clave de cifrado. Puedes elegir entre una clave Google-owned and Google-managed encryption key, una clave de Cloud Key Management Service (Cloud KMS) o una clave de encriptado suministrada por el cliente (CSEK). Si no se especifica ninguna clave de cifrado, las imágenes se cifran con una Google-owned and Google-managed encryption key.

  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. Para añadir una segunda imagen a la familia, sigue estos pasos:

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

REST

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 has añadido a la familia de imágenes.

gcloud

Para ver a qué imagen apunta una familia, ejecuta 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

REST

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 restaurar la familia de imágenes para que ya no apunte a image-v2, inhabilita image-v2 y la familia volverá a apuntar a image-v1.

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

Comprueba que la familia de imágenes apunta 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