KubeVirt 社区宣布发布 KubeVirt v1.0,此版本展示了社区和用户在过去几年中所取得的成就,对于所有参与者来说都是一个重要的里程碑。
KubeVirt 项目于 2016 年底在红帽启动,提出的问题是:虚拟机 (VM) 可以在容器中运行并由 Kubernetes 部署吗?后来事实证明它不仅是可行的,而且很快就成为容器时代虚拟机未来的一个有前景的解决方案。该项目于 2019 年 9 月加入 CNCF 作为沙箱项目,并于 2022 年 4 月成为孵化项目。
KubeVirt 扩展了 Kubernetes API 并添加了 CRD,以使 VM 能够在 Kubernetes 内原生运行。通过将 QEMU 和 libvirt 的可信虚拟化层容器化,KubeVirt 能够像任何其他 Kubernetes 资源一样处理 VM。这使得用户能够在其容器工作负载旁边运行其虚拟工作负载,不仅以相同的方式管理它们,而且还能够使用云原生用户已经熟悉和喜爱的相同工具,例如 Tekton、Istio、ArgoCD 等等。随着项目的发展,KubeVirt 已经成为一个作为原生 Kubernetes API 运行的生产就绪的虚拟机监控程序。
公告称,v1.0 版本标志着社区在过去六年,从想法到生产就绪的虚拟机管理解决方案中所经历的增长。v1.0 的下一个阶段是在继续发展项目的同时,额外关注维护 API。这促使 KubeVirt 在项目的关键部分采用了 Kubernetes 社区的社区实践。
在发布之前,项目团队进行了发布节奏的变化:从每月发布一次变为每年发布 3 次,遵循 Kubernetes 的发布模型。使得开发者社区有更多时间确保稳定性和兼容性,用户有更多时间计划和升级,同时还将发布节奏与 Kubernetes 保持一致,以简化维护和支持。
此版本包含的一些更新内容
SIG-scale
KubeVirt 的 SIG-scale 推动社区中的性能和可伸缩性倡议。在 v1.0 发布中的重点是共享过去 6 个月内的性能结果。自 2022 年 12 月以来的基准测试,涵盖了过去两个版本 v0.59(2023 年 3 月)和 v1.0(2023 年 7 月)的结果如下:
-
v1.0 版本的性能基准
-
v1.0 版本的可扩展性基准
发布这些测量结果为社区和最终用户提供了多个版本的性能和可伸缩性可见性。此外,这些结果有助于确定代码更改的影响,以便社区成员可以诊断性能问题和回归。
最终用户可以使用与 SIG-scale 相同的工具和技术来分析其自己的部署中的性能和可伸缩性。由于性能和可伸缩性大多相对于部署栈,因此应该使用相同的策略来进一步定位社区的测量结果。
SIG-storage
SIG-storage 专注于为 KubeVirt VM 提供持久存储,并在 VM 的整个生命周期中管理该存储。这始于使用可引导镜像配置和填充 PVC,但还包括功能,例如热插拔磁盘、快照、备份和恢复、灾难恢复和虚拟机导出。
在 v1.0,SIG-storage 提供了以下功能:提供灵活的 VM 导出 API,启用持久 SCSI 保留,从保留的快照中创建 VM,并为其他存储提供程序设置开箱即用的默认值。另一个主要工作是实现 Volume Populator 替代 KubeVirt DataVolume API,以更好地利用平台功能。
SIG-compute
SIG-compute 专注于 KubeVirt 的核心虚拟化功能,但也包括其他 SIG 难以适应的功能。SIG-compute 的范围包括 VM 的生命周期、迁移以及核心 API 的维护。
在 v1.0,SIG-compute 为内存超额提交开发了功能。这包括对 KSM 和 FreePageReporting 的初始支持。增加了对持久 vTPM 的支持,这使得在 Windows 安装中使用 BitLocker 变得更加容易。此外,现在有一个 CPU 热插拔的初始实现(当前隐藏在一个功能门后)。
SIG-network
SIG-network 致力于增强和维护 KubeVirt 中虚拟机网络连接和管理的所有方面。
在 v1.0 版本引入了 HotPlug 和 HotUnplug(作为 Alpha 版),这使用户能够在运行的 VM 上添加和删除使用桥接绑定的 VM 辅助网络接口。HotPlug API 稳定化和对 SR-IOV 接口的支持正在开发中,将在下一个小版本中发布。
SIG-infra
简化 VirtualMachine UX 的工作仍在继续,在 v1.0 版本中引入了 instancetype.kubevirt.io API 的 v1beta1 版本。在未来的 KubeVirt v1.1.0 版本中,目标是将 instancetype.kubevirt.io API 升级为 v1。
通过新版本,现在可以在实例类型中按百分比控制虚拟机的内存超额提交。已将资源需求添加到首选项中,这使用户可以确保满足工作负载的要求。还添加了几个新的首选项属性,以涵盖更多用例。
此外,virtctl 被扩展以利用新的实例类型和首选项功能。
下一步计划
从开发的角度来看,KubeVirt 将继续引入和改进功能,以使虚拟化用户的生活更轻松,并尽可能 Kubernetes 原生化。从社区的角度来看,其正在改进新贡献者体验,以便可以继续增长并帮助新成员学习并成为云原生生态系统的一部分。此外,通过这个里程碑,KubeVirt 现在可以将注意力转向成为 CNCF 毕业项目。
更多详情可查看官方博客。