背景
容器无疑已经成为新的云计算基础设施,企业私有云平台的建设重心,正在从虚拟化的计算、存储、网络的建设,转向构建以容器、微服务等为核心的云原生平台。不过值得注意的是,企业 IT 系统在进行容器化改造的过程中,由于历史遗留系统、技术债务、内核依赖等原因,基于虚拟机的应用在未来依然会广泛存在。企业的 IT 基础设施正在从单一的虚拟化架构逐步走向虚拟机+容器的混合架构,Gartner 预测到 2026 年将会有 75% 的私有化环境需要混合部署虚拟机和容器负载。
CNStack 虚拟化服务(cnstack-virtualization)基于以 CNCF KubeVirt 为代表的云原生虚拟化技术,用一套控制平面同时管理容器和虚拟机,实现容器与虚拟机的资源共池管理、灵活分配、统一调度。企业可将难以容器化的虚拟机应用无缝迁移到 CNStack 平台上,逐步实现 IT 系统的云原生化。
CNStack 虚拟化云服务
在 CNStack 2.0 中,虚拟化服务以独立云服务的形态进行部署,即能复用 CNStack 平台与多集群服务提供的多租资源管理、统一网关、集群管理、多集群资源分发等基础能力,又能不失灵活性地独立演进与发布。
CNStack 虚拟化服务在当前版本提供了如下能力,并会逐步在后续版本上线更多能力(如虚拟机灾备、虚拟机热迁移、虚拟机迁移工具等):
- 完整的虚拟机生命周期管理能力:支持开关机、重启、暂停、快照等操作。
- 虚拟机自运维能力
- 在浏览器通过 VNC、串口带外管理协议运维虚拟机。
- 快照与恢复:通过快照保存虚拟机磁盘在某一时刻的状态,数据丢失或异常时可快速恢复。
- 监控与告警:提供虚拟机 CPU、内存、磁盘 I/O、网络吞吐等关键运行指标的监控与告警。
- 管理虚拟机镜像
- 上传镜像,并按照租户控制资源的可见范围。
- 基于快照制作虚拟机镜像。
- ARM 多架构、IPv6、虚拟机固定 IP、边缘虚拟机自治、虚拟机快照克隆等特性
- 虚拟机应用管理:CNStack 应用管理服务提供了对虚拟机应用的纳管功能,支持对虚拟机内应用的一站式托管以及服务治理、能力开放、应用监控、应用告警和应用防护等能力。
整体架构简介
- cnstack-virt-console
基于阿里云自研的 ALFA 微前端方案,cnstack-virt-console 以微前端应用的形式被 CNStack Console 前端页面插件化集成。即可以保证终端用户在交互体验上的一致,也可满足虚拟化服务前端应用自由演进、独立部署分发的灵活性。
- cnstack-virt-api
提供虚拟化云服务的管控 API,将 VirtualMachine、DataVolume、VMImage 等自定义资源的读写操作以 RESTful 接口的形式进行封装。与其他的管控 API 一样,由 CNStack IAM Gateway 组件统一提供用户认证、鉴权、API 审计等基础能力,向集群外提供服务。值得一提的是,cnstack-virt-api 基于 CNStack 多集群服务的 cluster-gateway 组件,实现了跨集群的资源分发。
- KubeVirt
CNCF KubeVirt 拓展了管理运行虚拟机的 CRD,使得虚拟机资源可被视为 Kubernetes 集群的“一等公民”。KubeVirt 基于容器来管理运行 QEMU 虚拟机,提供了不同于容器的虚拟机生命周期管理接口,通过与标准的 CNI 容器网络插件和 CSI 容器存储插件对接,使得虚拟机可复用 Kubernetes 集群内的网络与存储资源。在 KubeVirt 社区版本的基础上,我们还为其拓展支持了 IPv6、GuestOS 监控、虚拟机固定IP、边缘虚拟机自治、虚拟机快照克隆等特性。
- CDI
containerized-data-importer (CDI)[1]是 KubeVirt 社区下的一个子项目,拓展了管理虚拟机磁盘的 CRD,负责生产含有虚拟机磁盘数据的 PersistentVolume 供 KubeVirt 虚拟机消费,并可支持从 VMWare、oVirt 等外部虚拟化平台导入磁盘数据。
- vmimage-controller