Crear un disco de arranque personalizado

En este documento, se describen los pasos para crear discos de arranque personalizados para máquinas virtuales (VMs) en Google Distributed Cloud (GDC) aislado.

Cuando creas una instancia de VM, Distributed Cloud crea automáticamente un disco persistente de arranque con configuraciones predeterminadas. También debes crear un disco de arranque para la VM. Puedes usar una imagen pública o una imagen personalizada.

Si necesitas discos de almacenamiento de datos adicionales para tus instancias, agrega un disco persistente a tu VM.

Este documento está dirigido a los desarrolladores de grupos de administradores de plataformas o de operadores de aplicaciones que crean discos de arranque personalizados para VMs. Para obtener más información, consulta Públicos de la documentación de Google Distributed Cloud aislado.

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 de Distributed Cloud 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. Accede y genera el archivo kubeconfig para el servidor de la API de Management si no tienes uno.

  2. Usa la ruta de acceso al archivo kubeconfig del servidor de la API de Management para reemplazar MANAGEMENT_API_SERVER en estas instrucciones.

Solicita roles de IAM

Comunícate con el administrador de IAM del proyecto para solicitar los siguientes roles en tu proyecto:

  • Administrador de proyectos de máquinas virtuales (project-vm-admin): Crea, modifica, enumera y borra VMs estándar y de alto rendimiento en el espacio de nombres del proyecto.

  • Visualizador del proyecto(project-viewer): Puede ver todos los recursos dentro del espacio de nombres del proyecto.

Todos los roles de VM deben vincularse al espacio de nombres del proyecto en el que reside la VM. Sigue los pasos para verificar tu acceso.

Crea un disco de arranque

Usa los procedimientos descritos en esta página para crear discos de arranque que puedas usar más adelante a fin de crear VMs.

Crea un disco de arranque a partir de una imagen

Puedes crear un disco de arranque persistente independiente sin tener que crear una instancia al mismo tiempo. Luego, puedes adjuntarlo a una instancia. En esta sección, se muestra cómo crear un disco de arranque a partir de una imagen de SO proporcionada por GDC o una imagen de SO personalizada.

Crea un disco de arranque a partir de una imagen proporcionada por GDC

Antes de crear un disco de arranque con una imagen proporcionada por GDC, revisa la lista de imágenes disponibles. Luego, crea un disco de arranque con la imagen proporcionada.

gdcloud

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

    gdcloud compute images list
    

    Este comando incluye imágenes proporcionadas por Distributed Cloud y personalizadas. Elige cualquiera de los dos en el espacio de nombres vm-system.

  2. Selecciona una imagen proporcionada por Distributed Cloud para crear el disco de la VM:

    gdcloud compute disks create BOOT_DISK_NAME \
      --project=PROJECT \
      --size=DISK_SIZE \
      --image=IMAGE_NAME \
      --image-project=vm-system
    

    Reemplaza las variables con las siguientes definiciones:

    VariableDefinición
    BOOT_DISK_NAME Es el nombre del disco de arranque.
    PROJECT Es el proyecto de GDC en el que se creará el disco de arranque.
    DISK_SIZE El tamaño del disco de arranque debe ser al menos el minimumDiskSize de la imagen.
    IMAGE_NAME Es el nombre de la imagen.

kubectl

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

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n vm-system \
      get virtualmachineimages.virtualmachine.gdc.goog
    
  2. Obtén el minimumDiskSize de una imagen específica proporcionada por GDC. El tamaño del disco de arranque personalizado creado debe ser al menos el siguiente: minimumDiskSize

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n vm-system \
      get virtualmachineimages.virtualmachine.gdc.goog IMAGE_NAME \
      -ojsonpath='{.spec.minimumDiskSize}'
    
  3. Crea un objeto VirtualMachineDisk:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      apply -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: BOOT_DISK_NAME
    spec:
      source:
        image:
          name: IMAGE_NAME
          namespace: vm-system
      size: DISK_SIZE
    EOF
    

    Reemplaza las variables con las siguientes definiciones:

    VariableDefinición
    MANAGEMENT_API_SERVER Es el archivo kubeconfig del servidor de la API de administración.
    IMAGE_NAME Es el nombre de la imagen.
    PROJECT Es el proyecto de GDC en el que se creará el disco de arranque.
    BOOT_DISK_NAME Es el nombre del disco de arranque.
    DISK_SIZE El tamaño del disco de arranque debe ser al menos el minimumDiskSize de la imagen.

Crea un disco de arranque 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.

Configura los roles de IAM necesarios para acceder a imágenes personalizadas en tu proyecto si aún no lo hiciste. Luego, continúa con estas instrucciones.

gdcloud

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

    gdcloud compute images list \
      --project=PROJECT \
    
  2. Selecciona una imagen personalizada para crear el disco de la VM:

    gdcloud compute disks create BOOT_DISK_NAME \
      --project=PROJECT \
      --size=DISK_SIZE \
      --image=IMAGE_NAME \
      --image-project=PROJECT
    

    Reemplaza las variables con las siguientes definiciones:

    VariableDefinición
    BOOT_DISK_NAME Es el nombre del disco de arranque.
    PROJECT Es el proyecto de GDC en el que se creará el disco de arranque.
    DISK_SIZE El tamaño del disco de arranque debe ser al menos el minimumDiskSize de la imagen.
    IMAGE_NAME Es el nombre de la imagen.

API

  1. Enumera todas las imágenes personalizadas:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      get virtualmachineimages.virtualmachine.gdc.goog
    
  2. Obtén el minimumDiskSize de una imagen personalizada específica. El tamaño del disco de arranque personalizado creado debe ser al menos minimumDiskSize:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n vm-system \
      get virtualmachineimages.virtualmachine.gdc.goog IMAGE_NAME \
      -ojsonpath='{.spec.minimumDiskSize}'
    
  3. Crea un objeto VirtualMachineDisk:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      apply -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: BOOT_DISK_NAME
    spec:
      source:
        image:
          name: IMAGE_NAME
          namespace: PROJECT
      size: DISK_SIZE
    EOF
    

    Reemplaza las variables con las siguientes definiciones:

    VariableDefinición
    MANAGEMENT_API_SERVER Es el archivo kubeconfig del servidor de la API de administración.
    IMAGE_NAME Nombre de la imagen elegida en el comando list all custom images.
    PROJECT Es el proyecto de GDC en el que se creará el disco de arranque.
    BOOT_DISK_NAME Es el nombre del disco de arranque.
    DISK_SIZE El tamaño del disco de arranque debe ser al menos el minimumDiskSize de la imagen.

Próximos pasos