Crear una instancia a partir de una imagen compartida


Este documento explica cómo crear una instancia de Compute Engine a partir de una imagen personalizada compartida por otro proyecto.

Una instancia contiene un gestor de arranque, un sistema de archivos de arranque y una imagen del sistema operativo. Puedes crear imágenes personalizadas a partir de discos de origen, imágenes, instantáneas o imágenes almacenadas en Cloud Storage y usar estas imágenes para crear instancias. De forma predeterminada, una imagen personalizada pertenece únicamente al proyecto en el que se creó. Si otro usuario ha compartido una imagen contigo , puedes usar la imagen para crear una instancia.

Antes de comenzar

  • Al crear instancias a partir de imágenes mediante la CLI de Google Cloud o la API de Compute Engine, hay un límite de 20 instancias por segundo. Si necesita crear una mayor cantidad de instancias por segundo, solicite un límite de cuota más alto para el recurso Imágenes .
  • Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. 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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    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.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

Roles requeridos

Para obtener los permisos que necesita para crear una instancia a partir de una imagen compartida, solicite a su administrador que le otorgue el rol de IAM de Administrador de instancia informática (v1) ( roles/compute.instanceAdmin.v1 ) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulte Administrar el acceso a proyectos, carpetas y organizaciones .

Esta función predefinida contiene los permisos necesarios para crear una instancia a partir de una imagen compartida. Para ver los permisos exactos que se requieren, expanda la sección Permisos requeridos :

Permisos requeridos

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

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

Es posible que también pueda obtener estos permisos con roles personalizados u otros roles predefinidos .

Crear una instancia a partir de una imagen compartida

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

Consola

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

    Ir a Crear una instancia

    Si se le solicita, seleccione su proyecto y haga clic en Continuar .

    Aparece la página Crear una instancia y muestra el panel de configuración de la máquina .

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

    1. En el campo Nombre , especifique un nombre para su instancia. Para obtener más información, consulte Convención de nomenclatura de recursos .
    2. Opcional: en el campo Zona , seleccione una zona para esta instancia.

      La selección predeterminada es Cualquiera . Si no cambia esta selección predeterminada, Google elegirá automáticamente una zona según el tipo de máquina y la disponibilidad.

    3. Seleccione la familia de máquinas para su instancia. Luego, la consola de Google Cloud muestra la serie 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:

      • Propósito general
      • Computación optimizada
      • Memoria optimizada
      • Almacenamiento optimizado
      • GPU

    4. En la columna Serie , seleccione la serie de máquinas para su instancia.

      Si seleccionó GPU como familia de máquinas en el paso anterior, seleccione el tipo de GPU que desee. Luego, la serie de la máquina se selecciona automáticamente para el tipo de GPU seleccionado.

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

  3. En el menú de navegación, haga clic en SO y almacenamiento . En el panel Sistema operativo y almacenamiento que aparece, configure su disco de arranque haciendo lo siguiente:

    1. Haga clic en Cambiar . Aparece el panel Disco de arranque y muestra la pestaña Imágenes públicas .
    2. Haz clic en Imágenes personalizadas . Aparece la pestaña Imágenes personalizadas .
    3. Para seleccionar el proyecto de imagen, haga clic en Cambiar y luego seleccione el proyecto que contiene la imagen.
    4. En la lista Imagen , seleccione la imagen que desea importar.
    5. En la lista Tipo de disco de arranque , seleccione el tipo de disco de arranque.
    6. En el campo Tamaño (GB) , especifique el tamaño del disco de arranque.
    7. Opcional: para discos de arranque equilibrados de Hyperdisk, especifique valores para los campos IOPS aprovisionados y Rendimiento aprovisionado .
    8. Opcional: para opciones de configuración avanzadas, expanda la sección Mostrar configuraciones avanzadas .
    9. Para confirmar las opciones de su disco de arranque y regresar al panel Sistema operativo y almacenamiento , haga clic en Seleccionar .
  4. En el menú de navegación, haga clic en Redes . En el panel Redes que aparece, haga lo siguiente:

    1. Vaya a la sección Cortafuegos .
    2. Para permitir el tráfico HTTP o HTTPS a la instancia, seleccione Permitir tráfico HTTP o Permitir tráfico HTTPS .

      Compute Engine agrega una etiqueta de red a su instancia y crea la regla de firewall de ingreso 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, consulte Descripción general de las reglas de Firewall en la documentación de Cloud Next Generation Firewall .

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

  6. Para crear e iniciar la instancia, haga clic en Crear .

nube de 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 usando 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 reside la imagen:

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

    Reemplace lo siguiente:

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

    Si el comando se ejecuta correctamente, gcloud responde con las propiedades de la nueva instancia, 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
    

Terraformar

El proceso para crear una instancia con una imagen compartida en Terraform es el mismo que si estuviera creando una instancia con una imagen disponible públicamente.

  1. En la consola de Google Cloud, vaya a la página de instancias de VM .

    Ir a instancias de VM

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

DESCANSAR

El proceso para crear una instancia con una imagen compartida en la API es el mismo que si estuviera creando una instancia con una imagen disponible públicamente.

Para crear la instancia a partir de una imagen compartida, utilice 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"
   }
}

Reemplace lo siguiente:

  • PROJECT_ID : ID del proyecto para crear la VM en
  • ZONE : zona para crear la VM en
  • MACHINE_TYPE_ZONE : zona que contiene el tipo de máquina que se utilizará para la nueva VM
  • MACHINE_TYPE : tipo de máquina, predefinida o personalizada , para la nueva VM
  • VM_NAME : nombre de la nueva VM
  • IMAGE_PROJECT : nombre del proyecto que contiene la imagen compartida
  • IMAGE : especifique uno de los siguientes:
    • 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 personalizada , especifique esa familia de imágenes personalizada.

      Esto crea la máquina virtual a partir de la imagen de sistema operativo no obsoleta más reciente de su familia de imágenes personalizadas. Por ejemplo, si especifica "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 del sistema operativo en la familia de imágenes personalizada finance-debian-family .

  • NETWORK_NAME : la red VPC que desea utilizar para la VM. Puede especificar default para usar su red predeterminada.
  • ENABLE_SECURE_BOOT : Opcional: si eliges una imagen que admita funciones de VM protegida , Compute Engine, de forma predeterminada, habilita el módulo de plataforma virtual confiable (vTPM) y el monitoreo de integridad . Compute Engine no habilita el arranque 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 su VM, para modificar las opciones de la VM protegida , debe detener la VM.

¿Qué sigue?