En este documento, se explica cómo actualizar las propiedades de instancias de máquina virtual (VM) en Google Distributed Cloud (GDC) aislado.
Puedes actualizar las propiedades de la VM para alinear la infraestructura virtual con las demandas cambiantes de las cargas de trabajo que se ejecutan en una instancia. Puedes aumentar las CPU virtuales o la memoria física (RAM), o bien disminuirlas para redistribuir los recursos en otro lugar del proyecto.
En lugar de destruir una VM, volver a compilarla y migrar tus datos, puedes optar por actualizar sus propiedades. Si bien la actualización de propiedades suele requerir un reinicio rápido, este enfoque puede ahorrarte horas de tiempo de configuración.
Este documento está dirigido a los desarrolladores que pertenecen a grupos de administradores de plataformas o de operadores de aplicaciones que ven y actualizan las propiedades de VM en un entorno de Distributed Cloud. 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:
Accede y genera el archivo kubeconfig para el servidor de la API de Management si no tienes uno.
Usa la ruta de acceso al archivo kubeconfig del servidor de la API de Management para reemplazar
MANAGEMENT_API_SERVERen 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 VirtualMachine del proyecto (
project-vm-admin): Crea, modifica, enumera y borra VMs en el espacio de nombres del proyecto.Visualizador del proyecto(
project-viewer): Puede ver todos los recursos dentro de los espacios 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.
Propiedades actualizables
Solo puedes cambiar las propiedades que se encuentran en el spec de la VM.
Cómo ver las propiedades que se pueden actualizar
Busca las propiedades que deseas cambiar con la consola de GDC o kubectl.
Console
En el menú de navegación, haz clic en Virtual Machines > Instances.
En la lista de VMs, haz clic en el nombre de una VM para ver sus propiedades.
Las propiedades editables tienen un ícono edit Editar.
kubectl
Consulta la lista de propiedades de la VM
specy los valores válidos correspondientes a cada propiedad:kubectl --kubeconfig MANAGEMENT_API_SERVER \ explain virtualmachines.virtualmachine.gdc.goog.specEl resultado es similar a lo siguiente:
KIND: VirtualMachine VERSION: virtualmachine.gdc.goog/v1 RESOURCE: spec <Object> DESCRIPTION: Defines the specification of the Virtual Machine. FIELDS: compute <Object> Specifies the CPU and Memory of the VM. CPU and Memory can be defined directly or through the VirtualMachineType. Changes to Compute require a reboot to take effect. Compute is immutable when the VM is in `Unknown` state. disks <[]Object> -required- Specifies the list of disks attached to this vm. There must be exactly one boot disk. Changes to disk attachments require a reboot to take effect. ...Consulta de forma recursiva las subpropiedades de cada propiedad. En estos ejemplos, se muestra el valor de devolución de las subpropiedades
computeyvcpus:Este comando de ejemplo devuelve los campos de la subpropiedad
compute:kubectl --kubeconfig MANAGEMENT_API_SERVER \ explain virtualmachines.virtualmachine.gdc.goog.spec.computeEl resultado es similar a lo siguiente:
KIND: VirtualMachine VERSION: virtualmachine.gdc.goog/v1 RESOURCE: compute <Object> DESCRIPTION: Specifies the CPU and Memory of the VM. CPU and Memory can be defined directly or through the VirtualMachineType. Changes to Compute require a reboot to take effect. Compute is immutable when the VM is in `Unknown` state. FIELDS: memory <> Specifies the amount of physical memory available to the instance. memory must have a minimum value of `1G`, and can be up to (including) `400G`. vcpus <integer> Specifies the number of VCPUs that are available to the instance. Specify `vcpus` as an integer. This value must be a multiple of 2, with 2 as the minimum and 128 as the maximum allowed. ...Este comando de ejemplo devuelve los campos de la subpropiedad
vcpus:kubectl --kubeconfig MANAGEMENT_API_SERVER \ explain virtualmachines.virtualmachine.gdc.goog.spec.compute.vcpusEl resultado es similar a lo siguiente:
KIND: VirtualMachine VERSION: virtualmachine.gdc.goog/v1 FIELD: vcpus <integer> DESCRIPTION: Specifies the number of VCPUs that are available to the instance. Specify `vcpus` as an integer. This value must be a multiple of 2, with 2 as the minimum and 128 as the maximum allowed.
Todas las propiedades se pueden actualizar en una VM en ejecución, pero, a menudo, requieren que se reinicie la VM para que surtan efecto.
Estas actualizaciones de propiedades requieren que se reinicie la VM para que los cambios surtan efecto:
- procesamiento
- los siguientes discos
- firmware
- startupScripts
Estas actualizaciones de propiedades entran en vigencia de inmediato:
- guestEnvironment
- runningState
Actualizar las propiedades de la VM
Actualiza las propiedades de la VM con la consola de GDC o kubectl.
Console
En el menú de navegación, haz clic en Virtual Machines > Instances.
En la lista de VMs, haz clic en el nombre de una VM para ver sus propiedades.
Haz clic en edit Editar junto a la propiedad que deseas editar y realiza los cambios.
Si deseas reemplazar el disco de arranque o agregar un disco nuevo, consulta Reemplaza un disco de arranque o Agrega un disco a una VM.
Haz clic en Guardar.
kubectl
Ejecuta el comando siguiente:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT \ edit virtualmachines.virtualmachine.gdc.goog VM_NAMEReemplaza las variables como se definen en la siguiente tabla.
Variable Definición MANAGEMENT_API_SERVEREs el archivo kubeconfig del servidor de la API de administración. VM_NAMENombre de la VM. PROJECTEs el nombre del proyecto. Edita el objeto
specpara actualizar los campos y valores obligatorios de las propiedades actualizables.Guarda el archivo.
Si la actualización de la propiedad requiere que se reinicie la VM, sigue las instrucciones para reiniciar una VM.