Crea imágenes de máquina


Usa una imagen de máquina para almacenar la configuración, los metadatos, los permisos y los datos de varios discos para una instancia de VM que se ejecuta en Compute Engine. La instancia de VM que usas para crear una imagen de máquina se denomina instancia de origen.

Para obtener información sobre cuándo y cómo usar las imágenes de máquina, consulta Imágenes de máquina.

En este documento, se describen los pasos para crear una imagen de máquina a partir de una instancia de origen.

Antes de empezar

  • Configura la autenticación si aún no lo hiciste. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

    Selecciona la pestaña para saber cómo planeas usar las muestras en esta página:

    Consola

    Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud, no necesitas configurar la autenticación.

    gcloud

    1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init
    2. Configura una región y una zona predeterminadas.

    REST

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

      Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init

Limitaciones y restricciones

  • Puedes compartir una imagen de máquina entre proyectos. Sin embargo, las redes de VPC compartidas no son compatibles.
  • Puedes crear una imagen de máquina como máximo una vez cada 10 minutos. Si deseas generar una gran cantidad de solicitudes para crear varias imágenes de máquina a partir de una instancia, puedes emitir como máximo 6 solicitudes en 60 minutos.
  • Para proteger una imagen de máquina, puedes usar Cloud Key Management Service (Cloud KMS) o una clave de encriptación proporcionada por el cliente (CSEK). La clave de encriptación protege el contenido de los discos. Sin embargo, los metadatos no están protegidos.
  • Si usas una CSEK para proteger tu imagen de máquina, se almacenará una copia completa de todos los datos del disco durante la generación de la imagen de máquina. En todas las demás situaciones, los datos del disco se almacenan en las copias diferenciales.
  • No puedes crear imágenes de máquina a partir de VMs de origen que:

    • Tengan más de 200 TB de discos conectados
    • No tengan ningún disco conectado
    • Tengan cualquier disco Hyperdisk Extreme conectado

Las propiedades de instancias y discos no son compatibles con la imagen de máquina

Cuando creas imágenes de máquina a partir de instancias de VM o instancias de VM a partir de imágenes de máquina, las siguientes propiedades de instancia y el disco no se conservan ni se restablecen:

  • disks.architecture
  • disks.description
  • disks.labels
  • disks.locked
  • disks.multiWriter
  • disks.onUpdateAction
  • disks.provisionedIops
  • disks.shieldedInstanceInitialState
  • disks.sourceImage
  • disks.sourceImageEncryptionKey
  • disks.sourceInstantSnapshot
  • disks.sourceSnapshot
  • disks.sourceSnapshotEncryptionKey
  • privateIpv6GoogleAccess
  • resourceManagerTags
  • resourcePolicies
  • secure_tag
  • shieldedInstanceConfig

Crea una imagen de máquina a partir de una VM

Puedes crear imágenes de máquina mediante la consola de Google Cloud, Google Cloud CLI o REST.

Para crear una imagen de máquina, necesitas la siguiente información:

  • Un nombre para la imagen de máquina que deseas crear
  • El nombre de la instancia de VM de origen.
  • La zona en la que se encuentra la instancia de VM de origen.
  • Una descripción opcional
  • Una storageLocation opcional. Si no especificas una ubicación, la ubicación de almacenamiento predeterminada es la ubicación de Cloud Storage multirregional de la instancia de VM de origen.
  • Una clave de encriptación opcional. 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 de máquina se encriptarán mediante una clave administrada por Google
  • Si deseas usar una imagen de máquina para crear instantáneas de instancias y clonarlas, quita la información del SO y de la app que sea exclusiva antes de generar la imagen de máquina a partir de una instancia. Por ejemplo, en instancias de VM de Windows, usa GCESysprep a fin de preparar el sistema para la replicación.

Console

  1. En la consola de Google Cloud, ve a la página Imágenes de máquina.

    Ir a Imágenes de máquina

  2. Haz clic en Crear imagen de máquina.

  3. Especifica un Nombre para tu imagen de máquina.

  4. Proporciona una Descripción (opcional).

  5. Selecciona la instancia de VM de origen.

  6. Especifica la ubicación en la que se almacenará la imagen de máquina (opcional). Elige entre almacenamiento multirregional o regional. Para obtener más información sobre la ubicación, consulta Ubicación de almacenamiento de imágenes de máquina.

  7. Selecciona un método de Encriptación (opcional).

  8. Haga clic en Crear.

gcloud

Usa el comando gcloud compute machine-images create para crear una imagen de máquina a partir de una instancia.

gcloud compute machine-images create MACHINE_IMAGE_NAME \
    --source-instance=SOURCE_VM_NAME

Reemplaza lo siguiente:

  • MACHINE_IMAGE_NAME: Es el nombre de la imagen de máquina que deseas crear.
  • SOURCE_VM_NAME: Es el nombre de la instancia de VM de origen desde la que deseas crear la imagen.

Ejemplo

Por ejemplo, puedes usar el siguiente comando de gcloud para crear una imagen de máquina llamada my-machine-image desde una instancia de origen llamada my-instance:

gcloud compute machine-images create my-machine-image  \
    --source-instance=my-instance

El proceso toma unos minutos. Cuando se crea la imagen de máquina, obtienes un resultado similar al siguiente:

Created [https://www.googleapis.com/compute/v1/projects/project-12345/global/machineImages/my-machine-image].
NAME               STATUS
my-machine-image   READY

REST

En la API, realiza una solicitud POST al método machineimages.insert. En el cuerpo de la solicitud, incluye la siguiente solicitud POST:

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

{
  "name": "MACHINE_IMAGE_NAME",
  "sourceInstance": "SOURCE_INSTANCE_URL"
}

Reemplaza lo siguiente:

  • PROJECT_ID: ID del proyecto
  • MACHINE_IMAGE_NAME: Es el nombre de la imagen de máquina que deseas crear.
  • SOURCE_INSTANCE_URL: Es la URL parcial o completa de la instancia de origen que deseas usar para crear la imagen de máquina. Por ejemplo, si tienes una instancia de origen llamada my-instance en un proyecto llamado myProject, las siguientes URL son válidas:

    • https://www.googleapis.com/compute/v1/projects/myProject/global/instances/my-instance
    • projects/myProject/global/instances/my-instance
    • global/instances/my-instance

Próximos pasos