Crea y después inicia una instancia de VM

En esta página, se proporcionan instrucciones para crear una instancia de máquina virtual (VM) con una imagen de disco de arranque o una instantánea de disco de arranque.

Puedes crear una VM con uno o más discos. También puedes agregar discos a tu VM después de crearla. El dispositivo aislado de Google Distributed Cloud (GDC) inicia automáticamente la instancia de VM después de la creación.

Puedes agregar secuencias de comandos de inicio a una VM, ya sea antes o después de la creación. Para obtener más información sobre las secuencias de comandos de inicio, consulta la página Usa una secuencia de comandos de inicio con una instancia de VM.

Antes de comenzar

Para usar los comandos de la interfaz de línea de comandos (CLI) de gdcloud, asegúrate de haber descargado, instalado y configurado la CLI de gdcloud. Todos los comandos para el dispositivo aislado de GDC usan la CLI de gdcloud o kubectl, y requieren un entorno de sistema operativo (SO).

Obtén la ruta de acceso del archivo kubeconfig

Para ejecutar comandos en el servidor de la API de Management, asegúrate de tener los siguientes recursos:

  1. Ubica el nombre del servidor de la API de Management o pregúntale a tu administrador de la plataforma (PA) cuál es el nombre del servidor.

  2. Accede y genera el archivo kubeconfig para el servidor de la API de Management si no tienes uno.

  3. Usa la ruta de acceso para reemplazar MANAGEMENT_API_SERVER{"</var>"}} en estas instrucciones.

Solicita permisos y acceso

Para realizar las tareas que se indican en esta página, debes tener el rol de administrador de la VM del proyecto. Sigue los pasos para verificar o para que el administrador de IAM del proyecto te asigne el rol de administrador de máquinas virtuales del proyecto (project-vm-admin) en el espacio de nombres del proyecto en el que reside la VM.

Para las operaciones de VM con la consola de GDC o la CLI de gdcloud, solicita a tu administrador de IAM del proyecto que te asigne el rol de administrador de máquinas virtuales del proyecto y el rol de visualizador del proyecto (project-viewer).

Crea una instancia de VM a partir de una imagen

En esta sección, se muestra cómo crear una VM a partir de una imagen de SO proporcionada por GDC o de una imagen de SO personalizada.

Consulta una lista de las imágenes disponibles proporcionadas por el GDC

Antes de crear una VM con una imagen proporcionada por GDC, revisa la lista de imágenes disponibles.

gdcloud

Enumera todas las imágenes disponibles y su tamaño de disco mínimo:

gdcloud compute images list

Este comando incluye imágenes personalizadas y proporcionadas por GDC. Elige cualquiera de las imágenes en el espacio de nombres vm-system.

API

  1. Enumera todas las imágenes proporcionadas por GDC disponibles:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachineimage.virtualmachine.gdc.goog --namespace vm-system
    
  2. Obtén el minimumDiskSize para una imagen proporcionada por GDC en particular:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachineimage.virtualmachine.gdc.goog --namespace vm-system \
        BOOT_DISK_IMAGE_NAME -ojsonpath='{.spec.minimumDiskSize}{"\n"}'
    

    Reemplaza lo siguiente:

    • MANAGEMENT_API_SERVER con kubeconfig para el servidor de la API de Management.
    • BOOT_DISK_IMAGE_NAME con el nombre de la imagen.

Crea una instancia de VM a partir de una imagen proporcionada por GDC

De forma predeterminada, todos los proyectos de GDC pueden crear VMs a partir de imágenes de SO proporcionadas por GDC.

gdcloud

Selecciona una imagen proporcionada por GDC para crear la instancia de VM:

gdcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --image=BOOT_DISK_IMAGE_NAME --image-project=vm-system \
    --boot-disk-size=BOOT_DISK_SIZE \
    --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE

Reemplaza lo siguiente:

VariableDefinición
VM_NAME Nombre de la VM nueva El nombre solo debe contener caracteres alfanuméricos y guiones, y no debe tener más de 53 caracteres.
BOOT_DISK_IMAGE_NAME Nombre de la imagen que se usará para el disco de arranque de la VM nueva.
BOOT_DISK_SIZE Tamaño del disco de arranque, como 20G.
Este valor siempre debe ser mayor o igual que el minimumDiskSize de la imagen del disco de arranque.
NO_BOOT_DISK_AUTO_DELETE true o false, que indica lo contrario a si el disco de arranque se borra automáticamente cuando se borra la instancia de VM.
MACHINE_TYPE Es el tipo de máquina predefinido para la VM nueva. Para seleccionar un tipo de máquina disponible, ejecuta este comando:
gdcloud compute machine-types list

API

  1. Selecciona una imagen proporcionada por el dispositivo aislado de GDC para crear la instancia de VM:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        apply -n PROJECT -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
          namespace: vm-system
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineType: MACHINE_TYPE
      disks:
        - virtualMachineDiskRef:
            name: VM_BOOT_DISK_NAME
          boot: true
          autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    Reemplaza lo siguiente:

    VariableDefinición
    MANAGEMENT_API_SERVER Es la ruta de acceso kubeconfig del servidor de la API de Management.
    PROJECT Es el proyecto de dispositivo aislado de GDC para crear la VM.
    VM_NAME Nombre de la VM nueva El nombre solo debe contener caracteres alfanuméricos y guiones, y no debe tener más de 53 caracteres.
    VM_BOOT_DISK_NAME Nombre del nuevo disco de arranque de la VM.
    BOOT_DISK_IMAGE_NAME Nombre de la imagen que se usará para el disco de arranque de la VM nueva.
    BOOT_DISK_SIZE Tamaño del disco de arranque, como 20G.
    Este valor siempre debe ser mayor o igual que el minimumDiskSize de la imagen del disco de arranque.
    BOOT_DISK_AUTO_DELETE true o false, que indica si el disco de arranque se borra automáticamente cuando se borra la instancia de VM.
    MACHINE_TYPE Es el tipo de máquina predefinido para la VM nueva. Para seleccionar un tipo de máquina disponible, ejecuta este comando:
    gdcloud compute machine-types list
  2. Verifica que se haya creado la VM y espera a que muestre que está en el estado Running. El estado Running no indica que el SO esté completamente listo y accesible.

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachine.virtualmachine.gdc.goog VM_NAME -n PROJECT
    

    Reemplaza VM_NAME y PROJECT por el nombre y el proyecto de la VM. VM_NAME solo debe contener caracteres alfanuméricos y guiones.

    Para agregar una secuencia de comandos de inicio a la creación de tu instancia de VM, sigue los pasos que se proporcionan en la página Usa una secuencia de comandos de inicio con una instancia de VM. Asegúrate de cerrar la VM antes de agregar la secuencia de comandos.

Crea una instancia de VM a partir de una imagen personalizada

La imagen personalizada pertenece exclusivamente a tu proyecto. Para crear una VM con una imagen personalizada, primero debes crear una imagen personalizada en el mismo proyecto si aún no tienes una.

gdcloud

  1. Enumera todas las imágenes personalizadas:

    gdcloud compute images list --no-standard-images=true
    
  2. Crea la instancia de VM:

    gdcloud compute instances create VM_NAME \
        --machine-type=MACHINE_TYPE \
        --image=BOOT_DISK_IMAGE_NAME \
        --boot-disk-size=BOOT_DISK_SIZE \
        --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE
    

    Reemplaza lo siguiente:

    VariableDefinición
    VM_NAME Nombre de la VM nueva El nombre solo debe contener caracteres alfanuméricos y guiones, y no debe tener más de 53 caracteres.
    BOOT_DISK_IMAGE_NAME Nombre de la imagen que se usará para el disco de arranque de la VM nueva.
    BOOT_DISK_SIZE Tamaño del disco de arranque, como 20G.
    Este valor siempre debe ser mayor o igual que el minimumDiskSize de la imagen del disco de arranque.
    NO_BOOT_DISK_AUTO_DELETE true o false, que indica lo contrario a si el disco de arranque se borra automáticamente cuando se borra la instancia de VM.
    MACHINE_TYPE Es el tipo de máquina predefinido para la VM nueva. Para seleccionar un tipo de máquina disponible, ejecuta este comando:
    gdcloud compute machine-types list

API

  1. Enumera todas las imágenes personalizadas:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachineimage.virtualmachine.gdc.goog --namespace PROJECT
    

    Obtén el minimumDiskSize de una imagen en particular para crear una instancia de VM:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachineimage.virtualmachine.gdc.goog --namespace PROJECT \
        BOOT_DISK_IMAGE_NAME -ojsonpath='{.spec.minimumDiskSize}{"\n"}'
    

    Reemplaza lo siguiente:

    VariableDefinición
    MANAGEMENT_API_SERVER Es la ruta de acceso kubeconfig del servidor de la API de Management.
    BOOT_DISK_IMAGE_NAME Es el nombre de la imagen elegida en el comando para listar todas las imágenes personalizadas.
    PROJECT Es el proyecto de la imagen.
  2. Crea la instancia de VM:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        apply -n PROJECT -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineType: MACHINE_TYPE
      disks:
        - virtualMachineDiskRef:
            name: VM_BOOT_DISK_NAME
          boot: true
          autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    Reemplaza las variables con las siguientes definiciones:

    VariableDefinición
    MANAGEMENT_API_SERVER El archivo kubeconfig del servidor de la API de Management
    PROJECT Es el proyecto de dispositivo aislado de GDC para crear la VM.
    VM_NAME Nombre de la VM nueva El nombre solo debe contener caracteres alfanuméricos y guiones, y no debe tener más de 53 caracteres.
    VM_BOOT_DISK_NAME Nombre del nuevo disco de arranque de la VM.
    BOOT_DISK_IMAGE_NAME Nombre de la imagen que se usará para el disco de arranque de la VM nueva.
    BOOT_DISK_SIZE Tamaño del disco de arranque, como 20G.
    Este valor siempre debe ser mayor o igual que el minimumDiskSize de la imagen del disco de arranque.
    BOOT_DISK_AUTO_DELETE true o false, que indica si el disco de arranque se borra automáticamente cuando se borra la instancia de VM.
    MACHINE_TYPE Es el tipo de máquina predefinido para la VM nueva. Para seleccionar un tipo de máquina disponible, ejecuta este comando:
    kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
  3. Verifica que se haya creado la VM y espera a que muestre que está en el estado Running. El estado Running no indica que el SO esté completamente listo y accesible.

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachine.virtualmachine.gdc.goog VM_NAME -n PROJECT
    

    Reemplaza VM_NAME y PROJECT por el nombre y el proyecto de la VM. VM_NAME solo debe contener caracteres alfanuméricos y guiones.

Crea una instancia de VM con discos adicionales que no sean de arranque

Puedes crear discos que no sean de arranque cuando creas una VM. Cada disco adicional puede especificar una fuente de imagen o no. El último caso es para crear un disco en blanco.

gdcloud

  1. Crea un disco a partir de una imagen:

    gdcloud compute disks create NON_BOOT_DISK_FROM_IMAGE \
        --size=NON_BOOT_DISK_SIZE \
        --image=NON_BOOT_DISK_IMAGE_NAME \
        --image-project=NON_BOOT_DISK_IMAGE_NAMESPACE
    
  2. Crea un disco a partir de una imagen en blanco:

    gdcloud compute disks create NON_BOOT_BLANK_DISK \
        --size=NON_BOOT_BLANK_DISK_SIZE \
    
  3. Crea una instancia con los discos del paso anterior:

    gdcloud compute instances create VM_NAME \
        --machine-type=MACHINE_TYPE \
        --image=BOOT_DISK_IMAGE_NAME --image-project=vm-system \
        --boot-disk-size=BOOT_DISK_SIZE \
        --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE \
        --disk=name=NON_BOOT_DISK_FROM_IMAGE \
        --disk=name=NON_BOOT_BLANK_DISK
    

    Reemplaza lo siguiente:

    VariableDefinición
    VM_NAME Nombre de la VM nueva El nombre solo debe contener caracteres alfanuméricos y guiones, y no debe tener más de 53 caracteres.
    BOOT_DISK_IMAGE_NAME Nombre de la imagen que se usará para el disco de arranque de la VM nueva.
    BOOT_DISK_IMAGE_NAMESPACE Es el espacio de nombres de la imagen que se usará para el disco de arranque de la VM nueva. Usa vm-system para una imagen proporcionada por GDC o deja el campo en blanco para una imagen personalizada.
    BOOT_DISK_SIZE Tamaño del disco de arranque, como 20G.
    Este valor siempre debe ser mayor o igual que el minimumDiskSize de la imagen del disco de arranque.
    NO_BOOT_DISK_AUTO_DELETE true o false, que indica lo contrario a si el disco de arranque se borra automáticamente cuando se borra la instancia de VM.
    MACHINE_TYPE Es el tipo de máquina predefinido para la VM nueva. Para seleccionar un tipo de máquina disponible, ejecuta este comando:
    gdcloud compute machine-types list

    Para discos adicionales, reemplaza los siguientes valores:

    • NON_BOOT_DISK_FROM_IMAGE, NON_BOOT_BLANK_DISK: Es el nombre del disco adicional.
    • NON_BOOT_DISK_SIZE, NON_BOOT_BLANK_DISK_SIZE: Es el tamaño de los discos adicionales, por ejemplo, 20G.
    • NON_BOOT_DISK_IMAGE_NAME: Es el nombre de la imagen que se usará como disco que no es de arranque.
    • NON_BOOT_DISK_IMAGE_NAMESPACE: Es el espacio de nombres de la imagen que se usará como disco que no es de arranque. Usa vm-system para una imagen proporcionada por GDC o deja el campo en blanco para una imagen personalizada.

API

  1. Crea una VM con un disco que no sea de arranque:
kubectl --kubeconfig MANAGEMENT_API_SERVER \
    apply -n PROJECT -f - <<EOF
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineDisk
metadata:
  name: NON_BOOT_DISK_FROM_IMAGE
spec:
  source:
    image:
      name: NON_BOOT_DISK_IMAGE_NAME
      namespace: NON_BOOT_DISK_IMAGE_NAMESPACE
  size: NON_BOOT_DISK_SIZE
---
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineDisk
metadata:
  name: NON_BOOT_BLANK_DISK
spec:
  size: NON_BOOT_BLANK_DISK_SIZE
---
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineDisk
metadata:
  name: VM_BOOT_DISK_NAME
spec:
  source:
    image:
      name: BOOT_DISK_IMAGE_NAME
      namespace: BOOT_DISK_IMAGE_NAMESPACE
  size: BOOT_DISK_SIZE
---
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachine
metadata:
  name: VM_NAME
spec:
  compute:
    virtualMachineType: MACHINE_TYPE
  disks:
    - virtualMachineDiskRef:
        name: VM_BOOT_DISK_NAME
      boot: true
      autoDelete: BOOT_DISK_AUTO_DELETE
    - virtualMachineDiskRef:
        name: NON_BOOT_DISK_FROM_IMAGE
    - virtualMachineDiskRef:
        name: NON_BOOT_BLANK_DISK
EOF

Reemplaza lo siguiente:

VariableDefinición
MANAGEMENT_API_SERVER Es la ruta de acceso kubeconfig del servidor de la API de Management.
PROJECT Es el proyecto de GDC en el que deseas crear la VM.
VM_NAME Nombre de la VM nueva El nombre solo debe contener caracteres alfanuméricos y guiones, y no debe tener más de 53 caracteres.
VM_BOOT_DISK_NAME Nombre del nuevo disco de arranque de la VM.
BOOT_DISK_IMAGE_NAME Nombre de la imagen que se usará para el disco de arranque de la VM nueva.
BOOT_DISK_IMAGE_NAMESPACE Es el espacio de nombres de la imagen que se usará para el disco de arranque de la VM nueva. Usa el espacio de nombres vm-system para una imagen proporcionada por GDC o déjalo en blanco para una imagen personalizada.
BOOT_DISK_SIZE Tamaño del disco de arranque, como 20G.
Este valor siempre debe ser mayor o igual que el minimumDiskSize de la imagen del disco de arranque.
BOOT_DISK_AUTO_DELETE true o false, que indica si el disco de arranque se borra automáticamente cuando se borra la instancia de VM.
MACHINE_TYPE Es el tipo de máquina predefinido para la VM nueva. Para seleccionar un tipo de máquina disponible, ejecuta este comando:
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system

Para discos adicionales, reemplaza los siguientes valores:

  • NON_BOOT_DISK_FROM_IMAGE, NON_BOOT_BLANK_DISK: Es el nombre del disco adicional.
  • NON_BOOT_DISK_SIZE, NON_BOOT_BLANK_DISK_SIZE: Es el tamaño de los discos adicionales, por ejemplo, 20G.
  • NON_BOOT_DISK_IMAGE_NAME: Es el nombre de la imagen que deseas usar como disco que no es de arranque.
  • NON_BOOT_DISK_IMAGE_NAMESPACE: Es el espacio de nombres de la imagen que deseas usar como disco que no es de arranque. Usa el espacio de nombres vm-system para una imagen proporcionada por GDC o déjalo en blanco para una imagen personalizada.

Formatea y activa los discos antes de usarlos.

Crea una VM a partir de una instantánea o copia de seguridad

Puedes crear una VM nueva a partir de una instantánea de las siguientes maneras:

  • Restablece un disco de arranque de VM: Si creaste una copia de seguridad del disco de arranque de una VM con una instantánea, usa esa instantánea para crear una VM nueva. Consulta Cómo restablecer una instantánea.
  • Restablece un disco que no es de arranque: Si creaste una copia de seguridad de un disco que no es de arranque con una instantánea, también puedes restablecer la instantánea en un nuevo disco que no es de arranque cuando crees una VM, siguiendo las mismas instrucciones.

Para crear más de una VM con el mismo disco de arranque, haz lo siguiente:

  1. Crea una imagen personalizada.
  2. Crea VMs a partir de esa imagen sin usar una instantánea.

Crea una VM sin usar un tipo de máquina

El dispositivo aislado de GDC ofrece tipos predefinidos de máquinas que puedes usar cuando creas una instancia de VM. Un tipo predefinido de máquina tiene una cantidad predeterminada de CPU virtuales y memoria.

Si los tipos predefinidos de VM no satisfacen tus necesidades, crea una instancia de VM con una configuración de hardware virtualizada y personalizada.

Las VM personalizadas son ideales en las siguientes situaciones:

  • Las cargas de trabajo que no son adecuadas para los tipos predefinidos de VM
  • Cargas de trabajo que requieren mayor potencia de procesamiento o memoria, pero no necesitan todas las actualizaciones que proporciona el próximo nivel de tipo de máquina

gdcloud

  1. Crea una VM con un tipo de máquina que definas:

    gdcloud compute instances create VM_NAME \
        --custom-cpu=NUM_VCPU \
        --custom-memory=MEMORY
        --image=BOOT_DISK_IMAGE_NAME --image-project=vm-system \
        --boot-disk-size=BOOT_DISK_SIZE \
        --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE
    

    Reemplaza lo siguiente:

    VariableDefinición
    VM_NAME Nombre de la VM nueva El nombre solo debe contener caracteres alfanuméricos y guiones, y no debe tener más de 53 caracteres.
    BOOT_DISK_IMAGE_NAME Nombre de la imagen que se usará para el disco de arranque de la VM nueva.
    BOOT_DISK_SIZE Tamaño del disco de arranque, como 20G.
    Este valor siempre debe ser mayor o igual que el minimumDiskSize de la imagen del disco de arranque.
    NO_BOOT_DISK_AUTO_DELETE true o false, que indica lo contrario a si el disco de arranque se borra automáticamente cuando se borra la instancia de VM.
    NUM_VCPU Es la cantidad de CPU virtuales. La cantidad máxima de CPU virtuales admitidas es 192.
    MEMORY Tamaño de la memoria, como 8G. El tamaño máximo de la memoria es de un terabyte (TB).

API

  1. Crea una VM con un tipo de máquina que definas:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        apply -n PROJECT -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
          namespace: vm-system
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        vcpus: NUM_VCPU
        memory: MEMORY
      disks:
        - virtualMachineDiskRef:
            name: VM_BOOT_DISK_NAME
          boot: true
          autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    Reemplaza lo siguiente:

    VariableDefinición
    MANAGEMENT_API_SERVER Es la ruta de acceso kubeconfig del servidor de la API de Management.
    PROJECT Es el proyecto de dispositivo aislado de GDC para crear la VM.
    VM_NAME Nombre de la VM nueva El nombre solo debe contener caracteres alfanuméricos y guiones, y no debe tener más de 53 caracteres.
    VM_BOOT_DISK_NAME Nombre del nuevo disco de arranque de la VM.
    BOOT_DISK_IMAGE_NAME Nombre de la imagen que se usará para el disco de arranque de la VM nueva.
    BOOT_DISK_SIZE Tamaño del disco de arranque, como 20G.
    Este valor siempre debe ser mayor o igual que el minimumDiskSize de la imagen del disco de arranque.
    BOOT_DISK_AUTO_DELETE true o false, que indica si el disco de arranque se borra automáticamente cuando se borra la instancia de VM.
    NUM_VCPU Es la cantidad de CPU virtuales. La cantidad máxima de CPU virtuales admitidas es 192.
    MEMORY Tamaño de la memoria, como 8G. El tamaño máximo de la memoria es de un terabyte.