Crea una VM con recursos de CPU y memoria específicos mediante el entorno de ejecución de VM de Anthos

Este documento está dirigido a los propietarios de aplicaciones y administradores de plataformas que ejecutan clústeres de Anthos alojados en equipos físicos. En este documento, se muestra cómo crear y usar tipos de VM o especificar de forma manual recursos de CPU y memoria cuando creas VM que usan el entorno de ejecución de VM de Anthos.

Antes de comenzar

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

Cree una VM

Cuando creas una VM, puedes especificar manualmente los requisitos de CPU y memoria. Esta capacidad te permite crear VM con los recursos de procesamiento 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
    

    Reemplaza los siguientes valores:

    • VM_NAME: el nombre de tu VM. Para obtener más información sobre las restricciones de nombres, consulta ID y nombres de objetos.
    • CPU_NUMBER: La cantidad de CPU virtuales (vCPU) que se asignarán a la VM.
      • Puedes asignar entre 1 y 96 CPU virtuales a una VM.
    • MEMORY_SIZE: La cantidad de memoria que se asigna a la VM.

Manifest

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

    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 la siguiente configuración:

    • VM_NAME: el nombre de tu VM. Para obtener más información sobre las restricciones de nombres, consulta ID y nombres de objetos.
    • VCPU_NUMBER: la cantidad de CPU virtuales que se asignan a la VM.
      • Puedes asignar entre 1 y 96 CPU virtuales a una VM.
    • MEMORY_SIZE: la cantidad de memoria que se asigna a la VM.

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

    El disco de arranque llamado VM_NAME-boot-dv ya debe existir. Si deseas obtener más información, consulta Crea y administra discos virtuales.

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

  4. Crea la VM mediante kubectl:

    kubectl apply -f my-custom-vm.yaml
    

Crea y usa tipos de VM

Cuando habilitas el entorno de ejecución de VM de Anthos, se encuentra disponible una definición de recurso personalizado nuevo de VirtualMachineType. Esta definición se usa para especificar los recursos de CPU y memoria de una VM. Puedes crear tipos de VM para las diferentes cargas de trabajo que necesites y aplicar un conjunto coherente de recursos de procesamiento a las VM según estos tipos.

Si el entorno de ejecución de VM de Anthos está habilitado en clústeres de Anthos alojados en equipos físicos, vm-controller-manager instala un tipo de VM predefinido. En la siguiente definición, se 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 vm-controller-manager, por ejemplo, si borraste el tipo de VM.

Crea un tipo de VM

Puedes crear tus propios tipos de VM para que se adapten a las necesidades de procesamiento de tus cargas de trabajo.

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

    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, defines la siguiente configuración:

    • VM_NAME: el nombre de tu VM. Para obtener más información sobre las restricciones de nombres, consulta ID y nombres de objetos.
    • VCPU_NUMBER: la cantidad de CPU virtuales que se asignan a la VM.
      • Puedes asignar entre 1 y 96 CPU virtuales a una VM.
    • MEMORY_SIZE: la cantidad de memoria que se asigna a la VM.
  3. Guarda y cierra el manifiesto del tipo de VM en el editor.

  4. Crea el tipo de VM mediante kubectl:

    kubectl apply -f my-vm-type.yaml
    

Crea una VM con un tipo de VM

Especifica un tipo de VM en tu manifiesto VirtualMachine para aplicar la configuración predefinida compute a tu VM.

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

    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 de tu tipo de VM personalizado que creaste en la sección anterior, como my-vm-type, como el valor para virtualMachineTypeName.

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

    El disco de arranque llamado VM_NAME-boot-dv ya debe existir. Si deseas obtener más información, consulta Crea y administra discos virtuales.

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

  4. Crea la VM mediante kubectl:

    kubectl apply -f my-custom-vm.yaml
    

¿Qué sigue?