En esta página se explica cómo crear una instancia de máquina virtual (VM) usando una imagen o una captura del disco de arranque.
Puedes crear una VM con uno o varios discos. También puedes añadir discos a tu VM después de crearla. El dispositivo air-gapped de Google Distributed Cloud (GDC) inicia automáticamente la instancia de VM después de crearla.
Puedes añadir secuencias de comandos de inicio a una VM, ya sea antes o después de crearla. Para obtener más información sobre las secuencias de comandos de inicio, consulta la página Usar una secuencia de comandos de inicio con una instancia de VM.
Antes de empezar
Para usar los comandos de la gdcloud
interfaz de línea de comandos (CLI), asegúrate de haber descargado, instalado y configurado la gdcloud
CLI.
Todos los comandos del dispositivo aislado de GDC usan la CLI gdcloud
o kubectl
y requieren un entorno de sistema operativo (SO).
Obtener la ruta del archivo kubeconfig
Para ejecutar comandos en el servidor de la API Management, asegúrate de tener los siguientes recursos:
Busca el nombre del servidor de la API Management o pregunta a tu administrador de plataforma cuál es.
Inicia sesión y genera el archivo kubeconfig del servidor de la API Management si no tienes uno.
Usa la ruta para sustituir
MANAGEMENT_API_SERVER{"</var>"}}
en estas instrucciones.
Solicitar permisos y acceso
Para realizar las tareas que se indican en esta página, debes tener el rol de administrador de máquinas virtuales de proyecto. Sigue los pasos para verificar o pide al administrador de gestión de identidades y accesos de tu proyecto que te asigne el rol Administrador de máquinas virtuales de proyectos (project-vm-admin
) en el espacio de nombres del proyecto en el que reside la VM.
Para realizar operaciones con VMs mediante la consola de GDC o la CLI de gdcloud, pide al administrador de gestión de identidades y accesos de tu proyecto que te asigne el rol Administrador de VirtualMachine de proyecto y el rol Lector de proyectos (project-viewer
).
Crear una instancia de VM a partir de una imagen
En esta sección se explica cómo crear una VM a partir de una imagen de SO proporcionada por GDC o de una imagen de SO personalizada.
Ver una lista de imágenes proporcionadas por GDC
Antes de crear una VM con una imagen proporcionada por GDC, consulta la lista de imágenes disponibles.
gdcloud
Lista todas las imágenes disponibles y su tamaño de disco mínimo:
gdcloud compute images list
Este comando incluye imágenes proporcionadas por GDC e imágenes personalizadas. Elige una de las imágenes del espacio de nombres vm-system
.
API
Lista de todas las imágenes proporcionadas por GDC:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachineimage.virtualmachine.gdc.goog --namespace vm-system
Obtener el
minimumDiskSize
de una imagen concreta proporcionada por GDC:kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachineimage.virtualmachine.gdc.goog --namespace vm-system \ BOOT_DISK_IMAGE_NAME -ojsonpath='{.spec.minimumDiskSize}{"\n"}'
Haz los cambios siguientes:
MANAGEMENT_API_SERVER
con elkubeconfig
del servidor de la API Management.BOOT_DISK_IMAGE_NAME
con el nombre de la imagen.
Crear 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
Haz los cambios siguientes:
Variable | Definición |
---|---|
VM_NAME |
Nombre de la nueva VM. El nombre solo puede contener caracteres alfanuméricos y guiones, y no puede tener más de 53 caracteres. |
BOOT_DISK_IMAGE_NAME |
Nombre de la imagen que se va a usar para el disco de arranque de la nueva VM. |
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 el valor inverso de si el disco de arranque se elimina automáticamente cuando se elimina la instancia de máquina virtual. |
MACHINE_TYPE |
El tipo de máquina predefinido de la nueva VM. Para seleccionar un tipo de máquina disponible, ejecuta este comando:
gdcloud compute machine-types list
|
API
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
Haz los cambios siguientes:
Variable Definición MANAGEMENT_API_SERVER
Ruta del servidor de la API Management kubeconfig
.PROJECT
El proyecto del dispositivo con air gap de GDC para crear la VM. VM_NAME
Nombre de la nueva VM. El nombre solo puede contener caracteres alfanuméricos y guiones, y no puede 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 va a usar para el disco de arranque de la nueva VM. BOOT_DISK_SIZE
Tamaño del disco de arranque, como 20G
.
Este valor siempre debe ser mayor o igual que elminimumDiskSize
de la imagen del disco de arranque.BOOT_DISK_AUTO_DELETE
true
ofalse
, que indica si el disco de arranque se elimina automáticamente cuando se elimina la instancia de máquina virtual.MACHINE_TYPE
El tipo de máquina predefinido de la nueva VM. Para seleccionar un tipo de máquina disponible, ejecuta este comando:
gdcloud compute machine-types list
Verifica que se haya creado la VM y espera a que muestre el estado
Running
. El estadoRunning
no indica que el SO esté totalmente listo y accesible.kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachine.virtualmachine.gdc.goog VM_NAME -n PROJECT
Sustituye
VM_NAME
yPROJECT
por el nombre y el proyecto de la VM.VM_NAME
Solo puede contener caracteres alfanuméricos y guiones.Para añadir una secuencia de comandos de inicio a la creación de tu instancia de VM, sigue los pasos que se indican en la página Usar una secuencia de comandos de inicio con una instancia de VM. Asegúrate de apagar la máquina virtual antes de añadir la secuencia de comandos.
Crear una instancia de VM a partir de una imagen personalizada
Una 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
Lista todas las imágenes personalizadas:
gdcloud compute images list --no-standard-images=true
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
Haz los cambios siguientes:
Variable Definición VM_NAME
Nombre de la nueva VM. El nombre solo puede contener caracteres alfanuméricos y guiones, y no puede tener más de 53 caracteres. BOOT_DISK_IMAGE_NAME
Nombre de la imagen que se va a usar para el disco de arranque de la nueva VM. BOOT_DISK_SIZE
Tamaño del disco de arranque, como 20G
.
Este valor siempre debe ser mayor o igual que elminimumDiskSize
de la imagen del disco de arranque.NO_BOOT_DISK_AUTO_DELETE
true
ofalse
, que indica el valor inverso de si el disco de arranque se elimina automáticamente cuando se elimina la instancia de máquina virtual.MACHINE_TYPE
El tipo de máquina predefinido de la nueva VM. Para seleccionar un tipo de máquina disponible, ejecuta este comando:
gdcloud compute machine-types list
API
Lista de todas las imágenes personalizadas:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachineimage.virtualmachine.gdc.goog --namespace PROJECT
Obtén el
minimumDiskSize
de una imagen concreta 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"}'
Haz los cambios siguientes:
Variable Definición MANAGEMENT_API_SERVER
Ruta del servidor de la API Management kubeconfig
.BOOT_DISK_IMAGE_NAME
El nombre de la imagen elegida en el comando para listar todas las imágenes personalizadas. PROJECT
El proyecto de la imagen. 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
Sustituye las variables con las siguientes definiciones:
Variable Definición MANAGEMENT_API_SERVER
El archivo kubeconfig
del servidor de la API Management.PROJECT
El proyecto del dispositivo con air gap de GDC para crear la VM. VM_NAME
Nombre de la nueva VM. El nombre solo puede contener caracteres alfanuméricos y guiones, y no puede 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 va a usar para el disco de arranque de la nueva VM. BOOT_DISK_SIZE
Tamaño del disco de arranque, como 20G
.
Este valor siempre debe ser mayor o igual que elminimumDiskSize
de la imagen del disco de arranque.BOOT_DISK_AUTO_DELETE
true
ofalse
, que indica si el disco de arranque se elimina automáticamente cuando se elimina la instancia de máquina virtual.MACHINE_TYPE
El tipo de máquina predefinido de la nueva VM. Para seleccionar un tipo de máquina disponible, ejecuta este comando:
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
Verifica que se haya creado la VM y espera a que muestre el estado
Running
. El estadoRunning
no indica que el SO esté totalmente listo y accesible.kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachine.virtualmachine.gdc.goog VM_NAME -n PROJECT
Sustituye
VM_NAME
yPROJECT
por el nombre y el proyecto de la VM.VM_NAME
Solo puede contener caracteres alfanuméricos y guiones.
Crear una instancia de VM con discos adicionales que no sean de arranque
Puedes crear discos que no sean de arranque al crear una VM. Cada disco adicional puede especificar una fuente de imagen o no. Este último caso se utiliza para crear un disco en blanco.
gdcloud
Para crear un disco a partir de una imagen, sigue estos pasos:
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
Crear un disco a partir de una imagen en blanco:
gdcloud compute disks create NON_BOOT_BLANK_DISK \ --size=NON_BOOT_BLANK_DISK_SIZE \
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
Haz los cambios siguientes:
Variable Definición VM_NAME
Nombre de la nueva VM. El nombre solo puede contener caracteres alfanuméricos y guiones, y no puede tener más de 53 caracteres. BOOT_DISK_IMAGE_NAME
Nombre de la imagen que se va a usar para el disco de arranque de la nueva VM. BOOT_DISK_IMAGE_NAMESPACE
El espacio de nombres de la imagen que se va a usar para el disco de arranque de la nueva VM. Usa vm-system
para una imagen proporcionada por GDC o deja el campo en blanco para usar una imagen personalizada.BOOT_DISK_SIZE
Tamaño del disco de arranque, como 20G
.
Este valor siempre debe ser mayor o igual que elminimumDiskSize
de la imagen del disco de arranque.NO_BOOT_DISK_AUTO_DELETE
true
ofalse
, que indica el valor inverso de si el disco de arranque se elimina automáticamente cuando se elimina la instancia de máquina virtual.MACHINE_TYPE
El tipo de máquina predefinido de la nueva VM. Para seleccionar un tipo de máquina disponible, ejecuta este comando:
gdcloud compute machine-types list
En el caso de los discos adicionales, sustituye lo siguiente:
NON_BOOT_DISK_FROM_IMAGE
yNON_BOOT_BLANK_DISK
: el nombre del disco adicional.NON_BOOT_DISK_SIZE
yNON_BOOT_BLANK_DISK_SIZE
: el tamaño de los discos adicionales (por ejemplo,20G
).NON_BOOT_DISK_IMAGE_NAME
: el nombre de la imagen que se va a usar como disco no de arranque.NON_BOOT_DISK_IMAGE_NAMESPACE
: el espacio de nombres de la imagen que se va a usar como disco que no es de arranque. Usavm-system
para una imagen proporcionada por GDC o deja el campo en blanco para usar una imagen personalizada.
API
- 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
Haz los cambios siguientes:
Variable | Definición |
---|---|
MANAGEMENT_API_SERVER |
Ruta del servidor de la API Management kubeconfig . |
PROJECT |
El proyecto de GDC en el que quieres crear la VM. |
VM_NAME |
Nombre de la nueva VM. El nombre solo puede contener caracteres alfanuméricos y guiones, y no puede 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 va a usar para el disco de arranque de la nueva VM. |
BOOT_DISK_IMAGE_NAMESPACE |
El espacio de nombres de la imagen que se va a usar para el disco de arranque de la nueva VM. 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 elimina automáticamente cuando se elimina la instancia de máquina virtual. |
MACHINE_TYPE |
El tipo de máquina predefinido de la nueva VM. Para seleccionar un tipo de máquina disponible, ejecuta este comando:
kubectl --kubeconfig MANAGEMENT_API_SERVER get
virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
|
En el caso de los discos adicionales, sustituye lo siguiente:
NON_BOOT_DISK_FROM_IMAGE
yNON_BOOT_BLANK_DISK
: el nombre del disco adicional.NON_BOOT_DISK_SIZE
yNON_BOOT_BLANK_DISK_SIZE
: el tamaño de los discos adicionales (por ejemplo,20G
).NON_BOOT_DISK_IMAGE_NAME
: el nombre de la imagen que quieras usar como disco que no sea de arranque.NON_BOOT_DISK_IMAGE_NAMESPACE
: el espacio de nombres de la imagen que quieras usar como disco no de arranque. Usa el espacio de nombresvm-system
para una imagen proporcionada por GDC o déjalo en blanco para una imagen personalizada.
Formatea y monta los discos antes de usarlos.
Crear una VM a partir de una copia de seguridad o una instantánea
Puedes crear una máquina virtual a partir de una captura de las siguientes formas:
- Restaurar un disco de arranque de una VM: si has creado una copia de seguridad de un disco de arranque de una VM con una captura, utiliza esa captura para crear una VM. Consulta Restaurar una instantánea.
- Restaurar un disco que no es de arranque: si has creado una copia de seguridad de un disco que no es de arranque con una captura, también puedes restaurar la captura en un disco que no es de arranque nuevo al crear una VM siguiendo las mismas instrucciones.
Para crear más de una VM con el mismo disco de arranque, sigue estos pasos:
- Crea una imagen personalizada.
- Crea VMs a partir de esa imagen sin usar una instantánea.
Crear una VM sin usar un tipo de máquina
El dispositivo aislado de GDC ofrece tipos de máquinas predefinidos que puedes usar al crear una instancia de VM. Un tipo de máquina predefinido tiene un número preestablecido de vCPUs y una cantidad de memoria.
Si las VMs predefinidas no se ajustan a tus necesidades, crea una instancia de VM con una configuración de hardware virtualizado personalizada.
Las VMs personalizadas son ideales en los siguientes casos:
- Cargas de trabajo que no se pueden aplicar a los tipos de VM predefinidos.
Cargas de trabajo que requieren más potencia de procesamiento o más memoria, pero que no necesitan todas las mejoras que ofrece el tipo de máquina del siguiente nivel.
gdcloud
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
Haz los cambios siguientes:
Variable Definición VM_NAME
Nombre de la nueva VM. El nombre solo puede contener caracteres alfanuméricos y guiones, y no puede tener más de 53 caracteres. BOOT_DISK_IMAGE_NAME
Nombre de la imagen que se va a usar para el disco de arranque de la nueva VM. BOOT_DISK_SIZE
Tamaño del disco de arranque, como 20G
.
Este valor siempre debe ser mayor o igual que elminimumDiskSize
de la imagen del disco de arranque.NO_BOOT_DISK_AUTO_DELETE
true
ofalse
, que indica el valor inverso de si el disco de arranque se elimina automáticamente cuando se elimina la instancia de máquina virtual.NUM_VCPU
Número de vCPUs. El número máximo de vCPUs admitidas es 192. MEMORY
El tamaño de la memoria, como 8G
. El tamaño máximo de memoria es de un terabyte (TB).
API
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
Haz los cambios siguientes:
Variable Definición MANAGEMENT_API_SERVER
Ruta del servidor de la API Management kubeconfig
.PROJECT
El proyecto del dispositivo con air gap de GDC para crear la VM. VM_NAME
Nombre de la nueva VM. El nombre solo puede contener caracteres alfanuméricos y guiones, y no puede 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 va a usar para el disco de arranque de la nueva VM. BOOT_DISK_SIZE
Tamaño del disco de arranque, como 20G
.
Este valor siempre debe ser mayor o igual que elminimumDiskSize
de la imagen del disco de arranque.BOOT_DISK_AUTO_DELETE
true
ofalse
, que indica si el disco de arranque se elimina automáticamente cuando se elimina la instancia de máquina virtual.NUM_VCPU
Número de vCPUs. El número máximo de vCPUs admitidas es 192. MEMORY
El tamaño de la memoria, como 8G
. El tamaño máximo de la memoria es de un TB.