边缘计算云原生开源方案有哪些

目前国内各个公有云厂商也都开源了各自基于Kubernetes的边缘计算云原生项目。如华为云的KubeEdge,阿里云的OpenYurt,腾讯云的SuperEdge。目前网上很少有从技术视角来介绍这几个项目优缺点的文章,本文试着从技术视角,从开源视角来分析这几个项目,希望可以给大家做项目选型时提供一些借鉴。

01比较思路

这几个项目都是云边一体,云边协同的架构,走的是Kubernetes和边缘计算结合的路数,因此决定从以下几点比较:

(1) 各个项目的开源状况:比如开源项目的背景、开源的时间、是否进入了CNCF等;

(2)Kubernetes架构:

  • 先对比与Kubernetees的架构差异:主要关注是否修改Kubernetes,和;Kubernetes一键式转换等
  • 根据架构差异对比和Kubernetes的能力增强点;主要关注边缘自治,边缘单元化,轻量化等能力
  • 最后看一下架构差异可能带来的影响: 主要关注运维监控能力,云原生生态兼容性,系统稳定性等方面

(3)对边缘计算场景支持能力:

  • 主要关注是否具备端设备的管理能力

接下来以项目的开源顺序,从上述几个方面来介绍各个项目。

02边缘云原生开源项目对比

2.1KubeEdge

(1)开源状况

KubeEdge是华为云于2018年11月份开源的,目前是CNCF孵化项目。其架构如下:

首先从架构图可以看到,云端(k8s master)增加了Cloud Hub组件和各类controller,而在边缘端(k8s worker)没有看到原生的kubelet和kube-proxy,而是一个对原生组件进行重写了EdgeCore组件。

从架构图看EdgeCore是基于kubelet重构的,为了保证轻量化,裁剪了原生kubelet的部分能力,同时也增加了很多适配边缘场景的能力。具体如下:

  • Cloud Hub+EdgeHub模块: 抛弃了原生kubernetes 的组件间数据同步list/watch机制,改成基于websocket/quic协议从云端往边缘推送模式。
  • 节点元数据缓存模块(MetaManager): 把节点维度的数据持久化在本机的SQLite数据库中,当云边网络不稳定时Edged模块将从本地数据库中获取数据用于业务的生命周期管控。
  • DeviceController+设备管理模块(DeviceTwin): 把设备管理能力直接集成到EdgeCore中,为用户提供原生的设备管理能力。

上述的架构设计,对比Kubernetes的能力增强点主要有:

  • 边缘自治:通过增加节点元数据缓存,可以规避云边断网状态下,边缘业务或者节点重启时,边缘组件可以利用本地缓存数据进行业务恢复,这就带来了边缘自治的好处。
  • 轻量化: 削减了部分kubelet功能(如CSI,CNI等),从而使边缘EdgeCore组件相比原生kubelet组件更加轻量。同时因为节点上增加了SQLite数据库,所以节点维度相比原生节点是否轻量待确认,欢迎熟悉的同学提供数据。
【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章