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


与OpenYurt对比

  • 从SuperEdge的架构以及功能分析下来 , 发现SuperEdge从架构到功能和OpenYurt基本一致 。这也从侧面印证 , 边缘计算云原生这个领域 , 各大厂商都在如火如荼的投入 。
  • SuperEdge与Kubernetes的对比分析可以参照OpenYurt的分析 , 这里我们从代码角度分析SuperEdge和OpenYurt的差异:
  • YurtHub和Lite-Apiserver: YurtHub采取了完善的证书管理机制和本地数据缓存设计 , 而Lite-Apiserver使用的是节点kubelet证书和数据简单缓存 。
  • Tunnel组件:OpenYurt的Tunnel组件是基于Kubernetes社区的开源项目ANP(github.com/kubernetes-s) , 同时实现了完善的证书管理机制 。而SuperEdge的Tunnel组件同样也是使用节点证书 , 同时请求转发是基于自行封装的gRPC连接 。OpenYurt底层的ANP相比原生gRPC , 会更好适配kube-apiserver的演进 。
  • 单元化管理组件: OpenYurt单元化管理支持Deployment和StatefulSet,而SuperEdge的单元化管理只支持Deployment 。另外OpenYurt的NodePool和UnitedDeployment的API定义是标准云原生的设计思路 , 而SuperEdge的ServiceGrids和 DeploymentGrids的API定义显得随意一些 。
  • 边缘状态检测 , 这个能力OpenYurt未实现 , SuperEdge的设计需要kubelet监听节点地址用于节点间互相访问 , 有一定安全风险 。同时东西向流量也有不少消耗在健康检查上 。期待这个部分后续的优化 。
2.4对比结果一览根据上述的对比分析 , 结果整理如下表所示:项目华为KubeEdge阿里OpenYurt腾讯SuperEdge是否CNCF项目是(孵化项目)是(沙箱项目)否开源时间2018.112020.52020.12侵入式修改Kubernetes是否否和Kubernetes无缝转换无有未知边缘自治能力有(无边缘健康检测能力)有(无边缘健康检测能力)有(安全及流量消耗待优化)边缘单元化不支持支持支持(只支持Deployment)是否轻量化是(节点维度待确认)否否原生运维监控能力部分支持全量支持全量支持(证书管理及连接管理待优化)云原生生态兼容部分兼容完整兼容完整兼容系统稳定性挑战大(接入设备数量过多)大(大规模节点并且云边长时间断网恢复)大(大规模节点并且云边长时间断网恢复)设备管理能力有(有管控流量和业务流量耦合问题)无无03总结各个开源项目 , 整个比较下来自己的感受是:KubeEdge和OpenYurt/SuperEdge的架构设计差异比较大 , 相比而言OpenYurt/SuperEdge的架构设计更优雅一些 。而OpenYurt和SuperEdge架构设计相似 , SuperEdge的开源时间晚于OpenYurt , 项目成熟度稍差 。如果打算选择一个边缘计算云原生项目用于生产 , 我会从以下角度考虑:
  • 如果需要内置设备管理能力 , 而对云原生生态兼容性不在意 , 建议选择KubeEdge
  • 如果从云原生生态兼容和项目成熟度考虑 , 而不需要设备管理能力或者可以自建设备管理能力 , 建议选择OpenYurt

推荐阅读