Crea una instancia a partir de una imagen compartida

En este documento, se explica cómo crear una instancia de Compute Engine a partir de una imagen personalizada que comparte otro proyecto.

Una instancia contiene un bootloader, un sistema de archivos de inicio y una imagen de SO. Puedes crear imágenes personalizadas a partir de discos de origen, imágenes, instantáneas o imágenes almacenadas en Cloud Storage y usarlas para crear instancias. De forma predeterminada, una imagen personalizada pertenece solo al proyecto en el que se creó. Si otro usuario ha compartido una imagen contigo, puedes usarla para crear una instancia.

Antes de comenzar

  • Cuando creas instancias a partir de imágenes con Google Cloud CLI o la API de Compute Engine, hay un límite de 20 instancias por segundo. Si necesitas crear una mayor cantidad de instancias por segundo, solicita un ajuste de cuota para el recurso Imágenes.
  • Configura la autenticación si aún no lo hiciste. La autenticación verifica tu identidad para acceder a los Google Cloud servicios y las APIs. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Selecciona la pestaña según cómo planeas usar las muestras en esta página:

    Console

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

    gcloud

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

      gcloud init

      Si usas un proveedor de identidad (IdP) externo, primero debes acceder a gcloud CLI con tu identidad federada.

  • Configura una región y una zona predeterminadas.
  • REST

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

      Instala la Google Cloud CLI.

      Si usas un proveedor de identidad (IdP) externo, primero debes acceder a gcloud CLI con tu identidad federada.

    Para obtener más información, consulta Autentícate para usar REST en la documentación de autenticación de. Google Cloud

Roles obligatorios

Para obtener los permisos que necesitas para crear una instancia a partir de una imagen compartida, pídele a tu administrador que te otorgue el rol de IAM Administrador de instancias de Compute (v1) (roles/compute.instanceAdmin.v1) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para crear una instancia a partir de una imagen compartida. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para crear una instancia a partir de una imagen compartida:

  • compute.instances.create en el proyecto
  • Si deseas usar una imagen compartida para crear la instancia: compute.images.useReadOnly en la imagen

También puedes obtener estos permisos con roles personalizados o otros roles predefinidos.

Crea una instancia a partir de una imagen compartida

Para crear una instancia a partir de una imagen compartida, sigue estos pasos:

Console

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

    Ir a Crear una instancia

    Si se te solicita, selecciona el proyecto y haz clic en Continuar.

    Aparecerá la página Crear una instancia y se mostrará el panel Configuración de la máquina.

  2. En el panel Configuración de la máquina, haz lo siguiente:

    1. En el campo Nombre, especifica un nombre para tu instancia. Para obtener más información, consulta Convención de nombres de recursos.
    2. Opcional: En el campo Zona, selecciona una zona para esta instancia.

      La selección predeterminada es Cualquiera. Si no cambias esta selección predeterminada, Google elige de forma automática una zona por ti según el tipo de máquina y la disponibilidad.

    3. Selecciona la familia de máquinas para tu instancia. Luego, la Google Cloud consola then muestra las series de máquinas que están disponibles para la familia de máquinas seleccionada. Están disponibles las siguientes opciones de familia de máquinas:

      • Uso general
      • Optimizada para procesamiento
      • Con optimización de memoria
      • Optimizada para almacenamiento
      • GPU

    4. En la columna Serie, selecciona la serie de máquinas para tu instancia.

      Si seleccionaste GPU como la familia de máquinas en el paso anterior, selecciona el Tipo de GPU que deseas. Luego, la serie de máquinas se selecciona automáticamente para el tipo de GPU seleccionado.

    5. En la sección Tipo de máquina, selecciona el tipo de máquina para tu instancia.

  3. En el menú de navegación, haz clic en SO y almacenamiento. En el panel Sistema operativo y almacenamiento que aparece, configura tu disco de arranque de la siguiente manera:

    1. Haz clic en Cambiar. Aparecerá el panel Disco de arranque y se mostrará la pestaña Imágenes públicas.
    2. Haz clic en Imágenes personalizadas. Aparecerá la pestaña Imágenes personalizadas.
    3. Para elegir el proyecto de imagen, haz clic en Cambiar y, luego, selecciona el proyecto que contiene la imagen.
    4. En la lista Imagen, selecciona la imagen que deseas importar.
    5. En la lista Tipo de disco de arranque, selecciona el tipo de disco de arranque.
    6. En el campo Tamaño (GB), especifica el tamaño del disco de arranque.
    7. Opcional: Para los discos de arranque Hyperdisk Balanced, especifica valores para los campos IOPS aprovisionadas y Capacidad de procesamiento aprovisionada.
    8. Opcional: Para obtener opciones de configuración avanzadas, expande la Mostrar configuraciones avanzadas sección.
    9. Para confirmar las opciones de disco de arranque y volver al panel Sistema operativo y almacenamiento, haz clic en Seleccionar.
  4. En el menú de navegación, haz clic en Herramientas de redes. En el panel Herramientas de redes que aparece, haz lo siguiente:

    1. Ve a la sección Firewall.
    2. Para permitir el tráfico HTTP o HTTPS a la instancia, selecciona Permitir tráfico HTTP o Permitir tráfico HTTPS.

      Compute Engine agrega una etiqueta de red a tu instancia y crea la regla de firewall de entrada correspondiente que permite todo el tráfico entrante en tcp:80 (HTTP) o tcp:443 (HTTPS). La etiqueta de red asocia la regla de firewall con la instancia. Para obtener más información, consulta Descripción general de las reglas de firewall en la documentación de Cloud Next Generation Firewall.

  5. Opcional: Especifica otras opciones de configuración. Para obtener más información, consulta Opciones de configuración durante la creación de instancias.

  6. Para crear y, luego, iniciar la instancia, haz clic en Crear.

gcloud

  1. En la Google Cloud consola de, activa Cloud Shell.

    Activa Cloud Shell

    En la parte inferior de la Google Cloud consola de, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  2. Crea una instancia con el gcloud compute instances create command, y usa las marcas --image y --image-project para especificar el nombre de la imagen y el proyecto donde esta reside:

    gcloud compute instances create INSTANCE_NAME \
    --image=IMAGE \
    --image-project=IMAGE_PROJECT
    

    Reemplaza lo siguiente:

    • INSTANCE_NAME: Es el nombre de la instancia nueva.
    • IMAGE: Es el nombre de la imagen.
    • IMAGE_PROJECT: Es el proyecto al que pertenece la imagen.

    Si el comando se ejecuta correctamente, gcloud responde con las propiedades de la instancia nueva, como en el siguiente ejemplo:

    Created [https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-b/instances/example-instance].
    NAME                 ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
    example-instance     us-central1-b  e2-standard-2               10.240.0.4   104.198.53.60  RUNNING
    

Terraform

El proceso para crear una instancia con una imagen compartida en Terraform es el mismo que si crearas una instancia con una imagen disponible de forma pública.

  1. En la Google Cloud consola de, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Haz clic en Crear instancia.
  3. Especifica los parámetros que desees.
  4. En la parte superior o inferior de la página, haz clic en Código equivalente y, luego, en la pestaña Terraform para ver el código de Terraform.

REST

El proceso para crear una instancia con una imagen compartida en la API es el mismo que si crearas una instancia con una imagen disponible de forma pública.

Para crear la instancia a partir de una imagen compartida, usa el instances.insert método.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
   "machineType":"zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
   "name":"VM_NAME",
   
   "disks":[
      {
         "initializeParams":{
            "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE"
         },
         "boot":true
      }
   ],
   
   
   "networkInterfaces":[
      {
         "network":"global/networks/NETWORK_NAME"
      }
   ],
   
  
   "shieldedInstanceConfig":{
      "enableSecureBoot":"ENABLE_SECURE_BOOT"
   }
}

Reemplaza lo siguiente:

  • PROJECT_ID: ID del proyecto en el que se creará la VM
  • ZONE: Zona en la que se creará la VM
  • MACHINE_TYPE_ZONE: Zona que contiene el tipo de máquina que se usará para la VM nueva
  • MACHINE_TYPE: El tipo de máquina, predefinido o personalizado de la VM nueva
  • VM_NAME: Nombre de la VM nueva
  • IMAGE_PROJECT: nombre del proyecto que contiene la imagen compartida
  • IMAGE: especifica una de las siguientes opciones:
    • IMAGE: nombre de la imagen compartida. Por ejemplo, "sourceImage": "projects/finance-project-1234/global/images/finance-debian-image-v2".
    • IMAGE_FAMILY: si la imagen compartida se crea como parte de una familia de imágenes personalizadas, especifica esa familia de imágenes personalizada.

      Esto crea la VM a partir de la imagen de SO no obsoleta más reciente de tu familia de imágenes personalizadas. Por ejemplo, si especificas "sourceImage": "projects/finance-project-1234/global/images/family/finance-debian-family", Compute Engine crea una VM a partir de la última versión de la imagen de SO en la familia de imágenes personalizadas finance-debian-family.

  • NETWORK_NAME: La red de VPC que deseas usar para la VM. Puedes especificar default para usar tu red predeterminada
  • ENABLE_SECURE_BOOT: Si eliges una imagen que admite funciones de VM protegida, Compute Engine habilita de forma predeterminada el módulo virtual de plataforma de confianza (vTPM) y la supervisión de la integridad. Compute Engine no habilita el Inicio seguro de forma predeterminada.

    Si especificas true para enableSecureBoot, Compute Engine crea una VM con las tres funciones de VM protegida habilitadas. Después de que Compute Engine inicie la VM, debes detenerla para modificar las opciones de VM protegida.

¿Qué sigue?