01
2024
02
23:22:28

HCI 解决方案对比:Harvester 和 OpenStack

介绍

以安全、敏捷且高效的方式管理资源一直是一个难题,因此,Openstack 和 Harvester 等解决方案将硬件基础设施作为本地云基础设施来处理,让用户更灵活地管理存储、计算和网络资源,而不是仅在单个硬件上部署应用程序。

Openstack 和 Harvester 都有自己的用例。本文从基础设施管理、资源管理、部署和可用性这几个维度分析了 OpenStack 和 Harvester 的区别,旨在帮您找到满足需求的最佳方案。

云管理指的是如何管理数据中心资源(存储、计算和网络资源)。Openstack 提供了管理这些资源的方法,并为管理员提供了用于创建虚拟机的仪表板以及管理网络和存储层的其它工具。

虽然 Harvester 和 OpenStack 都用于创建云环境,但是本文讨论的是二者的不同之处。

根据 OpenStack 产品文档,OpenStack[1]是一个云操作系统,它能通过仪表板管理整个数据中心的大量计算、存储和网络资源,管理员能够控制该仪表板,同时能让用户通过 Web 界面配置资源。

Harvester 是专为现代云原生环境设计的下一代开源超融合基础架构(HCI)解决方案,使用 KubeVirt [2]技术来提供具备 Kubernetes 优势的云管理能力。Harvester 能帮助操作人员整合和简化 Kubernetes 集群的虚拟机工作负载。

架构

OpenStack 提供用来创建 controlplane 和配置基础设施的服务,而 Harvester 则使用以下技术提供所需的堆栈:

Harvester 通过 ISO 或 PXE 作为节点操作系统安装,它使用 RKE2 作为 SUSE Linux Enterprise Server 上的容器编排器,提供 Longhorn 分布式存储和 KubeVirt 虚拟化功能。

API

无论是生产环境还是测试环境,API 的使用对编程交互、自动化和新功能实现的影响都是非常大的。

Openstack 在每个服务中都为功能提供了多个 API,用于在外部提供存储、管理、身份验证等功能。文档[3]的逻辑架构概述了 API 的实现:

您可以在上图加粗部分看到生产环境中 Openstack 提供的 API。

虽然 OpenStack 很复杂,但是它支持高级别的自定义设置。

另一方面,Harvester 使用 Kubernetes 进行虚拟化并使用 Longhorn 进行存储,因此会使用它们的 API 并从容器化架构的角度进行高级自定义设置。您也可以通过 K8s CustomResourceDefinitions 来轻松扩展和迁移 Harvester。

在网络层面上,Harvester 仅支持通过 VLAN(网桥)和 NIC 绑定。交换机和高级网络设置不在 Harvester 范畴内。

OpenStack 可以提供多种高级和专门的网络配置。

部署

OpenStack 在裸机服务器上提供了多种服务,包括安装软件包和库,配置文件以及准备要添加到 OpenStack 的服务器。

Harvester 提供了一个能安装到裸机服务器上的预配置 ISO 镜像。

您只需安装(或使用 PXE)镜像,然后节点就可以添加到集群,因此节点扩缩更加快捷、安全和灵活。

节点类型

OpenStack 要求最少包括两个节点,分别是一个 controller 节点(用于管理资源并为环境提供所需的 API 和服务)和一个计算节点(用于承载管理员创建的资源)。

要在生产架构中受到支持,controller 节点的角色将不变。

Harvester 节点是可互换的。Harvester 可以在 all-in-one 模式下部署,而且 controller 节点也将作为计算节点,因此 Harvester 是 Edge 架构不错的选择。

集群管理

Harvester 与 Rancher 完全集成,因此您可以轻松添加和删除节点。不需要预先配置新的计算节点或处理工作负载(Rancher 会管理集群)。

Harvester 可以从单个节点开始(也称为 all-in-one),该节点作为计算节点和单节点 controlplane。而 Longhorn 作为 Harvester 的一部分部署并提供存储层。当集群节点数量达到 3 时,Harvester 将重新配置,从而在不中断的情况下提供 HA 功能,而节点可以根据需要升级到 controlplane 或降级。