2020 年 12 月,Rancher 中国研发团队首次推出Harvester,这是一款通过 Kubernetes 构建的超融合基础架构开源软件。自此,我们收到了来自早期使用者的大量反馈。这些反馈充分帮助研发团队制定 Harvester 的发展路线。近日,Harvester 0.2.0 已经全新发布,正式进入 Beta 阶段!
原始块设备(Raw Block Device)支持
在 Harvester 0.2.0 中,我们增加了对原始块设备的支持。由于这是一个底层架构的变化,所以对于最终用户来说,这一更新不是十分明显。以下是关于这一特性的信息:
在 Harvester v0.1.0 中,从镜像到虚拟机的工作流如下:
用户添加一个新的 VM 镜像
Harvester 将镜像下载到内置的 MinIO 对象存储中
用户使用该镜像创建一个新的 VM
Harvester 从 MinIO 对象存储中复制镜像并创建一个新的 volume 卷
该镜像作为一个块设备呈现给 VM,但它作为文件存储在 Harvester 创建的 volume 中
这一工作方式存在一些问题:
由于文件系统层的开销,对 VM volume 的读/写操作需要转换为读/写镜像文件,与读/写原始块设备相比,其性能更差
如果一个 VM 镜像被不同的 VM 使用多次,它将会在集群中被复制多次。这是因为每个 VM 都有自己的 volume 副本,尽管大部分内容可能是相同的,因为它们来自同一个镜像。
对 MinIO 存储镜像的依赖导致 Harvester 需要保持 MinIO 的高可用性和可扩展性。这些要求给 Harvester 管理平面带来了额外的负担。
在 v0.2.0 中,我们采用另一种方式来解决这些问题,使得整个解决方案具有更好的性能和更少的重复数据:
现在我们为 VM 提供的是原始块设备,而不是文件系统上的镜像文件,这使得虚拟机的性能得到提高。
我们充分利用了 Longhorn v1.1.1 中 Backing 镜像的功能来减少 VM 镜像不必要的复制。现在 VM 镜像将作为一个只读层提供给所有使用它的 VM。Longhorn 现在负责在镜像之上创建另一个写时拷贝(copy-on-write)层,供虚拟机使用。
既然现在 Longhorn 开始使用 Backing 镜像功能来管理 VM 镜像,那么 MinIO 的依赖项将可以被移除。
Harvester 中的镜像
从用户体验的角度来看,你可能已经注意到,瞬间就能完成一个镜像的导入。而由于 Longhorn 中的镜像下载过程,启动一个基于新镜像的 VM 需要花费一点时间。不过,与之前的 v0.1.0 版本相比,使用相同镜像的虚拟机的启动时间将明显缩短,而且磁盘 IO 性能也会更好。
支持虚拟机实时迁移
为了让之后的升级过程更顺利,现在 Harvester v0.2.0 中支持虚拟机实时迁移。
虚拟机实时迁移可以让虚拟机从一个节点迁移到另一个节点,且没有任何停机时间。当你想在一个节点上进行维护工作或想在各节点上平衡工作负载时,大多会用到它。
值得注意的一点是,由于使用默认管理网络时,迁移后虚拟机的 IP 可能会发生变化,因此我们强烈建议使用 VLAN 网络而不是默认管理网络。否则,你可能在迁移到另一个节点后无法为虚拟机保持相同的 IP。
关于实时迁移的功能,你可以参阅以下链接:
https://docs.harvesterhci.io/v0.2/vm/live-migration/
虚拟机备份支持
在 Harvester v0.2.0 中我们添加了虚拟机备份支持。该备份支持功能为你提供了一种在集群外备份虚拟机镜像的方式。
要使用备份/存储功能,你需要一个与 S3 兼容的端点或 NFS server,备份的目的地将被称为备份目标。
你可以访问以下链接了解如何在 Harvester 中设置备份目标:
https://docs.harvesterhci.io/v0.2/vm/backup-restore/
在 Harvester 中轻松管理和操作你的虚拟机
与此同时,我们也在为虚拟机开发快照功能。与备份功能相反,快照功能将在集群内存储镜像状态,为虚拟机提供恢复快照的能力。与备份功能不同,快照不会将数据复制到集群外。因此,这将是一个实验性的方法,但如果你需要在集群发生故障时保障数据安全,这并不是理想方法。
支持 PXE Boot 安装
PXE boot 安装被广泛应用于数据中心,用所需的操作系统自动填充裸机节点。我们在 Harvester v0.2.0 中添加了这一功能,以帮助拥有大量服务器并希望获得完全自动化安装过程的用户。
如果你想了解更多如何在 Harvester 中使用 PXE boot 安装的信息,请参阅以下链接:https://docs.harvesterhci.io/v0.2/install/pxe-boot-install/
此外,我们还提供了一些在公有裸机云提供商上进行 iPXE 的例子,包括 Equinix Metal。更多信息,请访问以下链接:
https://github.com/harvester/ipxe-examples/blob/main/equinix/README.md
Rancher 集成
最后,在 Harvester v0.2.0 中现在内置了一个用于 Kubernetes 管理的 Rancher server。这是自我们宣布 Harvester v0.1.0 发布以来呼声最大的功能之一,我们非常高兴在 v0.2.0 中提供 Rancher 集成。
在 Harvester v0.2.0 中,你可以使用内置的 Rancher server 在你的 Harvester 裸机集群上创建 Kubernetes 集群。
要在 Harvester v0.2.0 中开始使用内置的 Rancher,进入“Settings”,然后将“rancher-enabled”选项设置为“true”。现在你应该能在 UI 的右上角看到一个 Rancher 按钮。点击该按钮即可访问 Rancher UI。
Harvester 和 Rancher 共享身份认证流程,所以一旦你登录到 Harvester,你不需要在 Rancher 中重新进行登录,反之亦然。
如果你想使用 Rancher 创建一个新的 Kubernetes 集群,你可以根据以下链接进行操作:
https://docs.harvesterhci.io/v0.2/rancher/node-driver/#create-cluster
值得注意的是,在 Harvester 之上创建 Kubernetes 集群时需要启用 VLAN 网络,因为默认的管理网络不能保证虚拟机有一个稳定的 IP,尤其是在重启或迁移之后。
未来规划
接下来,我们将发布 v0.3.0,这是 Harvester GA 前的最后一个版本。我们正在努力研发的 v0.3.0 中新增了许多亮点功能:
内置负载均衡
集成 Rancher 2.6
采用一个为容器工作负载设计的小型操作系统
支持多租户
支持多磁盘
支持 VM 快照
Terraform 应用支持
Guest Kubernetes 集群 CSI 驱动程序
增强监控、日志功能
Harvester 秉承 100%开源的理念,欢迎下载体验。
Harvester GitHub:
https://github.com/harvester/harvester
Harvester 主页:
本文转载自:RancherLabs(ID:RancherLabs)
评论