Crea y, luego, inicia una instancia de VM

En este documento, se explica cómo crear una instancia de máquina virtual mediante una imagen de disco de arranque, una instantánea de disco de arranque o una imagen de contenedor. Cuando creas una instancia de VM a partir de una imagen de disco de arranque, puedes usar una imagen normal o una imagen de VM protegida. Las imágenes de VM protegida ofrecen funciones de seguridad, como firmware compatible con UEFI, inicio seguro y, también, inicio medido con protección vTPM. Compute Engine inicia la instancia de VM de manera automática después de crearla.

Durante el proceso de creación, puedes crear varios discos para tu instancia de VM. También puedes agregar más discos a la instancia después de crearla.

En este documento, se explican formas básicas de crear una instancia. Para obtener más información sobre la configuración de instancias más específicas o complicadas, consulte los siguientes recursos:

Antes de comenzar

Crea una instancia a partir de una imagen

En esta sección, se explica cómo crear una instancia a partir de una imagen de un sistema operativo específico. Una imagen de disco de arranque contiene el bootloader, el sistema de archivos de inicio y un sistema operativo que se ejecuta en la instancia.

Los usuarios avanzados pueden crear una imagen personalizada para usar en lugar de las imágenes públicas que ofrece Compute Engine.

Puedes crear una instancia con una imagen en Google Cloud Platform Console, la herramienta de línea de comandos de gcloud o la API.

Crea una instancia a partir de una imagen pública

Google, las comunidades de código abierto y los proveedores de terceros son los encargados de proporcionar y mantener las imágenes públicas. De manera predeterminada, todos los proyectos tienen acceso a estas imágenes y pueden usarlas para crear instancias con imágenes comunes del sistema operativo.

Con el fin de crear una instancia, especifica la familia de imágenes para el sistema operativo que necesitas. Compute Engine ofrece varias distribuciones de Linux, algunas de las cuales están disponibles como imágenes de VM regular y VM protegida. Si eliges el almacenamiento SSD local para tu instancia, no puedes usar las funciones de supervisión de integridad de VM protegida y no puedes usar el vTPM para proteger los datos. Para obtener una lista de las familias de imágenes disponibles, consulta imágenes públicas.

Console

  1. Ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Selecciona tu proyecto y haz clic en Continuar.
  3. Haz clic en el botón Crear instancia.
  4. Especifica un Nombre para tu instancia.
  5. De manera opcional, cambia la Zona para esta instancia.

    Nota: La lista de zonas es aleatoria dentro de cada región para fomentar el uso de varias zonas.

  6. Selecciona una Configuración de máquina para tu instancia.

  7. En la sección Disco de arranque, haz clic en Cambiar para configurar tu disco de arranque.
    Crea un disco de arranque de no más de 2 TB para justificar las limitaciones de las particiones del MBR.

  8. En la pestaña Imágenes de SO, elige una imagen.
    Selecciona Mostrar imágenes con funciones de VM protegida para ver solo las imágenes de VM protegida.

  9. Haz clic en Seleccionar.

  10. Para permitir el tráfico HTTP o HTTPS a la instancia de VM, selecciona Permitir el tráfico HTTP o Permitir el tráfico HTTPS.

    GCP Console 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 la nube privada virtual.

  11. Para agregar discos secundarios que no sean de arranque a tu instancia de VM, sigue estos pasos:

    1. Haz clic en la sección Administración, seguridad, discos, herramientas de redes, instancia única.
    2. Haz clic en la pestaña Discos.
    3. En Discos adicionales, haz clic en Agregar disco nuevo.
    4. Especifica las opciones Nombre, Tipo, Tipo de fuente, Modo y Regla de eliminación para el disco.
    5. Haz clic en Listo.
    6. Agrega discos adicionales según sea necesario.
  12. De manera opcional, cambia la configuración de VM protegida de la instancia, si eliges una imagen compatible con una VM protegida. Para ello, sigue estos pasos:

    1. Haz clic en la pestaña Seguridad en la sección Administración, seguridad, discos, herramientas de redes, instancia única.
    2. Si deseas inhabilitar la opción Inicio seguro, desmarca Activar inicio seguro. El inicio seguro ayuda a proteger tus instancias de VM del software malicioso y los rootkits de nivel de inicio y kernel. Para obtener más información, consulta la documentación sobre Inicio seguro.
    3. Si deseas inhabilitar el módulo de plataforma de confianza virtual (vTPM), desmarca Activar vTPM. El vTPM habilita el inicio medido, que valida la integridad previa al inicio y la integridad de inicio de la VM. Para obtener más información, consulta la documentación sobre el Módulo de plataforma de confianza virtual (vTPM).

    4. Si deseas inhabilitar la supervisión de integridad, desmarca Activar supervisión de integridad. La supervisión de integridad te permite supervisar la integridad del inicio de tus instancias de VM protegida mediante Stackdriver. Para obtener más información, consulta Supervisión de integridad.

  13. Haz clic en el botón Crear para crear y, luego, iniciar la instancia.

gcloud

Antes de crear una instancia, selecciona una imagen del sistema operativo para usar en el disco de arranque de tu instancia. Usa el comando gcloud compute images list sin ningún marcador para ver la lista completa de imágenes públicas de VM sin protección con sus ID de imágenes, familias de imágenes y proyectos de imágenes:

gcloud compute images list

Usa el comando gcloud compute images list con los siguientes marcadores para ver la lista completa de imágenes públicas de VM protegida:

gcloud compute images list --project gce-uefi-images --no-standard-images

Después de seleccionar una imagen, crea una instancia con el comando gcloud compute instances create.

Para utilizar la última versión de una imagen del sistema operativo, especifica los marcadores --image-family y --image-project. Por ejemplo, debian-9 es una familia de imágenes que muestra la versión más reciente de la imagen de Debian 9 que no es obsoleta, y debian-cloud es el proyecto de imagen.

Crea una instancia con la última imagen de una familia de imágenes:

gcloud compute instances create [INSTANCE_NAME] \
--image-family [IMAGE_FAMILY] \
--image-project [IMAGE_PROJECT]

Donde:

Respuesta de ejemplo:

Created [https://www.googleapis.com/compute/v1/projects/myproject/zones/[ZONE]/instances/[INSTANCE_NAME]].
NAME            ZONE   MACHINE_TYPE  INTERNAL_IP   EXTERNAL_IP    STATUS
[INSTANCE_NAME] [ZONE] n1-standard-1 10.105.155.92 173.255.114.53 RUNNING

Si necesitas usar una versión de imagen específica en lugar de la última versión, especifica los marcadores --image y --image-project. Por ejemplo, para crear una instancia que use la imagen debian-9-stretch-v20170619, especifica --image debian-9-stretch-v20170619 y --image-project debian-cloud.

Crea una instancia con una versión específica de una imagen:

gcloud compute instances create [INSTANCE_NAME] \
    --image [IMAGE_ID] \
    --image-project [IMAGE_PROJECT]

Donde:

  • [INSTANCE_NAME] es el nombre de la instancia nueva.
  • [IMAGE_ID] es una imagen específica.
  • [IMAGE_PROJECT] es el proyecto de imagen al que pertenece esa imagen.

Puedes agregar hasta 128 discos secundarios que no sean de arranque mientras creas tu instancia. Especifica el marcador --create-disk para cada disco secundario que crees. Para crear discos secundarios a partir de una imagen pública o en stock, especifica las propiedades image y image-project en el marcador --create-disk. Para crear un disco en blanco, no incluyas estas propiedades. De manera opcional, incluye propiedades para las opciones size y type del disco.

gcloud compute instances create [INSTANCE_NAME] \
  --image-family [IMAGE_FAMILY] \
  --image-project [IMAGE_PROJECT] \
  --create-disk image=[DISK_IMAGE],image-project=[DISK_IMAGE_PROJECT],size=[SIZE_GB],type=[DISK_TYPE]

Donde:

  • [INSTANCE_NAME] es el nombre de la instancia nueva.
  • [IMAGE_FAMILY] es una de las familias de imágenes disponibles.
  • [IMAGE_PROJECT] es el proyecto de imagen al que pertenece la imagen.
  • [DISK_IMAGE] es la imagen de origen para el disco secundario. Para obtener una lista de imágenes disponibles, ejecuta gcloud compute images list. Para los discos en blanco, no especifiques una imagen de disco o proyecto de imagen.
  • [DISK_IMAGE_PROJECT] es el proyecto de imagen al que pertenece la imagen de disco. Para los discos en blanco, no especifiques una imagen de disco o proyecto de imagen.
  • [SIZE_GB] es el tamaño del disco secundario.
  • [DISK_TYPE] es el tipo de disco persistente, pd-standard o pd-ssd.

Formatea y activa los discos antes de usarlos.

Si eliges una imagen compatible con una VM protegida, puede cambiar de manera opcional la configuración de VM protegida de la instancia con uno de los siguientes marcadores:

  • --no-shielded-vm-secure-boot: inhabilita el inicio seguro. El inicio seguro ayuda a proteger tus instancias de VM del software malicioso y los rootkits de nivel de inicio y kernel. Para obtener más información, consulta la documentación sobre Inicio seguro.
  • --no-shielded-vm-vtpm: inhabilita el módulo de plataforma de confianza virtual (vTPM). El vTPM habilita el inicio medido, que valida la integridad previa al inicio y la integridad de inicio de la VM. Para obtener más información, consulta Módulo de plataforma de confianza virtual (vTPM).

  • --no-shielded-vm-integrity-monitoring: inhabilita la supervisión de integridad. Esta función te permite supervisar la integridad de inicio de tus instancias de VM protegida mediante Stackdriver. Para obtener más información, consulta la documentación sobre Supervisión de integridad.

En el siguiente ejemplo, se crea una instancia de VM protegida de Ubuntu con el inicio seguro inhabilitado:

gcloud beta compute instances create my-instance \
  --image-family ubuntu-1804-uefi --image-project gce-uefi-images \
  --no-shielded-vm-secure-boot

API

Para iniciar una instancia en la API, envía una solicitud y especifica las siguientes propiedades:

  • Imagen de origen
  • Interfaz de red
  • Tipo de máquina
  • Si tu red de VPC es una red de VPC en modo personalizado, también debes especificar la subred en la que deseas que se cree la instancia
  • Si eliges una imagen compatible con una VM protegida, puedes cambiar de manera opcional la configuración de VM protegida de la instancia con los siguientes elementos del cuerpo de solicitud booleana:

    • enableSecureBoot: habilita o inhabilita el inicio seguro. El inicio seguro ayuda a proteger tus instancias de VM del software malicioso y los rootkits de nivel de inicio y kernel. Para obtener más información, consulta la documentación sobre Inicio seguro.
    • enableVtpm: habilita o inhabilita el módulo de plataforma de confianza virtual (vTPM). El vTPM habilita el inicio medido, que valida la integridad previa al inicio y la integridad de inicio de la VM. Para obtener más información, consulta la documentación sobre el Módulo de plataforma de confianza virtual (vTPM).

    • enableIntegrityMonitoring: habilita o inhabilita la supervisión de integridad. La supervisión de integridad te permite supervisar y verificar la integridad de inicio del entorno de ejecución de las instancias de VM protegida mediante informes de Stackdriver. Para obtener más información, consulta Supervisión de integridad.

Después de decidir las propiedades de tu recurso, crea un cuerpo de solicitud y realiza tu solicitud a la API. Para obtener más información sobre cómo crear solicitudes a la API y cómo manejar las respuestas de la API, lee la documentación sobre cómo crear solicitudes a la API y manejar las respuestas.

Crea la solicitud a la API

Si usas la biblioteca cliente de API, puedes iniciar una instancia nueva llamando directamente a la API de REST o mediante el método de instances().insert. A continuación, se presenta un ejemplo de cada opción:

REST

En la API, crea una solicitud POST para el URI de las instancias con el mismo cuerpo de solicitud. Puedes agregar hasta 128 discos secundarios que no sean de arranque al momento de crear una instancia de VM mediante la propiedad initializeParams para cada disco adicional. Crea discos adicionales con una imagen pública o privada. Para agregar discos en blanco, no especifiques una fuente de la imagen. De manera opcional, puedes incluir las propiedades diskSizeGb, diskType y labels.

def addInstance(http, listOfHeaders):
  url = "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances"

  body = {
    "name": "[INSTANCE_NAME]",
    "machineType": "machineTypes/[MACHINE_TYPE]",
    "networkInterfaces": [{
      "accessConfigs": [{
        "type": "ONE_TO_ONE_NAT",
        "name": "External NAT"
       }],
      "network": "global/networks/default"
    }],
    "disks": [{
       "autoDelete": "true",
       "boot": "true",
       "type": "PERSISTENT",
       "initializeParams": {
         "sourceImage": "projects/[IMAGE_PROJECT]/global/images/family/[IMAGE]",
         "labels": {
           "key": "[LABEL_KEY]",
           "value": "[LABEL_VALUE]",
         }
       }
     },
     {
       "initializeParams": {
          "diskSizeGb": "[SIZE_GB]",
          "sourceImage":"[IMAGE]"
       },
       {
       "initializeParams": {
          "diskSizeGb": "[SIZE_GB]"
       }
     }]

  bodyContentURLEncoded = urllib.urlencode(bodyContent)
  resp, content = http.request(uri=url, method="POST", body=dumps(bodyContent), headers=listOfHeaders)

  print resp
  print content

Donde:

  • [INSTANCE_NAME] es el nombre de la instancia.
  • [PROJECT_ID] es el ID del proyecto.
  • [ZONE] es la zona para esta instancia.
  • [MACHINE_TYPE] es el tipo de máquina de la instancia.
  • [IMAGE_PROJECT] es el proyecto de imagen al que pertenece la imagen, como debian-cloud, ubuntu-os-cloud, etc.
  • [IMAGE] es una de las familias de imágenes públicas disponibles. Por ejemplo, family/debian-9 usa la última versión de la imagen de Debian 9. De manera alternativa, puedes usar una versión de imagen específica, como debian-9-stretch-v20170619 sin la ruta de acceso family/. Para los discos en blanco, no especifiques una fuente de la imagen.
  • [LABEL_KEY] y [LABEL_VALUE] son etiquetas para aplicar al disco. El campo labels es opcional.
  • [SIZE_GB] es el tamaño del disco.
  • [DISK_TYPE] es el tipo de disco persistente, pd-standard o pd-ssd.

Si creas una instancia con discos secundarios en blanco, formatea y activa esos discos para que tu sistema operativo invitado pueda usarlos.

Biblioteca cliente de Python

def create_instance(compute, project, zone, name, bucket):
    # Get the latest Debian Jessie image.
    image_response = compute.images().getFromFamily(
        project='debian-cloud', family='debian-9').execute()
    source_disk_image = image_response['selfLink']

    # Configure the machine
    machine_type = "zones/%s/machineTypes/n1-standard-1" % zone
    startup_script = open(
        os.path.join(
            os.path.dirname(__file__), 'startup-script.sh'), 'r').read()
    image_url = "http://storage.googleapis.com/gce-demo-input/photo.jpg"
    image_caption = "Ready for dessert?"

    config = {
        'name': name,
        'machineType': machine_type,

        # Specify the boot disk and the image to use as a source.
        'disks': [
            {
                'boot': True,
                'autoDelete': True,
                'initializeParams': {
                    'sourceImage': source_disk_image,
                }
            }
        ],

        # Specify a network interface with NAT to access the public
        # internet.
        'networkInterfaces': [{
            'network': 'global/networks/default',
            'accessConfigs': [
                {'type': 'ONE_TO_ONE_NAT', 'name': 'External NAT'}
            ]
        }],

        # Allow the instance to access cloud storage and logging.
        'serviceAccounts': [{
            'email': 'default',
            'scopes': [
                'https://www.googleapis.com/auth/devstorage.read_write',
                'https://www.googleapis.com/auth/logging.write'
            ]
        }],

        # Metadata is readable from the instance and allows you to
        # pass configuration from deployment scripts to instances.
        'metadata': {
            'items': [{
                # Startup script is automatically executed by the
                # instance upon startup.
                'key': 'startup-script',
                'value': startup_script
            }, {
                'key': 'url',
                'value': image_url
            }, {
                'key': 'text',
                'value': image_caption
            }, {
                'key': 'bucket',
                'value': bucket
            }]
        }
    }

    return compute.instances().insert(
        project=project,
        zone=zone,
        body=config).execute()

Crea una instancia a partir de una imagen personalizada

Una imagen personalizada pertenece solo a tu proyecto. Para crear una instancia con una imagen personalizada, primero debes tener una. Para aprender cómo crear una imagen personalizada, consulta la documentación sobre cómo crear una imagen personalizada.

Console

  1. Ve a la página de VM Instances.

    Ir a la página Instancias de VM

  2. Selecciona tu proyecto y haz clic en Continuar.
  3. Haz clic en el botón Crear instancia.
  4. Especifica un Nombre para tu instancia.
  5. De manera opcional, cambia la Zona para esta instancia.

    Nota: La lista de zonas es aleatoria dentro de cada región para fomentar el uso de varias zonas.

  6. Selecciona una Configuración de máquina para tu instancia.

  7. En la sección Disco de arranque, haz clic en Cambiar para configurar tu disco de arranque.
    Crea un disco de arranque de no más de 2 TB para justificar las limitaciones de las particiones del MBR.

  8. Selecciona la pestaña Imágenes personalizadas.

  9. Asegúrate de que tu proyecto esté seleccionado en el menú desplegable.

  10. Elige la imagen que deseas y haz clic en el botón Seleccionar.

  11. Para permitir el tráfico HTTP o HTTPS a la instancia de VM, selecciona Permitir el tráfico HTTP o Permitir el tráfico HTTPS.

    GCP Console 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 la nube privada virtual.

  12. Para agregar discos secundarios que no sean de arranque a tu instancia de VM, sigue estos pasos:

    1. Haz clic en Administración, seguridad, discos, herramientas de redes, instancia única.
    2. Selecciona la pestaña Discos.
    3. En Discos adicionales, haz clic en Agregar disco nuevo.
    4. Especifica las opciones Nombre, Tipo, Tipo de fuente, Modo y Regla de eliminación para el disco.
    5. Haz clic en Listo.
    6. Agrega discos adicionales según sea necesario.
  13. Haz clic en el botón Crear para crear y, luego, iniciar la instancia.

gcloud

Usa la herramienta de línea de comandos gcloud compute instances create para crear una instancia con una imagen personalizada:

gcloud compute instances create [INSTANCE_NAME] \
--image [IMAGE_NAME] \
--image-family [IMAGE_FAMILY]

Donde:

  • [INSTANCE_NAME] es el nombre de la instancia.
  • [IMAGE_NAME] es el nombre de la imagen.
  • [IMAGE] es un campo opcional. Usa una imagen privada o pública. Si no se especifica ninguna imagen, el disco estará en blanco.

Si creaste tus imágenes personalizadas como parte de una familia de imágenes, especifica esa familia de imágenes en lugar del nombre de la imagen. Al hacerlo, la instancia usa automáticamente la imagen más reciente y no obsoleta de la familia de imágenes.

Puedes agregar hasta 128 discos secundarios que no sean de arranque mientras creas tu instancia. Especifica el marcador --create-disk para cada disco secundario que crees. Para crear discos secundarios a partir de una imagen pública o en stock, especifica las propiedades image y image-project en el marcador --create-disk. Para crear un disco en blanco, no incluyas estas propiedades. De manera opcional, incluye propiedades para las opciones size y type del disco.

gcloud compute instances create [INSTANCE_NAME] \
  --image-family [IMAGE_FAMILY] \
  --image-project [IMAGE_PROJECT] \
  --create-disk image=[DISK_IMAGE],image-project=[DISK_IMAGE_PROJECT],size=[SIZE_GB],type=[DISK_TYPE]

Donde:

  • [INSTANCE_NAME] es el nombre de la instancia nueva.
  • [IMAGE_FAMILY] es una de las familias de imágenes disponibles.
  • [IMAGE_PROJECT] es el proyecto de imagen al que pertenece la imagen.
  • [DISK_IMAGE] es la imagen de origen para el disco secundario. Para obtener una lista de imágenes disponibles, ejecuta gcloud compute images list. Para los discos en blanco, no especifiques una imagen de disco o proyecto de imagen.
  • [DISK_IMAGE_PROJECT] es el proyecto de imagen al que pertenece la imagen de disco. Para los discos en blanco, no especifiques una imagen de disco o proyecto de imagen.
  • [SIZE_GB] es el tamaño del disco secundario.
  • [DISK_TYPE] es el tipo de disco persistente, pd-standard o pd-ssd.

Formatea y activa los discos antes de usarlos.

API

El proceso para crear una instancia con una imagen personalizada en la API es el mismo que si crearas una instancia con una imagen disponible de forma pública. En el URI de sourceImage, proporciona tu propio ID del proyecto y el nombre de la imagen.

Puedes crear hasta 128 discos secundarios que no sean de arranque al momento de crear una instancia de VM mediante la propiedad initializeParams para cada disco adicional. Crea discos adicionales con una imagen pública o privada. Para agregar un disco en blanco, define la entrada initializeParams sin valor de sourceImage.

...
"initializeParams" :{
   "sourceImage": "global/images/[IMAGE_NAME]"
},
{
"initializeParams": {
   "diskSizeGb": "[SIZE_GB]",
   "sourceImage": "[IMAGE]",
   "diskType": "[DISK_TYPE]"
 },
 {
 "initializeParams": {
 "diskSizeGb": "[SIZE_GB]",
 "diskType": "[DISK_TYPE]"
 }
}...]

Donde:

  • [PROJECT_ID] es el ID del proyecto.
  • [IMAGE_NAME] es la imagen específica, como debian-9-stretch-v20170619. De manera alternativa, puedes especificar una familia de imágenes. Por ejemplo, family/debian-9 muestra la última versión de la imagen de Debian 9.
  • [IMAGE] es la imagen de origen para el disco secundario. Para los discos en blanco, no especifiques una fuente de la imagen.
  • [SIZE_GB] es el tamaño del disco.
  • [DISK_TYPE] es el tipo de disco persistente, pd-standard o pd-ssd.

Formatea y activa los discos antes de usarlos.

Crea una instancia a partir de una imagen compartida contigo

Si otro usuario compartió una imagen contigo, puedes usarla para crear una instancia nueva.

Console

  1. Ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Selecciona tu proyecto y haz clic en Continuar.
  3. Haz clic en el botón Crear instancia.
  4. Especifica un Nombre para tu instancia.
  5. De manera opcional, cambia la Zona para esta instancia.

  6. Selecciona una Configuración de máquina para tu instancia.

  7. En la sección Disco de arranque, haz clic en Cambiar para configurar tu disco de arranque.

    Crea un disco de arranque de no más de 2 TB para justificar las limitaciones de las particiones del MBR.

  8. Selecciona la pestaña Imágenes personalizadas.

  9. Selecciona el proyecto de imagen del menú desplegable.

  10. Elige la imagen que deseas y haz clic en el botón Seleccionar.

  11. Para permitir el tráfico HTTP o HTTPS a la instancia de VM, selecciona Permitir el tráfico HTTP o Permitir el tráfico HTTPS.

    GCP Console 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 la nube privada virtual.

  12. Para agregar discos secundarios que no sean de arranque a tu instancia de VM, sigue estos pasos:

    1. Haz clic en Administración, seguridad, discos, herramientas de redes, instancia única.
    2. Selecciona la pestaña Discos.
    3. En Discos adicionales, haz clic en Agregar disco nuevo.
    4. Especifica las opciones Nombre, Tipo, Tipo de fuente, Modo y Regla de eliminación para el disco.
    5. Haz clic en Listo.
    6. Agrega discos adicionales según sea necesario.
  13. Haz clic en el botón Crear para crear y, luego, iniciar la instancia.

gcloud

Usa el comando gcloud compute instances create para crear una instancia. También usa el marcador --image y --image-project para especificar el nombre de la imagen y el proyecto el que deseas que resida la imagen:

gcloud compute instances create [INSTANCE_NAME] \
    --image [IMAGE] \
    --image-project [IMAGE_PROJECT]

Donde:

  • [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:

Created [https://www.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  n1-standard-1               10.240.0.4   104.198.53.60  RUNNING

Puedes agregar hasta 128 discos secundarios que no sean de arranque mientras creas tu instancia. Especifica el marcador --create-disk para cada disco secundario que crees. Para crear discos secundarios a partir de una imagen pública o en stock, especifica las propiedades image y image-project en el marcador --create-disk. Para crear un disco en blanco, no incluyas estas propiedades. De manera opcional, incluye propiedades para las opciones size y type del disco.

gcloud compute instances create [INSTANCE_NAME] \
--image-family [IMAGE_FAMILY] \
--image-project [IMAGE_PROJECT] \
--create-disk image=[DISK_IMAGE],image-project=[DISK_IMAGE_PROJECT],size=[SIZE_GB],type=[DISK_TYPE]

Donde:

  • [INSTANCE_NAME] es el nombre de la instancia nueva.
  • [IMAGE_FAMILY] es una de las familias de imágenes disponibles.
  • [IMAGE_PROJECT] es el proyecto de imagen al que pertenece la imagen.
  • [DISK_IMAGE] es la imagen de origen para el disco secundario. Para obtener una lista de imágenes disponibles, ejecuta gcloud compute images list. Para los discos en blanco, no especifiques una imagen de disco o proyecto de imagen.
  • [DISK_IMAGE_PROJECT] es el proyecto de imagen al que pertenece la imagen de disco. Para los discos en blanco, no especifiques una imagen de disco o proyecto de imagen.
  • [SIZE_GB] es el tamaño del disco secundario.
  • [DISK_TYPE] es el tipo de disco persistente, pd-standard o pd-ssd.

Formatea y activa los discos antes de usarlos.

API

Sigue las instrucciones de la API para crear una instancia a partir de una imagen pública, pero especifica el campo image en el cuerpo de la solicitud. Puedes agregar hasta 128 discos secundarios que no sean de arranque mediante la especificación del campo initializeParams para cada disco adicional. Para agregar discos en blanco, no especifiques una fuente de la imagen. De manera opcional, puedes especificar las propiedades diskSizeGb, diskType y labels.

...
image: "projects/[PROJECT_ID]/global/images/[IMAGE]

{
 "initializeParams": {
    "diskSizeGb": "[SIZE_GB]",
    "sourceImage": "[IMAGE]"
       }
   {
  "initializeParams": {
  "diskSizeGb": "[SIZE_GB]"
   }
 }...]

Donde:

  • [PROJECT_ID] es el proyecto que contiene la imagen.
  • [IMAGE] es la imagen de origen.
  • [SIZE_GB] es el tamaño del disco.
  • [IMAGE] es la imagen de origen para el disco secundario. Para los discos en blanco, no especifiques una fuente de la imagen.
  • [DISK_TYPE] es el tipo de disco persistente, pd-standard o pd-ssd.

Formatea y activa los discos antes de usarlos.

Crea una instancia a partir de una instantánea

Si realizaste una copia de seguridad de un disco de arranque persistente con una instantánea, puedes usar esa instantánea para crear una instancia nueva.

Console

  1. Ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Selecciona tu proyecto y haz clic en Continuar.
  3. Haz clic en el botón Crear instancia.
  4. Especifica un Nombre para tu instancia.
  5. De manera opcional, cambia la Zona para esta instancia.

  6. Selecciona una Configuración de máquina para tu instancia.

  7. En la sección Disco de arranque, haz clic en Cambiar para configurar tu disco de arranque.

    Crea un disco de arranque de no más de 2 TB para justificar las limitaciones de las particiones del MBR.

  8. Haz clic en la pestaña Instantáneas y elige una instantánea de la lista.

  9. Haz clic en Seleccionar.

  10. Para permitir el tráfico HTTP o HTTPS a la instancia de VM, selecciona Permitir el tráfico HTTP o Permitir el tráfico HTTPS.

    GCP Console 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 la nube privada virtual.

  11. Para agregar discos secundarios que no sean de arranque a tu instancia de VM, sigue estos pasos:

    1. Haz clic en Administración, seguridad, discos, herramientas de redes, instancia única.
    2. Selecciona la pestaña Discos.
    3. En Discos adicionales, haz clic en Agregar disco nuevo.
    4. Especifica las opciones Nombre, Tipo, Tipo de fuente, Modo y Regla de eliminación para el disco.
    5. Haz clic en Listo.
    6. Agrega discos adicionales según sea necesario.
  12. Haz clic en el botón Crear para crear y, luego, iniciar la instancia.

gcloud

Con la herramienta de línea de comandos de gcloud, no puedes usar una instantánea para crear directamente una instancia de la misma manera que lo harías en Console. Primero, crea un nuevo disco de arranque persistente independiente a partir de una instantánea. Luego, usa ese disco para crear una instancia nueva.

  1. Crea un disco de arranque persistente independiente a partir de una instantánea con el comando gcloud compute disks create.

    gcloud compute disks create [DISK_NAME] --source-snapshot [SNAPSHOT_NAME]
    
  2. Usa el comando gcloud compute instances create para crear una instancia nueva y adjunta el disco con el marcador --disk y la propiedad boot=yes.

    gcloud compute instances create [INSTANCE_NAME] --disk name=[DISK_NAME],boot=yes
    

    Puedes agregar hasta 128 discos secundarios que no sean de arranque mientras creas tu instancia. Especifica el marcador --create-disk para cada disco secundario que crees. Para crear discos secundarios a partir de una imagen pública o en stock, especifica las propiedades image y image-project en el marcador --create-disk. Para crear un disco en blanco, no incluyas estas propiedades. De manera opcional, incluye propiedades para las opciones size y type del disco.

    gcloud compute instances create [INSTANCE_NAME] \
       --image-family [IMAGE_FAMILY] \
       --image-project [IMAGE_PROJECT] \
       --create-disk image=[DISK_IMAGE],image-project=[DISK_IMAGE_PROJECT],size=[SIZE_GB],type=[DISK_TYPE]
    

    Donde:

    • [INSTANCE_NAME] es el nombre de la instancia nueva.
    • [IMAGE_FAMILY] es una de las familias de imágenes disponibles.
    • [IMAGE_PROJECT] es el proyecto de imagen al que pertenece la imagen.
    • [DISK_IMAGE] es la imagen de origen para el disco secundario. Para obtener una lista de imágenes disponibles, ejecuta gcloud compute images list. Para los discos en blanco, no especifiques una imagen de disco o proyecto de imagen.
    • [DISK_IMAGE_PROJECT] es el proyecto de imagen al que pertenece la imagen de disco. Para los discos en blanco, no especifiques una imagen de disco o proyecto de imagen.
    • [SIZE_GB] es el tamaño del disco secundario.
    • [DISK_TYPE] es el tipo de disco persistente, pd-standard o pd-ssd.

Formatea y activa los discos antes de usarlos.

API

En la API, no puedes usar una instantánea para crear una instancia directamente de la misma manera que lo harías en Console. Primero, crea un nuevo disco de arranque persistente independiente a partir de una instantánea. Luego, usa ese disco para crear una instancia nueva.

Restricciones:

  • Solo un disco persistente puede ser el disco de arranque persistente.
  • Debes adjuntar el disco de arranque persistente como primer disco para esa instancia.
  • Si especificas la propiedad source, no puedes especificar la propiedad initializeParams. Si proporcionas la propiedad source, indicas que el disco de arranque persistente ya existe, pero la propiedad initializeParams indica que Compute Engine debe crear un disco de arranque persistente nuevo.

Para crear una instancia a partir de una instantánea, sigue estos pasos:

  1. Crea un disco de arranque persistente independiente a partir de una instantánea.

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks
    
    {
      "name": "[DISK_NAME]",
      "sourceSnapshot": "zones/[ZONE]/snapshots/[SNAPSHOT_NAME]"
    }
    
  2. Adjunta el disco cuando crees una instancia nueva. En el cuerpo de la solicitud, incluye las propiedades para crear una instancia nueva. En la propiedad disks, incluye el campo source con una URL al disco persistente que deseas adjuntar. Con el objetivo de agregar hasta 128 discos secundarios que no sean de arranque, usa la propiedad initializeParams para cada disco. Para agregar discos en blanco, no incluyas una imagen de origen. De manera opcional, puedes especificar las propiedades diskSizeGb, diskType y labels.

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances
    
    {
      "name": "[INSTANCE_NAME]",
      "machineType": "machineTypes/[MACHINE_TYPE]"
      "networkInterfaces": [{
        "accessConfigs": [{
          "type": "ONE_TO_ONE_NAT",
          "name": "External NAT"
         }],
        "network": "global/networks/default"
      }],
      "disks": [{
         "source": "zones/[ZONE]/disks/[DISK_NAME]",
         "boot": true
       }],
       "initializeParams": [{
          "diskSizeGb": "[SIZE_GB]",
          "sourceImage": "[IMAGE]"
        }
       {
       "initializeParams": {
       "diskSizeGb": "[SIZE_GB]"
       }
    }...]
    

    Donde:

    • [IMAGE] es la imagen de origen para el disco secundario. Para los discos en blanco, no especifiques una fuente de la imagen.
    • [SIZE_GB] es el tamaño del disco.
    • [DISK_TYPE] es el tipo de disco persistente, pd-standard o pd-ssd.

Formatea y activa los discos antes de usarlos.

Crea una instancia a partir de una imagen de contenedor

Para implementar y, luego, iniciar un contenedor en una instancia de Compute Engine, especifica un nombre de imagen de contenedor y los parámetros de configuración opcionales cuando crees la instancia. Compute Engine crea la instancia con la última versión de la imagen pública de Container-Optimized OS, que tiene instalado Docker. Luego, Compute Engine inicia el contenedor cuando se inicia la VM. Para obtener más información, consulta cómo implementar contenedores en VM.

Console

  1. Ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Haz clic en Crear instancia.
  3. Especifica un Nombre para tu instancia.
  4. En la sección Contenedor, selecciona la casilla de verificación Implementar una imagen de contenedor para esta instancia de VM.
  5. Especifica la Imagen de contenedor a utilizar.
    • Por ejemplo, puedes especificar gcr.io/cloud-marketplace/google/nginx1:1.12 para seleccionar una imagen de contenedor NGINX 1.12 en Cloud Launcher.
    • Si utilizas una imagen de contenedor de Docker Hub, especifica siempre el nombre completo de la imagen de Docker. Por ejemplo, especifica el siguiente nombre de imagen para implementar una imagen de contenedor de Apache: docker.io/httpd:2.4.
  6. De manera opcional, haz clic en Opciones avanzadas de contenedor. Para obtener más información, consulta Cómo configurar opciones para ejecutar tu contenedor.
  7. Haz clic en Crear para crear la instancia, iniciar la instancia y ejecutar el contenedor.

gcloud

Utiliza el comando gcloud compute instances create-with-container:

gcloud compute instances create-with-container [INSTANCE_NAME] \
     --container-image [CONTAINER_IMAGE]

Donde:

  • [INSTANCE_NAME] es el nombre de la instancia nueva.
  • [CONTAINER_IMAGE] es el nombre de la imagen de contenedor.

Por ejemplo, el siguiente comando crea una instancia de VM nueva denominada nginx-vm que iniciará y ejecutará la imagen de contenedor, gcr.io/cloud-marketplace/google/nginx1:1.12.

gcloud compute instances create-with-container nginx-vm \
    --container-image gcr.io/cloud-marketplace/google/nginx1:1.12

Cuando se utiliza una imagen de contenedor de Docker Hub, siempre debes especificar el nombre completo de la imagen de Docker. Por ejemplo, especifica el siguiente nombre de imagen para implementar una imagen de contenedor de Apache: docker.io/httpd:2.4.

Crea una instancia con acceso a otros servicios de Google Cloud Platform

Si planeas ejecutar una aplicación en tu instancia de máquina virtual que necesita acceso a otros servicios de Google Cloud Platform, crea una cuenta de servicio antes de crear la instancia y, luego, sigue las instrucciones con el fin de configurar una instancia para que se ejecute como una cuenta de servicio. Una cuenta de servicio es una cuenta especial cuyas credenciales puedes usar en el código de la aplicación para acceder a otros servicios de Google Cloud Platform.

Para obtener más información sobre las cuentas de servicio, consulta la Descripción general de las cuentas de servicio.

Crea una instancia en una subred específica

De forma predeterminada, Google Cloud Platform (GCP) crea una red de VPC de modo automático denominada default para cada proyecto. Si creas una instancia sin especificar los detalles de su red, Compute Engine usa la red de VPC predeterminada y la subred automática que se encuentra en la misma región que la instancia.

Para usar una red diferente o una subred que creaste de forma manual en un modo automático o en una red de VPC en modo personalizado, debes especificar la subred cuando crees la instancia.

Console

  1. Ve a la página de VM Instances.

    Ir a la página Instancias de VM

  2. Selecciona tu proyecto y haz clic en Continuar.
  3. Haz clic en el botón Crear instancia.
  4. Especifica un Nombre para tu instancia.
  5. De manera opcional, cambia la Zona para esta instancia.

  6. Para permitir el tráfico HTTP o HTTPS a la instancia de VM, selecciona Permitir el tráfico HTTP o Permitir el tráfico HTTPS.

    GCP Console 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 la nube privada virtual.

  7. Expande la sección Administración, seguridad, discos, herramientas de redes, instancia única.

  8. En Interfaces de red, en la pestaña Herramientas de redes, especifica los detalles de la red.

    1. En el campo Red, selecciona la red de VPC que contiene la subred que creaste.
    2. En el campo Subred, selecciona la subred que usará la instancia.
  9. Para agregar discos secundarios que no sean de arranque a tu instancia de VM, sigue estos pasos:

    1. Haz clic en Administración, seguridad, discos, herramientas de redes, instancia única.
    2. Selecciona la pestaña Discos.
    3. En Discos adicionales, haz clic en Agregar disco nuevo.
    4. Especifica las opciones Nombre, Tipo, Tipo de fuente, Modo y Regla de eliminación para el disco.
    5. Haz clic en Listo.
    6. Agrega discos adicionales según sea necesario.
  10. Haz clic en el botón Crear para crear y, luego, iniciar la instancia.

gcloud

Con la herramienta de línea de comandos de gcloud, sigue las mismas instrucciones para crear una instancia a partir de una imagen o una instantánea, y agrega los marcadores --subnet [SUBNET_NAME] y --zone [ZONE_NAME] cuando uses el comando gcloud compute instances create:

gcloud compute instances create [INSTANCE_NAME] --subnet [SUBNET_NAME] \
--zone [ZONE_NAME]

Donde:

  • [INSTANCE_NAME] es el nombre de la instancia.
  • [SUBNET_NAME] es el nombre de la subred. La red se infiere de la subred especificada.
  • [ZONE_NAME] es el nombre de la zona donde se crea la instancia, como europe-west1-b. La región de la instancia se infiere de la zona.

Puedes agregar hasta 128 discos secundarios que no sean de arranque mientras creas tu instancia. Especifica el marcador --create-disk para cada disco secundario que crees. Para crear discos secundarios a partir de una imagen pública o en stock, especifica las propiedades image y image-project en el marcador --create-disk. Para crear un disco en blanco, no incluyas estas propiedades. De manera opcional, incluye propiedades para las opciones size y type del disco.

gcloud compute instances create [INSTANCE_NAME] \
--subnet [SUBNET_NAME] \
--zone [ZONE_NAME] \
--image-family [IMAGE_FAMILY] \
--image-project [IMAGE_PROJECT] \
--create-disk image=[DISK_IMAGE],image-project=[DISK_IMAGE_PROJECT],size=[SIZE_GB],type=[DISK_TYPE]

Donde:

  • [INSTANCE_NAME] es el nombre de la instancia nueva.
  • [SUBNET_NAME] es el nombre de la subred.
  • [ZONE_NAME] es el nombre de la zona donde se crea la instancia, como europe-west1-b.
  • [IMAGE_FAMILY] es una de las familias de imágenes disponibles.
  • [IMAGE_PROJECT] es el proyecto de imagen al que pertenece la imagen.
  • [DISK_IMAGE] es la imagen de origen para el disco secundario. Para obtener una lista de imágenes disponibles, ejecuta gcloud compute images list. Para los discos en blanco, no especifiques una imagen de disco o proyecto de imagen.
  • [DISK_IMAGE_PROJECT] es el proyecto de imagen al que pertenece la imagen de disco. Para los discos en blanco, no especifiques una imagen de disco o proyecto de imagen.
  • [SIZE_GB] es el tamaño del disco secundario.
  • [DISK_TYPE] es el tipo de disco persistente, pd-standard o pd-ssd.

Formatea y activa los discos antes de usarlos.

API

Sigue las instrucciones de la API para crear una instancia a partir de una imagen o una instantánea, pero especifica el campo subnet en el cuerpo de la solicitud. Con el objetivo de agregar hasta 128 discos secundarios que no sean de arranque, usa la propiedad initializeParams para cada disco que creas. Para agregar discos en blanco, no agregues una imagen de origen. De manera opcional, puedes especificar las propiedades diskSizeGb, diskType y labels.

...
"networkInterfaces": [
{
  "network": "global/networks/[NETWORK_NAME]",
  "subnetwork": "regions/[REGION]/subnetworks/[SUBNET_NAME]",
  "accessConfigs":
    {
      "name": "External NAT",
      "type": "ONE_TO_ONE_NAT"
    }
    {
      "initializeParams": {
         "diskSizeGb": "[SIZE_GB]",
         "sourceImage": "[IMAGE]"
    {
      "initializeParams": {
      "diskSizeGb": "[SIZE_GB]"
     }
 }...]

Donde:

  • [IMAGE] es la imagen de origen para el disco secundario. Para los discos en blanco, no especifiques una fuente de la imagen.
  • [SIZE_GB] es el tamaño del disco.
  • [DISK_TYPE] es el tipo de disco persistente, pd-standard o pd-ssd.

Formatea y activa los discos antes de usarlos.

¿Qué sigue?

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Documentación de Compute Engine