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 solo pertenece al proyecto en el que se creó. Si otro usuario compartió 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 límite de cuota más alto para el recurso Imágenes.
  • Si aún no lo hiciste, configura la autenticación. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las APIs de Google Cloud . Para ejecutar código o muestras 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. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. 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.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Si deseas obtener más información, consulta Autentica 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, sigue estos pasos: compute.images.useReadOnly en la imagen

También puedes obtener estos permisos con roles personalizados o con 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 consola deGoogle Cloud , 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 Cualquier. Si no cambias esta selección predeterminada, Google elige automáticamente 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 consola deGoogle Cloud muestra las series de máquinas que están disponibles para la familia de máquinas que seleccionaste. Están disponibles las siguientes opciones de familia de máquinas:

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

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

      Si seleccionaste GPUs 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 el 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. Haga 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 ver las opciones de configuración avanzadas, expande la sección Mostrar configuraciones avanzadas.
    8. Para confirmar las opciones del 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 del firewall de nueva generación de Cloud.

  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. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Crea una instancia con el comando 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 consola de Google Cloud , 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 método instances.insert.

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?