13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

边缘计算云原生开源方案选型比较

边缘计算云原生开源方案选型比较

作者:lanliang 2021-02-28 13:45:12

云计算

边缘计算

云原生 随着Kubernetes已经成为容器编排和调度的事实标准,各大公有云厂商都已经基于Kubernetes提供了完善的Kubernetes云上托管服务。

成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站制作、网站设计、海湖新网络推广、微信小程序开发、海湖新网络营销、海湖新企业策划、海湖新品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供海湖新建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com

 随着Kubernetes已经成为容器编排和调度的事实标准,各大公有云厂商都已经基于Kubernetes提供了完善的Kubernetes云上托管服务。同时也看到越来越多的企业、行业开始在生产中使用Kubernetes, 拥抱云原生。在各行各业数字化转型和上云过程中,公有云厂商也在主动拥抱传统线下环境,在思考各种各样的解决方案使云上能力向边缘(或线下)延伸。

而Kubernetes由于屏蔽了底层架构的差异性,可以帮助应用平滑地运行在不同的基础设施上的特性,云上的Kubernetes服务也在考虑拓展其服务边界,云原生和边缘计算结合的想法自然就呼之欲出了。

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

01比较思路

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

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

(2)Kubernetes架构:

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

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

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

2.1KubeEdge

(1)开源状况

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

(2)与Kubernetes的架构差异

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

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

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

架构差异可能带来的影响:

  1. 跟随社区同步演进挑战大: 由于对Kubernetes系统的侵入式修改,后续跟随Kubernetes社区的演进将会遇到很大挑战。
  2. 边缘节点无法运行Operator:因为云边通信机制的修改,Cloud Hub只能往边缘推送有限的几种资源(如Pod,ConfigMap等)。而Operator既需要自定义CRD资源,又需要list/watch云端获取关联资源,因此社区的Operator无法运行的KubeEdge的边缘节点上。
  3. 边缘节点不适合运行需要list/watch云端的应用: 因为云边通信机制的修改,导致原来需要使用list/watch机制访问kube-apiserver的应用,都无法通过hub tunnel 通道访问kube-apiserver,导致云原生的能力在边缘侧大打折扣。

因为目前云边通信链路是kube-apiserver --> controller --> Cloud Hub -->EdgeHub -->MetaManager等,而原生Kubernetes运维操作(如kubectl proxy/logs/exec/port-forward/attch等)是kube-apiserver直接请求kubelet。目前KubeEdge社区最新版本也仅支持kubectl logs/exec/metric,其他运维操作目前还不支持。

  1. 基于增量数据的云边推送模式:可以解决边缘watch失败时的重新全量list从而引发的kube-apiserver 压力问题,相比原生Kubernetes架构可以提升系统稳定性。
  2. Infra管控数据和业务管控数据耦合:Kubernetes集群的管控数据(如Pod,ConfigMap数据)和边缘业务数据(设备管控数据)使用同一条websocket链路,如果边缘管理大量设备或者设备更新频率过高,大量的业务数据将可能影响到集群的正常管控,从而可能降低系统的稳定性。

边缘计算场景支持能力

2.2OpenYurt

(1)开源状况

OpenYurt是阿里云于2020年5月份开源的,目前是CNCF沙箱项目。架构如下:

(2)与Kubernetes的架构差异

OpenYurt的架构设计比较简洁,采用的是无侵入式对Kubernetes进行增强。在云端(K8s Master)上增加Yurt Controller Manager, Yurt App Manager以及Tunnel Server组件。而在边缘端(K8s Worker)上增加了YurtHub和Tunnel Agent组件。从架构上看主要增加了如下能力来适配边缘场景:

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

  1. 所有功能均是通过Addon或者controller形式来增强Kubernetes,因此保证来对Kubernetes以及云原生社区生态的100%兼容。
  2. 另外值得一提的是:OpenYurt项目还提供了一个YurtCtl工具,可以用于原生Kubernetes和OpenYurt集群的一键式转换,

架构差异可能带来的影响

边缘计算场景

2.3SuperEdge

(1)开源状况

SuperEdge是腾讯云于2020年12月底开源的,目前还是开源初期阶段。其架构如下:

(2)与Kubernetes的架构差异

SuperEdge的架构设计比较简洁,也是采用的无侵入式对Kubernetes进行增强。在云端(K8s Master)上增加Application-Grid Controller, Edge-Health Admission以及Tunnel Cloud组件。而在边缘端(K8s Worker)上增加了Lite-Apiserver和Tunnel Edge,Application-Grid Wrapper组件。从架构上看主要增加了如下能力来适配边缘场景:

与OpenYurt对比

2.4对比结果一览

根据上述的对比分析,结果整理如下表所示:

03总结

各个开源项目,整个比较下来自己的感受是:

KubeEdge和OpenYurt/SuperEdge的架构设计差异比较大,相比而言OpenYurt/SuperEdge的架构设计更优雅一些。而OpenYurt和SuperEdge架构设计相似,SuperEdge的开源时间晚于OpenYurt,项目成熟度稍差。

如果打算选择一个边缘计算云原生项目用于生产,我会从以下角度考虑:


新闻标题:边缘计算云原生开源方案选型比较
链接分享:http://cdbrznjsb.com/article/djisiid.html

其他资讯

让你的专属顾问为你服务