介绍
对于采用基于虚拟机架构的企业,迁移到 Kubernetes 和基于容器的架构必然需要进行应用现代化改造。然而,受限于业务需要持续在线或开发习惯难以改变等因素,企业往往无法在短时间内完全脱离虚拟化架构。
因此,一个能够在同一平台上统一配置、管理和控制容器资源与虚拟机资源的解决方案就显得尤为重要。
容器编排虚拟机解决方案
本平台基于开源组件 KubeVirt 实现虚拟机(VMI,VirtualMachineInstance)方案,使创建容器编排虚拟机以及运行虚拟化应用更加便捷和高效。
特性
快速转型
无需重写应用或修改镜像。只需将现有应用打包为 qcow2 或 raw 格式的虚拟机镜像,并在平台上使用该镜像创建虚拟机,即可将应用部署到容器平台。
保持使用习惯
容器化虚拟机可以采用与传统虚拟机相似的方式进行管理,而无需关注底层容器实现,包括虚拟机生命周期管理、磁盘和网络以及快照管理。
虚拟化与容器化共存
-
统一平台既支持管理虚拟化服务,也支持基于 Kubernetes 的容器调度与管理。
-
在继续使用虚拟机工作负载的基础上,可逐步推进容器化应用现代化改造。
-
需要与虚拟化应用交互的新容器化应用的开发不受影响。
产品特性
-
虚拟机:支持使用管理员分配的镜像创建虚拟机并进行管理,包括启动和停止虚拟机、管理快照、远程登录虚拟机以及修改虚拟机配置。
-
虚拟磁盘:支持查看和管理当前项目中创建的磁盘信息,包括创建磁盘、查看磁盘名称、存储类、容量以及关联的虚拟机。
-
虚拟机快照:支持查看虚拟机快照的状态、关联的虚拟机以及最近一次回滚时间等详情。
-
虚拟机镜像:支持查看当前项目下的虚拟机镜像信息,包括镜像提供方式和操作系统。
-
密钥对:支持查看和管理当前项目中创建的密钥对,包括创建密钥对以及查看关联的虚拟机列表。
-
可启动卷:跨命名空间管理黄金镜像启动源,支持四种导入来源(HTTP/HTTPS、container registry、clone PVC、clone snapshot)。
-
Live Migration:在无停机的情况下将运行中的虚拟机在节点之间迁移,并受集群级迁移限制和按命名空间划分的迁移策略约束。
-
存储迁移:在线将运行中虚拟机的磁盘在不同存储类之间迁移。
-
更多生命周期操作:克隆整个虚拟机、暂停和恢复虚拟机,以及打开串口控制台(文本 TTY)或 VNC 控制台。
控制台特性与 API 对象的映射
架构和权限
平台的虚拟化基于 KubeVirt 和 CDI 构建,由 HyperConverged (HCO) operator 管理:
- HyperConverged (HCO) 是唯一事实来源——它负责部署并持续协调 KubeVirt 和 CDI。集群级别的设置(例如 Live Migration 限制)必须配置在
HyperConverged资源上,而不是直接配置在KubeVirt上。 - CDI (Containerized Data Importer) 负责将磁盘镜像导入并克隆到 PVC 中——它是可启动卷和虚拟机磁盘背后的引擎。
- virt-controller 负责调度虚拟机,virt-handler 运行在每个节点上,virt-launcher 则将每个运行中的虚拟机封装在一个 Pod 中。
要委派访问权限,请在命名空间中绑定 KubeVirt 集群角色:
CDI 还提供对应的 cdi.kubevirt.io:view / :edit / :admin 角色,用于管理 DataVolumes 和 DataSources。
限制与约束
必须基于物理机集群实现,并且需要在启用虚拟化的情况下将 KubeVirt 组件部署到集群中。平台提供通过 Operator 部署 KubeVirt 组件的能力,以及启用虚拟化的界面,所有相关配置均由平台管理员完成。