Si necesitas que tus VMs se inicien lo más rápido posible, minimiza el tiempo de inicio de las máquinas virtuales (VMs) siguiendo las instrucciones de esta página. Minimizar el tiempo de inicio tiene un coste en términos de eficiencia de los recursos: tu proyecto consume recursos adicionales y tiene una superficie de seguridad mayor.
Antes de empezar
Para usar los comandos de la gdcloud
interfaz de línea de comandos (CLI), asegúrate de haber descargado, instalado y configurado la gdcloud
CLI.
Todos los comandos del dispositivo aislado de GDC usan la CLI gdcloud
o kubectl
y requieren un entorno de sistema operativo (SO).
Obtener la ruta del archivo kubeconfig
Para ejecutar comandos en el servidor de la API Management, asegúrate de tener los siguientes recursos:
Busca el nombre del servidor de la API Management o pregunta a tu administrador de plataforma cuál es.
Inicia sesión y genera el archivo kubeconfig del servidor de la API Management si no tienes uno.
Usa la ruta para sustituir
MANAGEMENT_API_SERVER{"</var>"}}
en estas instrucciones.
Mantener activas las conexiones de disco
Cuando se inicia una VM, se tarda unos segundos en iniciar una conexión desde el nodo de la VM al disco de la VM. Para que la VM se inicie más rápido, la conexión del disco debe mantenerse activa cuando la VM se apaga para que la conexión del disco no se reinicie en los siguientes inicios de la VM. Para ello, cuando ejecutas el comando para habilitar la conexión de disco KeepAlive, el sistema crea automáticamente un pod ficticio que monta todos los discos de la VM.
Habilitar la conexión de disco KeepAlive
Para mantener activas las conexiones de disco de una VM llamada VM_NAME
en el proyecto PROJECT
, ejecuta
el siguiente comando. Cuando lo hagas, el sistema creará automáticamente el pod ficticio:
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"
'
Sustituye las variables de estas instrucciones por las siguientes definiciones.
Variable | Definición |
---|---|
MANAGEMENT_API_SERVER |
El archivo kubeconfig del servidor de la API Management. |
VM_NAME |
El nombre de la VM. |
PROJECT |
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.
Configurar la afinidad de mantenimiento activo de la conexión de disco
El programador de Kubernetes puede seleccionar un nodo diferente para la VM cuando se reinicie. Para reducir las probabilidades de que esto ocurra, configura una regla de afinidad entre máquinas virtuales entre la máquina virtual y el pod de mantenimiento activo. Configura esta opción para que se realice 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"
'
De esta forma, se añade un ajuste de afinidad preferida en la VM al pod de mantenimiento activo.
Advertencias
Hay dos aspectos que debes tener en cuenta para mantener activas las conexiones de disco:
- El pod de mantenimiento activo conlleva un uso adicional de recursos:
- Se tiene en cuenta para el límite del número de pods por nodo.
- Usa una dirección IP adicional asignada por Kubernetes.
- Utiliza 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 mantenimiento siempre tiene los discos de la VM conectados, incluso cuando la VM está apagada.
Usar firmware de 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, define 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 máquina virtual está en ejecución, reiníciala siguiendo las instrucciones para reiniciar la máquina virtual.
Advertencias
La desventaja de usar firmware de BIOS es que no admite el inicio seguro.
Usar un disco de arranque grande
Para minimizar el tiempo de inicio de la VM, conecta a la VM un disco de arranque con un tamaño de 500 GB o más.