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
VirtualMachineTypereutilizables 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 instalakubectl. - Opcional: La herramienta de cliente
virtctlinstalada como un complemento parakubectl. Si es necesario, consulta Instala la herramienta de administraciónvirtctl.
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.
En el editor de tu preferencia, crea un manifiesto de
VirtualMachine, comomy-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
eth0a la red L2 especificada.Para crear la VM, aplica el manifiesto a tu clúster conectado a Distributed Cloud con el
kubectl applycomando:kubectl apply -f my-custom-vm.yamlPara verificar que se creó la VM, usa el
kubectl getcomando:kubectl get vm VM_NAME -n NAMESPACEEl resultado esperado muestra el estado de la VM. También puedes usar el
kubectl describecomando 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.
En el editor de tu preferencia, crea un manifiesto de
VirtualMachineType, comomy-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.
Para crear el tipo de VM, aplica el manifiesto a tu clúster conectado a Distributed Cloud con el
kubectl applycomando:kubectl apply -f my-vm-type.yamlPara verificar que se creó el tipo de VM, ejecuta el
kubectl getcomando: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.
En el editor de tu preferencia, crea un manifiesto de
VirtualMachine, comomy-custom-vm.yaml. En este archivo YAML, especifica el nombre del tipo de VM personalizado que creaste en la sección anterior, comomy-vm-type, como el valor paravirtualMachineTypeName.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, comomy-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
eth0a la red L2 especificada.Para crear la VM, aplica el manifiesto a tu clúster conectado a Distributed Cloud con el
kubectl applycomando:kubectl apply -f my-custom-vm.yamlPara verificar que la VM use el tipo de VM, ejecuta el
kubectl getcomando con la-o jsonpathopción:kubectl get vm VM_NAME -n NAMESPACE -o jsonpath='{.spec.compute.virtualMachineTypeName}'El resultado esperado muestra el nombre de tu tipo de VM.