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.
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 administración para reemplazar
MANAGEMENT_API_SERVER
en estas instrucciones.
Solicita permisos y acceso
Para realizar las tareas que se indican en esta página, debes tener el rol de administrador de la VM del proyecto. Sigue los pasos para verificar que tienes el rol de administrador de máquinas virtuales del proyecto (project-vm-admin
) en el espacio de nombres del proyecto en el que reside la VM.
Mantén activas las conexiones de disco
Cuando se inicia una VM, iniciar una conexión desde el nodo de la VM hasta el 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. 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 patch virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT --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 Management. |
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 de disco keep-alive
Es posible que el programador de Kubernetes seleccione un nodo diferente para la VM cuando se reinicie. Para reducir las probabilidades de que esto suceda, configura una regla de afinidad entre VMs entre la VM y el pod de Keep-Alive. Sigue estos pasos para configurar que esto suceda automáticamente:
kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT --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 de mantenimiento activo 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 la 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 patch virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT --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.