如果您需要虚拟机尽快启动,请按照本页中的说明尽可能缩短虚拟机 (VM) 启动时间。缩短启动时间会牺牲资源效率,即您的项目会消耗更多资源,并增加安全风险。
准备工作
如需使用 gdcloud
命令行界面 (CLI) 命令,请确保您已下载、安装并配置 gdcloud
CLI。Distributed Cloud 的所有命令都使用 gdcloud
或 kubectl
CLI,并且需要操作系统 (OS) 环境。
获取 kubeconfig 文件路径
如需针对管理 API 服务器运行命令,请确保您拥有以下资源:
登录并生成管理 API 服务器的 kubeconfig 文件(如果您还没有)。
使用管理 API 服务器的 kubeconfig 文件路径替换这些说明中的
MANAGEMENT_API_SERVER
。
请求权限和访问权限
如需执行本页面中列出的任务,您必须具有 Project VirtualMachine Admin 角色。按照相关步骤验证您是否在虚拟机所在项目的命名空间中拥有 Project VirtualMachine Admin (project-vm-admin
) 角色。
保持磁盘连接处于活跃状态
当虚拟机启动时,从虚拟机的节点到虚拟机的磁盘建立连接需要几秒钟的时间。为了使虚拟机更快启动,必须在虚拟机关闭时保持磁盘连接处于活动状态,这样磁盘连接就不会在后续虚拟机启动时重新初始化。为此,当您运行命令以启用磁盘连接保持活跃状态时,系统会自动创建一个虚拟 Pod,该 Pod 会挂载所有虚拟机的磁盘。
启用磁盘连接保持活动状态
如需使项目 PROJECT
中名为 VM_NAME
的虚拟机的磁盘连接保持有效,请运行以下命令。执行此操作后,系统会自动创建虚拟 pod:
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"
'
在整个说明中,使用以下定义替换变量。
变量 | 定义 |
---|---|
MANAGEMENT_API_SERVER |
管理 API 服务器 kubeconfig 文件。 |
VM_NAME |
虚拟机的名称。 |
PROJECT |
虚拟机所在的 GDC 项目。 |
启用磁盘连接保持活跃状态后,系统会在与虚拟机相同的项目中创建一个名为 disk-connection-keep-alive-VM_NAME
的 pod。由于 pod 会保持虚拟机的磁盘连接处于活动状态,因此下次重启虚拟机时速度会更快,后续启动时间也会更快。
设置磁盘连接保持活跃状态亲和性
虚拟机重新启动时,Kubernetes 调度器可能会选择其他节点。为降低这种情况发生的几率,请在虚拟机和 keep-alive pod 之间配置虚拟机间亲和性规则。配置为自动执行此操作:
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"
'
这会在虚拟机上向 keep-alive pod 添加首选亲和性设置。
注意事项
请注意以下两点,以免磁盘连接断开:
- Keep-alive pod 会产生额外的资源使用量:
- 它计入每个节点的 pod 数量限制。
- 它使用由 Kubernetes 分配的额外 IP 地址。
- 它使用的额外 CPU 和内存量微乎其微。
- 由于存在 keep-alive pod 的节点始终挂接了虚拟机的磁盘,即使虚拟机已关闭,安全界面也会增加。
使用 BIOS 固件
在 GDC 中,使用统一可扩展固件接口 (UEFI) 固件启动虚拟机的速度比使用 BIOS 固件启动虚拟机的速度慢。
为确保启动时间最短,请将虚拟机的固件类型设置为 BIOS:
kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT --type merge --patch $' spec: firmware: type: bios enableSecureBoot: '
如果虚拟机正在运行,请按照重启虚拟机的说明重启它。
注意事项
使用 BIOS 固件的注意事项是,它不支持安全启动。
使用大容量启动磁盘
为了尽可能缩短虚拟机启动时间,请将大小为 500 GB 或更大的启动磁盘挂接到虚拟机。