Si necesitas que tus VMs se inicien lo más rápido posible, minimiza el tiempo de inicio de tu máquina virtual (VM) con las instrucciones de esta página. Minimizar el tiempo de inicio tiene un costo en términos de eficiencia de recursos: tu proyecto consume recursos adicionales y tiene una mayor superficie de seguridad.
Este documento está dirigido a los desarrolladores de grupos de administradores de plataformas o de operadores de aplicaciones que configuran la hora de inicio de la instancia 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
Para minimizar el tiempo de inicio de tu VM, comunícate con el administrador de IAM del proyecto y solicita el rol de Administrador de proyectos de máquinas virtuales (project-vm-admin).
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.
Mantén activas las conexiones de disco
Cuando se inicia una VM, iniciar una conexión desde el nodo de la VM al disco de la VM tarda unos segundos. Para que la VM se inicie más rápido, la conexión del disco debe mantenerse activa cuando se apaga la VM, de modo que no se reinicie en los inicios posteriores de la VM. Para lograr esto, cuando ejecutas el comando para habilitar la conexión keep-alive del disco, el sistema crea automáticamente un Pod ficticio que activa todos los discos de la VM.
Habilita la conexión keep-alive del disco
Para mantener activas las conexiones de disco para una VM llamada VM_NAME en el proyecto PROJECT, ejecuta el siguiente comando. Cuando lo hagas, el sistema creará automáticamente el pod simulado:
kubectl --kubeconfig MANAGEMENT_API_SERVER \
-n PROJECT \
patch virtualmachines.virtualmachine.gdc.goog VM_NAME \
--type merge --patch $'
metadata:
annotations:
disk.virtualmachine.gdc.goog/enable-connection-keep-alive: "true"
'
Reemplaza las variables en todas estas instrucciones con las siguientes definiciones.
| Variable | Definición |
|---|---|
MANAGEMENT_API_SERVER |
Es el archivo kubeconfig del servidor de la API de administración. |
VM_NAME |
El nombre de la VM |
PROJECT |
Es el proyecto de GDC en el que reside la VM. |
Cuando se habilita la conexión keep-alive del disco, se crea un pod llamado disk-connection-keep-alive-VM_NAME en el mismo proyecto que la VM. El siguiente reinicio de la VM es más rápido, al igual que los tiempos de inicio posteriores, ya que el pod mantiene activas las conexiones de disco de la VM.
Configura la afinidad de la conexión keep-alive del disco
El programador de Kubernetes podría seleccionar un nodo diferente para la VM cuando se reinicie. Para reducir las probabilidades de que eso suceda, configura una regla de afinidad entre VMs entre la VM y el pod de Keep-Alive. Para configurar que esto suceda automáticamente, haz lo siguiente:
kubectl --kubeconfig MANAGEMENT_API_SERVER \
-n PROJECT \
patch virtualmachines.virtualmachine.gdc.goog VM_NAME \
--type merge --patch $'
metadata:
annotations:
disk.virtualmachine.gdc.goog/add-connection-keep-alive-affinity: "true"
'
Esto agrega un parámetro de configuración de afinidad preferida en la VM al pod de Keep-Alive.
Advertencias
Hay dos advertencias sobre mantener activas las conexiones de disco:
- El pod keep-alive genera un uso adicional de recursos:
- Se incluye en el límite de la cantidad de Pods por nodo.
- Utiliza una dirección IP adicional que asigna Kubernetes.
- Usa una cantidad adicional insignificante de CPU y memoria.
- La superficie de seguridad aumenta, ya que el nodo en el que se encuentra el pod de keep-alive siempre tiene conectados los discos de la VM, incluso cuando la VM está apagada.
Usa el firmware del BIOS
En GDC, iniciar una VM con firmware de interfaz de firmware extensible unificada (UEFI) es más lento que iniciar una VM con firmware de BIOS.
Para asegurarte de que el tiempo de inicio sea mínimo, configura el tipo de firmware de la VM como BIOS:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT \ patch virtualmachines.virtualmachine.gdc.goog VM_NAME \ -type merge --patch $' spec: firmware: type: bios enableSecureBoot: 'Si la VM está en ejecución, reiníciala siguiendo las instrucciones para reiniciar la VM.
Advertencias
La advertencia sobre el uso del firmware de BIOS es que no admite el inicio seguro.
Usa un disco de arranque grande
Para minimizar el tiempo de inicio de la VM, conecta un disco de arranque con un tamaño de 500 GB o más a la VM.