Crear una VM con recursos de CPU y memoria específicos mediante VM Runtime en GDC

Este documento está dirigido a los propietarios de aplicaciones y a los administradores de plataformas que ejecutan Google Distributed Cloud. En este documento se explica cómo crear y usar tipos de VM o especificar manualmente los recursos de CPU y memoria al crear VMs que usen VM Runtime en GDC.

Antes de empezar

Para completar este documento, necesitas tener acceso a los siguientes recursos:

Crear VM

Cuando creas una VM, puedes especificar manualmente los requisitos de CPU y memoria. Esta función te permite crear máquinas virtuales con los recursos de computación adecuados para satisfacer las necesidades de tu aplicación.

Para crear una VM y especificar manualmente los requisitos de CPU y memoria, sigue estos pasos.

CLI

  • Usa kubectl para crear una VM:

    kubectl virt create vm VM_NAME \
      --image ubuntu20.04 \
      --cpu CPU_NUMBER \
      --memory MEMORY_SIZE
    

    Sustituye los siguientes valores:

    • VM_NAME: el nombre de tu máquina virtual. Para obtener más información sobre las restricciones de nombres, consulta Nombres e IDs de objetos.
    • CPU_NUMBER: número de CPUs virtuales (vCPUs) que se asignarán a la VM.
      • Puedes asignar entre 1 y 96 vCPUs a una VM.
    • MEMORY_SIZE: cantidad de memoria que se asignará a la máquina virtual.

Archivo de manifiesto

  1. Crea un archivo de manifiesto VirtualMachine, como my-custom-vm.yaml, en el editor que quieras:

    nano my-custom-vm.yaml
    
  2. Copia y pega el siguiente manifiesto YAML:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        cpu:
          vcpus: VCPU_NUMBER
        memory:
          capacity: MEMORY_SIZE
      interfaces:
        - name: eth0
          networkName: pod-network
          default: true
      disks:
        - virtualMachineDiskName: VM_NAME-boot-dv
          boot: true
    

    En este archivo YAML, define los siguientes ajustes:

    • VM_NAME: el nombre de tu máquina virtual. Para obtener más información sobre las restricciones de nombres, consulta Nombres e IDs de objetos.
    • VCPU_NUMBER: número de vCPUs que se asignarán a la VM.
      • Puedes asignar entre 1 y 96 vCPUs a una VM.
    • MEMORY_SIZE: cantidad de memoria que se asignará a la VM.

    La VM se conecta eth0 a la red pod-network predeterminada.

    El disco de arranque llamado VM_NAME-boot-dv ya debe existir. Para obtener más información, consulta Crear y gestionar discos virtuales.

  3. Guarda y cierra el manifiesto de la VM en tu editor.

  4. Crea la VM con kubectl:

    kubectl apply -f my-custom-vm.yaml
    

Crear y usar tipos de VM

Cuando habilitas VM Runtime en GDC, se dispone de una nueva definición de recurso personalizado VirtualMachineType. Esta definición se usa para especificar los recursos de CPU y memoria de una VM. Puedes crear tipos de máquinas virtuales para las diferentes cargas de trabajo que necesites y aplicar un conjunto coherente de recursos de computación a las máquinas virtuales en función de estos tipos.

Si el entorno de ejecución de máquinas virtuales en GDC está habilitado en Google Distributed Cloud, vm-controller-manager instala un tipo de máquina virtual predefinido. La siguiente definición muestra el tipo de VM example-machinetype predeterminado:

  apiVersion: vm.cluster.gke.io/v1
  kind: VirtualMachineType
  metadata:
    name: "example-machinetype"
    labels:
      vm.cluster.gke.io/predefined-machinetype: "true"
  spec:
    cpu:
      vcpus: 2
    memory:
      capacity: 4G

No puedes actualizar este tipo de VM predefinido. Este tipo de VM predefinido se vuelve a instalar si no existe en el clúster cada vez que se inicia o se reinicia el vm-controller-manager, por ejemplo, si has eliminado el tipo de VM.

Crear un tipo de VM

Puedes crear tus propios tipos de máquinas virtuales para que se ajusten a las necesidades de computación de tus cargas de trabajo.

  1. Crea un archivo de manifiesto VirtualMachineType, como my-vm-type.yaml, en el editor que prefieras:

    nano my-vm-type.yaml
    
  2. Copia y pega el siguiente manifiesto YAML:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineType
    metadata:
      name: my-vm-type
    spec:
      cpu:
        vcpus: VCPU_NUMBER
      memory:
        capacity: MEMORY_SIZE
    

    En este tipo de VM, se definen los siguientes ajustes:

    • VM_NAME: el nombre de tu máquina virtual. Para obtener más información sobre las restricciones de nombres, consulta Nombres e IDs de objetos.
    • VCPU_NUMBER: número de vCPUs que se asignarán a la VM.
      • Puedes asignar entre 1 y 96 vCPUs a una VM.
    • MEMORY_SIZE: cantidad de memoria que se asignará a la VM.
  3. Guarda y cierra el manifiesto de tipo de VM en tu editor.

  4. Crea el tipo de máquina con kubectl:

    kubectl apply -f my-vm-type.yaml
    

Crear una VM con un tipo de VM

Especifica un tipo de VM en tu archivo de manifiesto VirtualMachine para aplicar ajustes predefinidoscompute a tu VM.

  1. Crea un archivo de manifiesto VirtualMachine, como my-custom-vm.yaml, en el editor que prefieras.

    nano my-custom-vm.yaml
    
  2. Copia y pega el siguiente manifiesto YAML:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineTypeName: my-vm-type
      interfaces:
        - name: eth0
          networkName: pod-network
          default: true
      disks:
        - virtualMachineDiskName: VM_NAME-boot-dv
          boot: true
    

    En este archivo YAML, especifica el nombre del tipo de VM personalizado que has creado en la sección anterior, como my-vm-type, como valor de virtualMachineTypeName.

    La VM se conecta eth0 a la red pod-network predeterminada.

    El disco de arranque llamado VM_NAME-boot-dv ya debe existir. Para obtener más información, consulta Crear y gestionar discos virtuales.

  3. Guarda y cierra el manifiesto de la VM en tu editor.

  4. Crea la VM con kubectl:

    kubectl apply -f my-custom-vm.yaml
    

Siguientes pasos