BMW 与 Harvester 的云与边缘之旅

时间:2022-10-10 13:12:35

作者

姚灿武,SUSE Rancher 研发工程师,拥有 6 年云计算领域经验,热衷开源技术,在云原生相关技术领域拥有丰富的开发和实践经验。

本文整理自姚灿武在 SUSECON 北京 2022 开源技术峰会上的主题演讲。

本文将通过 BMW 的边缘案例,从边缘的角度为大家介绍 Harvester,并分享 SUSE Rancher 中国团队对于边缘基础设施的一些思考。

边缘场景分类

边缘这个概念往往比较模糊,分类可以帮助我们清晰地界定和理解我们所面对的问题,从而给出更恰当的解决方案。SUSE 将边缘场景分为三类,分别是:

  • Near Edge: 主要是指电信、媒体和通信领域,靠近核心数据中心,数量比较少,一般就是在 10 ~ 100 之间;
  • Far Edge:指商超、工产生产车间以及公共部门等场景,距离核心数据中心较远,一般数量在 100 ~ 10,000 之间;
  • Tiny Edge: 指各种各样的终端设备,比如说汽车、工厂里的机械手臂等,通常与 Far Edge 部署在同一个空间。

BMW 与 Harvester 的云与边缘之旅

BMW 边缘需求与方案

BMW 边缘场景是一个典型的 FAR Edge 例子,主要包含以下三点需求:

  • 环境部署:要求部署在边缘数据中心(车辆制造厂、测试站等)的裸金属服务器上;
  • 扩展性和容错性:要求能够扩展到几台甚至数十台服务器上以及特别关注容错性和应用高可用;
  • 统一管理:希望在同一平台上管理虚拟机和容器应用。

我们为 BMW 提供的解决方案如下:

BMW 与 Harvester 的云与边缘之旅

这个方案主要的思路是:

  • 在裸金属服务器上安装 Harvester,满足环境部署要求以及扩展性要求;
  • 在 Harvester 之上启动传统虚拟机和 Kubernetes(天然满足应用高可用) ,用于部署虚拟机和容器应用;
  • Harvester 集成到 Rancher 中,使 Rancher 成为统一管理平台。

关于 Harvester

从上图可以看出,Harvester 是上述方案的重要组成,接下来给大家具体介绍一下 Harvester。

一句话概括,我们可以说:

Harvester 是云原生时代的开源 HCI 软件解决方案

如果用三句话,我们可以说:

  • 首先,Harvester 是基于云原生技术构建的 HCI 开源软件方案;
  • 其次,Harvester 使用了定制化的容器操作系统;
  • 最后, Harvester 与 Rancher 深度集成可以带来统一的管理体验。

这三点中,第一点立根云原生生态是核心,第二点和第三点是对云原生技术的深度使用和延伸。

接下来我们详细介绍下。

Harvester 是开源的 HCI 解决方案

首先我们需要了解什么是 HCI(Hyper-Converged Infrastructure)。

传统 IT 基础架构计算与存储是相互分离,然后通过网络进行连接的。而更先进的超融合基础架构(HCI)融合了这三者,具体来说有如下两个特点:

  • 融合:同一套设备中通过软件定义的方式,集成计算、网络、存储和服务器虚拟化等资源和技术;
  • 池化:多套设备能够聚合起来,形成统一可调度的资源池。

简单示意如下:

BMW 与 Harvester 的云与边缘之旅

Harvester 基于云原生生态构建

相比传统 HCI 如 Vmware ESXi,基于云原生生态上构建的 Harvester 引入了容器技术和 Kubernetes 声明式 API 的技术。

BMW 与 Harvester 的云与边缘之旅

  • Harvester 对容器技术的应用主要体现在使用了容器 OS;
  • 使用开发统一的 kubernetes API 替换厂商专有 API 使得我们可以使用 gitops 和云原生工具去管理我们的整个基础架构,包括 Rancher。

这两点也是 Harvester 产品的创新所在。

Harvester 使用容器 OS

容器 OS 是不可变基础设施理念从容器下沉到 OS 所带来的创新技术,它允许我们像制作容器镜像一样,使用 Dockerfile 自定义一个操作系统。Harvester 所使用的容器操作系统主要具有以下三个特点:

  • 不可变。因为操作系统变成了一个 OCI 镜像,利用 OCI 镜像的特点,使得操作系统拥有只读 rootfs 以及支持 OTA 升级。
  • 轻量。因为可以很方便地定制系统,我们可以针对 Harvester 的产品特点,精简内核固件和软件包。
  • 稳定。中小企业客户很难去维护一个操作系统,很多问题也正是在线上维护过程中引入的。Harvester 官方依托 SUSE 强大的 Linux 生态和技术来维护这个操作系统,不允许用户随意更改配置,很好地为用户解决了这个麻烦。
Harvester 与 Rancher 集成

引入 Kubernetes 声明式 API 允许 Harvester 可以方便地接入其他云原生生态产品,与 Rancher 集成就是一个典型。Harvester 与 Rancher 集成具体给我们带来如下的功能:

  • Harvester 可导入到 Rancher

①Kubernetes 集群与虚拟机在同一 UI 上管理;

②Harvester 继承 Rancher 多租户管理的能力。


  • 支持在 Rancher 上快速部署和管理集群

通过 Harvester node driver 快速部署集群;Harvester 可直接为集群提供存储和负载均衡能力(示意图如下)。Harvester 可以直接利用 Longhorn 的能力为 Harvester 之上部署的集群(客户集群)提供存储能力。Harvester 团队专门开发了 Harvester Load Balancer 为客户集群提供负载均衡能力。

BMW 与 Harvester 的云与边缘之旅

Harvester 功能和特性

这里罗列出 Harvester 的主要功能和特性,不再一一详细说明。


  • 环境配置与安装

①支持 ISO 与 PXE 安装

②支持离线环境与 Proxy 代理


  • 计算

①虚拟机生命周期管理

②内置 Prometheus 监控

③支持 VNC 与串口控制台访问

④Cloud-init 与 SSH Key 管理

⑤热迁移

⑥虚拟机备份与恢复(S3/NFS)


  • 存储

①分布式存储(默认高可用)

②内置镜像仓库(OS)

③磁盘热插拨


  • 网络

①集群 VIP

②支持多网卡与 VLAN


  • 多集群与多租户管理

①通过 Rancher 提供多集群管理

②基于 RBAC 的多租户管理

③内置 Cloud Provider 与CSI(Container Storage Interface) 驱动

思考分享

回到边缘的主题,关于“什么才是更加适应边缘场景的基础设施”,SUSE rancher 中国团队有一些思考可以与大家分享。

边缘场景的特点

首先边缘应用要求更低的时延,前面介绍的 BMW 的例子,就是为了追求更低的时延才将业务部署到边缘数据中心上面。

其次是边缘场景下所提供的资源包括 CPU、内存、存储、带宽等相比 IDC 或者公有云都是更少的。

最后,边缘场景下会有更多样的终端设备以及更多的设备间的连接。

可以再精炼总结如下:

  • 一是可利用的资源更少了,所以要求在设计产品或者方案时要做减法,追求轻量。
  • 二是场景更加多样复杂,难以有通用的方案,管理上会更加复杂,这就要求我们提供更有效的管理手段。
怎样构建更加适应边缘场景的基础设施

为应对边缘场景特点带来的两个挑战,我们认为有两个理念值得借鉴:

  • 不可变基础设施的理念。将基础设施抽象化,基础设施即代码,像管理代码一样管理我们的基础设施。这种方式可以让我们灵活地去自定义应用和操作系统。自定义时,我们就可以针对业务做深度优化,缩减资源使用;同时,应用与操作系统被打包成一个个 OCI 镜像,也使应用分发和系统升级更加简便。
  • 业务独占集群理念。在边缘场景下,通用大集群难以适用,我们应该让基础设施去适应业务,部署业务独占的微集群,一套集群专属一套业务,实现架构解耦与故障隔离的同时,也允许我们去针对应用做深入的优化,包括编排引擎和 OS 层面,不再像通用容器平台一样追求大而全,转而追求轻量和合适。

Harvester 本质上就是这两个技术理念的实践产物。

我们期待未来可以给大家带来更多关于 Harvester 的落地实践,也期待可以给大家带来更多的好用先进的软件产品。