一、Proxmox VE
简介
Proxmox VE是⼀款套开源的虚拟化管理软件,⽤户可通过⽹⻚的⽅式来管理服务器上使⽤ kvm 以及 lxc 技术运⾏的虚拟机。同时提供集群管理、HA等⽀持。由⼀个商业公司在运营、更新以及维护。https://www.proxmox.com
架构
部署⽅式
使⽤iso制作启动盘或者pxe⽅式安装
特征
-
所有节点⻆⾊对等,⽆中⼼架构
-
以 all-in-one ⽅式提供完备的虚拟化管理能⼒,并同时作为宿主机节点使⽤
-
基本环境部署和配置能在界⾯上完成
-
基于 debian 定制的系统,绕过libvirt,直接调⽤kvm接⼝实现虚机管理
-
⽀持 lxc ,并提供多种预置镜像模板 (隔离性较差,在私有环境使用)
优势
-
部署、运维过程极为简捷
-
稳定
-
定制系统中管理程序本身占⽤资源⼩
劣势
-
如需超融合模式 (即同时当宿主机和开源分布式系统的存储节点) 需要付费⽀持(可破解,也可接
如外部 ceph、glusterfs 存储)
-
技术相对封闭,不是使⽤市⾯上常⽤的 libvirt ⽅式管理虚拟机,缺少可选择的开源组件⽀持
-
⽹络编排功能相对薄弱,能管理的数据中⼼规模相对较⼩
二、oVirt
简介
oVirt(open Virtualization)是红帽公司商业的云管理平台RHEV(Red Hat Enterprisevirtualization)的社区版本,主要的使⽤场景是私有云管理,在架构设计上使⽤了节点/引擎(Node/Engine)架构,特点是专注KVM、基于WEB界⾯、易于搭建。⼀些KVM上的新技术会⾸先在oVirt上得到⽀持。https://www.ovirt.org/
架构
部署⽅式
在架构设计上它使⽤了 Node/Engine分离结构,以⽅便功能的划分与管理。
-
节点端 ovirt-node,通过订制的镜像部署。也可以在 Linux 系统上安装 vdsm 服务从
⽽得到⼀个 Node。
-
管理端 ovirt-engine 类似于 vmwarevcenter,基于 web ⻚⾯进⾏集中管理。
特征
-
中⼼化管理
-
红帽旗下开源⽣态⽀持较完善
-
基于 libvirt 专注 kvm,可使⽤最新的功能
劣势
-
中⼼化管理,engine 缺少⾼可⽤⽅案的⽀持
-
存储域配置规则限制较多,对本地存储的⽀持不友好
三、kubevirt
简介
kubevirt 是 Redhat 开源的以容器方式运行虚拟机的项目,利用 k8s CRD 为增加资源类型VirtualMachineInstance(VMI)
, 使用容器的image registry去创建虚拟机并提供VM生命周期管理。
参考文章:https://remimin.github.io/2018/09/14/kubevirt/
架构
部署方式
k8s CRD
特征
-
基于 k8s CRD 扩展,支持标准 API 管理
-
计算、网络、存储资源通过 k8s 统一管理
-
libvirtd per VM
优势
-
容器和虚机天然使用统一平台进行管理
-
资源管理、虚机生命周期管理已集成到 CRD 和 controller 中,部署运维相对简单
-
底层基础设施资源可统一运维
劣势
-
重度依赖 k8s,不能独立运行
-
libvirtd per VM 需要耗费部分计算资源
四、Virtlet
cri,vm 即 pod
架构
参考文章:https://www.infoq.cn/article/uU7yE7S9J-ZM7RQmBDA8
https://www.mirantis.com/blog/kubevirt-vs-virtlet-comparison-better/
Virtlet VS Kubevirt
Virtlet和KubeVirt都提供了类似的功能,Virtlet是mirantis的一个项目,与KubeVirt相比,它的社区更小,Virtlet在易用性方面有一定的优势,学习曲线更小,但是它的特性受限于kubelet 和 CRI。
如果需要在Kubernetes配置的基础上运行传统vm的能力,那么KubeVirt可以完成这项工作。但有一定的学习成本。
如果希望将vm与非vm pod等同对待,则需要使用Virtlet。
四、各虚拟化管理软件与ECF集成可行性对比
对比总表:
PVE | oVirt | Kubevirt | Virtlet | |
---|---|---|---|---|
hypervisor支持 | kvm / lxc | kvm | kvm | kvm |
虚机管理方式 | 裸用 qemu-kvm | VDSM + libvirt + qemu-kvm | k8s CRD + libvirt | CRI + libvirt |
场景规模 | 小规模私有云 | 中大规模私有云 | 基于k8s | 基于k8s |
网络编排 | 5分 桥接、提供vlan隔离和防火墙 | 5分 桥接、vlan隔离 | 5分 CNI / 桥接等,网络编排支持非常灵活 | 4分 CNI |
存储/磁盘管理 | 5分 LVM / iSCSI/ ceph / rbd / 遵循POSIX标准的文件系统 | 4分 iSCSI / FCP / 遵循POSIX标准的文件系统 | 5分 PVC / RBD / 遵循POSIX标准的文件系统 / Datavolume | 3分 PVC |
CPU绑定 | yes | yes | yes | no |
virtio | yes | yes | yes | yes |
GPU 支持 | passthrough | passthrough / vgpu | passthrough / vgpu | 不支持 |
热迁移 | yes | yes | yes | no |
监控 | 自带资源监控,可通过 prometheus 收集 metric | 自带资源监控,可通过 prometheus 收集 metric | 依赖k8s,提供 metric exporter | 依赖k8s |
稳定性:PVE > oVirt > (Virtlet or Kubevirt)
灵活度:oVirt > Kubevirt > PVE > Virtlet
复杂度:oVirt > Kubevirt > PVE > Virtlet
社区活跃度:Kubevirt > oVirt > PVE > Virtlet