Crea una VM con recursos de CPU y memoria específicos

Cuando creas VMs que usan el entorno de ejecución de VM en Google Distributed Cloud, puedes configurar los recursos de procesamiento de dos maneras:

  • Especifica de forma manual la CPU y la memoria: Define los recursos de procesamiento directamente en el manifiesto de VirtualMachine. Este enfoque es útil para VMs únicas o cargas de trabajo personalizadas que requieren asignaciones de recursos únicas.
  • Crea y usa tipos de VM: Define recursos personalizados VirtualMachineType reutilizables que estandaricen las asignaciones de CPU y memoria Este enfoque es útil para administrar flotas de VMs, garantizar la coherencia de procesamiento en todo el clúster y simplificar el aprovisionamiento de VM para los desarrolladores.

Antes de comenzar

Para especificar de forma manual los recursos de CPU y memoria, y para crear y usar tipos de VM, necesitas acceso a los siguientes recursos:

  • Un clúster conectado a Distributed Cloud, versión 1.9.0 o posterior.
  • La herramienta de línea de comandos de Kubernetes, kubectl, instalada y configurada para acceder a tu clúster. Para obtener más información, consulta instala kubectl.
  • Opcional: La herramienta de cliente virtctl instalada como un complemento para kubectl. Si es necesario, consulta Instala la herramienta de administración virtctl.

Crea una VM y especifica la CPU y la memoria

Cuando creas una VM, puedes especificar manualmente los requisitos de CPU y memoria. Usa esta función para crear VMs que tengan los recursos de procesamiento adecuados para satisfacer las necesidades de tu aplicación.

Para crear una VM y especificar la CPU y la memoria, usa un manifiesto de VirtualMachine.

  1. En el editor de tu preferencia, crea un manifiesto de VirtualMachine, como my-custom-vm.yaml:

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

    En este archivo YAML, define la siguiente configuración:

    • VM_NAME: el nombre de tu VM.
    • NAMESPACE: el espacio de nombres de destino de tu VM.
    • L2_NETWORK_NAME: El nombre de la red L2 a la que se conectará la VM.
    • 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. Puedes asignar entre 1 Mi y 1 Ti de memoria a una VM. Para obtener más información, consulta Unidades de recursos de memoria en la documentación de Kubernetes.
    • VM_BOOT_NAME: el nombre del disco de arranque de tu VM. El disco de arranque ya debe existir. Para obtener más información, consulta Crea un disco de máquina virtual a partir de una imagen de máquina virtual.

    La VM conecta la interfaz eth0 a la red L2 especificada.

  2. Para crear la VM, aplica el manifiesto a tu clúster conectado a Distributed Cloud con el kubectl apply comando:

    kubectl apply -f my-custom-vm.yaml
    
  3. Para verificar que se creó la VM, usa el kubectl get comando:

    kubectl get vm VM_NAME -n NAMESPACE
    

    El resultado esperado muestra el estado de la VM. También puedes usar el kubectl describe comando para ver la configuración detallada, incluida la CPU y la memoria asignadas.

Crea y usa tipos de VM

Cuando habilitas el entorno de ejecución de VM en GDC, la definición de recurso personalizado VirtualMachineType está disponible en tu clúster. Puedes usar este tipo de recurso para crear plantillas reutilizables que definan asignaciones específicas de CPU y memoria. Si creas tipos de VM personalizados para tus diferentes cargas de trabajo, puedes aprovisionar varias VMs con configuraciones coherentes de recursos de procesamiento.

Si el entorno de ejecución de VM en GDC está habilitado en Distributed Cloud conectado, es posible que haya disponible un tipo de VM predefinido. No puedes actualizar este 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

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. En el editor de tu preferencia, crea un manifiesto de VirtualMachineType, como my-vm-type.yaml:

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

    En este tipo de VM, define la siguiente configuración:

    • VM_TYPE_NAME: el nombre de tu tipo de VM.
    • 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. Puedes asignar entre 1 Mi y 1 Ti de memoria a una VM. Para obtener más información, consulta Unidades de recursos de memoria en la documentación de Kubernetes.
  2. Para crear el tipo de VM, aplica el manifiesto a tu clúster conectado a Distributed Cloud con el kubectl apply comando:

    kubectl apply -f my-vm-type.yaml
    
  3. Para verificar que se creó el tipo de VM, ejecuta el kubectl get comando:

    kubectl get virtualmachinetype VM_TYPE_NAME
    

Crea una VM con un tipo de VM

Para aplicar la configuración de CPU y memoria definida en un tipo de VM a tu VM, especifica el nombre del tipo de VM en la sección compute del manifiesto de VirtualMachine.

  1. En el editor de tu preferencia, crea un manifiesto de VirtualMachine, como my-custom-vm.yaml. En este archivo YAML, especifica el nombre del tipo de VM personalizado que creaste en la sección anterior, como my-vm-type, como el valor para virtualMachineTypeName.

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
      namespace: NAMESPACE
    spec:
      compute:
        virtualMachineTypeName: VM_TYPE_NAME
      interfaces:
        - name: eth0
          networkName: L2_NETWORK_NAME
          default: true
      disks:
        - virtualMachineDiskName: VM_BOOT_NAME-boot-dv
          boot: true

    Define la siguiente configuración:

    • VM_NAME: el nombre de tu VM.
    • NAMESPACE: el espacio de nombres de destino de tu VM.
    • L2_NETWORK_NAME: El nombre de la red L2 a la que se conectará la VM.
    • VM_TYPE_NAME: el nombre del tipo de VM personalizado que creaste en la sección anterior, como my-vm-type.
    • VM_BOOT_NAME: el nombre del disco de arranque de tu VM. El disco de arranque ya debe existir. Para obtener más información, consulta Crea un disco de máquina virtual a partir de una imagen de máquina virtual.

    La VM conecta la interfaz eth0 a la red L2 especificada.

  2. Para crear la VM, aplica el manifiesto a tu clúster conectado a Distributed Cloud con el kubectl apply comando:

    kubectl apply -f my-custom-vm.yaml
    
  3. Para verificar que la VM use el tipo de VM, ejecuta el kubectl get comando con la -o jsonpath opción:

    kubectl get vm VM_NAME -n NAMESPACE -o jsonpath='{.spec.compute.virtualMachineTypeName}'
    

    El resultado esperado muestra el nombre de tu tipo de VM.

¿Qué sigue?