QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

华为云智能边缘平台首席架构师解读 KubeEdge:云原生的边缘计算平台

  • 2020-03-24
  • 本文字数:3262 字

    阅读完需:约 11 分钟

华为云智能边缘平台首席架构师解读KubeEdge:云原生的边缘计算平台

2019 年 7 月 3 日,由中国信息通信研究院主办的云计算开源产业峰会在京召开。由华为云开源的智能边缘项目 KubeEdge 在会上荣获尖峰开源技术创新奖,华为云智能边缘云首席架构师出席领奖并发表了《KubeEdge:云原生的边缘计算平台》的主题演讲。


早在今年 3 月,CNCF 基金会及技术委员会全体一致同意开源智能边缘项目 KubeEdge 加入 CNCF 社区,成为 CNCF 在智能边缘领域的首个正式项目。KubeEdge 旨在推进云原生技术在智能边缘领域的生态建设与普及,与全球广大云原生社区伙伴一起共同推动智能边缘及云原生产业的发展。



华为云智能边缘云首席架构师


亮相 2019 云计算开源产业大会

云原生与边缘计算的完美结合

经过我们调研发现,传统的嵌入式设备开发面临着诸多挑战,严重制约着边缘设备上云以及大规模设备在云化场景下开发效率。


(1) 边云生态的割裂,物理设备访问难度高,与 IT 技术割裂,开发难度高产品上市周期长;


(2) 日趋复杂的边缘业务的部署,对高度分布和大规模可扩展性缺乏考虑;


(3) 缺少和云的协同以及边缘和边缘的协同,构建分布式系统难度高;


(4) OT 和 IT 世界技术割裂,协同门槛高;


那么,云原生和边缘计算相遇,会擦出什么样激烈的“火花”?现在大多数的边缘设备都与云端配合使用,比如工程师们可以在云端训练机器学习模型,训练好之后将推理模型应用于边缘节点。无论从边缘应用的分发,边缘应用的可靠性还是边云协同的机制上,云原生边缘计算有利于让边缘也具备像云一样的“弹性”,让应用可以“顺滑”的部署到边缘,保持应用在边缘与云端的一致性。


KubeEdge 通过更优的架构和技术实现,能完美应对当前遇到的挑战,帮助工程师从底层技术设施的管理中解放出来,将注意力集中到更高抽象层次的应用开发之中。这样,“云-边-端”就像是一个完美的整体,最终用户无需感知边缘设备的复杂分布。


  • 通过将 AI 能力、大数据能力等延伸到边缘,解决与云上服务的数据协同、任务协同、管理协同、安全协同诉求;

  • 通过数据本地化处理、边缘节点离线自治,解决了云和边缘之间的网络可靠性和带宽限制的问题;

  • 通过大幅优化边缘组件的资源占用(二进制大小约 46MB,运行时内存占用约 10MB),解决了边缘资源的约束问题;

  • 通过在云边之间构建的双向多路复用网络通道,解决了从云端管理高度分布的海量节点和设备难的问题;

  • 南向支持对接物联网主流的通信协议(MQTT,Bluetooth,Zigbee,BACnet 等),解决了异构硬件接入难的问题;


综合起来看,传统的嵌入式本地计算和云原生边缘计算的差异可以归纳如下:


KubeEdge 架构

KubeEdge 即 Kube+Edge,顾名思义就是依托 K8S 的容器编排和调度能力,实现云边协同、计算下沉、海量设备的平滑接入。KubeEdge 架构上包含两部分,分别是云端和边缘侧。云端负责应用和配置的下发,边缘侧则负责运行边缘应用和管理接入设备。



Edged:管理边缘的容器化应用程序。


EdgeHub:边缘的通信接口模块。这是一个 Web 套接字客户端,负责边缘计算与云服务的交互。


CloudHub:云端通讯接口模块。一个 Web 套接字服务器,负责监视云端的更改、缓存以及向 EdgeHub 发送消息。


EdgeController:管理边缘节点。它是一个扩展的 Kubernetes 控制器,管理边缘节点和 pod 元数据,以便数据可以面向特定的边缘节点。


EventBus:使用 MQTT 处理内部边缘通信。它是一个 MQTT 客户机,可以与 MQTT 服务器(mosquitto)交互,为其他组件提供发布和订阅功能。


DeviceTwin:它是处理设备元数据的设备软件镜像。该模块有助于处理设备状态并将其同步到云上。它还为应用程序提供查询接口,因为它连接到一个轻量级数据库(SQLite)。


MetaManager:它管理边缘节点上的元数据。这是 Edged 和 Edgehub 之间的消息处理器。它还负责在轻量级数据库(SQLite)中存储 / 检索元数据。

极致优化

容器天然的轻量化和可移植性,非常适合边缘计算的场景,鉴于 K8S 已经成为云原生编排的事实标准,因此携手 K8S 进入边缘将很有可能结束边缘计算当前混沌的状态,并定义云端和边缘统一的应用部署和管理的标准。


然而,由于边缘场景通信的不稳定性和严苛的资源消耗限制,导致原生的 K8S 组件无法直接运行在边缘节点上,例如:工业网关等。而受限于 K8S 本身 list/watch 机制带来的 disconnect 问题,数据面和管理面断连后,无法做到本地自治。


KubeEdge 选择的是“轻边缘”架构,即边缘侧的容器引擎和设备管理 agent 尽量轻量化,管理面运行在云端,且构建在 K8S 的调度能力之上,100%兼容 K8S 原生 API。KubeEdge all in K8S 的设计理念使得用户可以围绕 K8S 的标准 API 定制需求或者轻松集成云原生生态中的成熟项目。

从 ServiceMesh 到 EdgeMesh

在过去的一年中,服务网格(Service Mesh)已经演变成为云原生堆栈的重要组成部分。像 Paypal,Lyft,Ticketmaster 和 CreditKarma 这样的高流量公司都已经为其生产应用添加了 ServiceMesh。ServiceMesh 与云原生应用的兴起有关。在云原生模型中,单个应用程序可能包含数百个服务,每个服务可能有数千个实例,并且这些实例中的每一个都可能处于不断变化的状态,合理管理使用 ServiceMesh,对于确保端到端的性能和可靠性至关重要。


随着信通院《云计算与边缘计算协同九大应用场景(2019 年)》的发布,“云边协同是边缘计算发展的重要驱动力和不可分割的需求”已经逐渐成为业界共识。当纯粹的计算在边缘转向云边协同,如何以云原生的方式构建一个跨越了边缘和云端的分布式系统就成为了一个至关重要的问题:


(1)边缘应用需要有完善的微服务治理能力,以满足日趋复杂的边缘业务模型;


(2)边云、边边的协同成为边缘应用的基本要求,以满足海量边缘数据的处理。


使用 EdgeMesh 可以支持跨越边界的微服务访问,EdgeMesh 特性基于标准的 istio 进行服务治理控制,引入 EdgeMesh-proxy 负责边缘侧流量转发以及 P2P 技术跨子网通信,提供云-边、边-边通信,最终实现跨越边云的一致的服务发现和访问体验。


a)边边协同



b) 边云协同


边缘设备管理:设备访问微服务化

Kubernetes 提供的设备插件(device plugin)框架, 旨在通过 Kubelet 管理“绑定”在节点上的硬件(加速器),例如:GPU、FPGAs、InfiniBand 等,为 Pod 中的容器应用提供更强的计算和网络性能。


而 KubeEdge 的设备管理关注的是与边缘通信的外部设备,例如:蓝牙终端、智能传感器、工业设备等。KubeEdge 对设备管理的实现采用的是 Kubernetes 官方推荐的 Operator 方式,并实现了设备孪生(device twin)。设备管理 Operator 的核心是 Device CRD 和 Device Controller,其中 Device CRD 用来描述设备的状态等元数据,Device Controller 运行在云上,负责在云和边之间同步设备状态的更新(包括设备实际状态和用户设定的期望状态)。


KubeEdge 设备管理的工作流程如下图所示:



Device Controller 会把用户设定的设备孪生期望状态和配置下发到边缘,而在边缘的组件则要接收并处理这些信息。为了避免 edge_core 引入量处理边缘设备通信的代码,同时保持整个项目良好的易定制性,KubeEdge 设计了一个边缘设备驱动统一管理引擎 Mapper。


Mapper 之于 KubeEdge 的作用如同 CRI 之于 Kubernetes,只是 CRI 作为 Kubernetes 定义的容器接口与底层容器引擎打交道,而 Mapper 作为一个开放接口方便不同的设备协议接入 KubeEdge 这个边缘计算平台。


KubeEdge v1.0 中内置支持的设备协议是蓝牙,后续版本将逐步增加对 OPC-UA 和 Modbus 的支持。有了 Mapper 的解耦层,用户可以方便地根据实际需要开发自己的 Mapper 来实现与特定设备的通信,同时社区也欢迎广大开发者贡献更多的协议实现。


Mapper 的架构如下图所示:


欢迎加入 KubeEdge 大家庭

KubeEdge 横跨云原生和智能边缘两大版图,拥有非常大的想象力空间,足够给国内的优秀工程师们提供施展才华的平台。我们希望借助 KubeEdge 开放的架构设计吸收更多全球开发者参与 CNCF 云原生社区,共同繁荣 CNCF 云原生和智能边缘生态,协力一起将 KubeEdge 打造为中国在全球 CNCF 云原生社区以及智能边缘领域生态的名片。


本文转载自 华为云产品与解决方案 公众号。


原文链接:https://mp.weixin.qq.com/s/hl3L_033W-MNmUaP-bUMxw


2020-03-24 19:501632

评论

发布
暂无评论
发现更多内容

作为一名程序员我不忘初心,2021年是做Java开发人员的绝佳时机

Java 程序员 后端

作为Java程序员,java尚学堂和尚硅谷,看完我工资从12K变成了20K

Java 程序员 后端

什么会导致Java应用程序的CPU使用率飙升,高级Java开发技术

Java 程序员 后端

从JDK源码学习Hashmap,跳槽面试大厂被拒

Java 程序员 后端

保持稳定迭代的秘密:基于Spinnaker的全自动渐进式交付

博文视点Broadview

你不知道这份超详细JVM内存结构,Java吊打面试官系列

Java 程序员 后端

从底层开始带你了解并发编程,Java资料下载

Java 程序员 后端

作为一个码农终于把MySQL日记看懂了,中软国际Java笔试题和答案

Java 程序员 后端

作为一名程序员我不忘初心,听说你在找SpringBoot整合案例

Java 程序员 后端

你的技术真的到天花板了吗,值得推荐!

Java 程序员 后端

从基础到源码统统帮你搞定,mysql教程百度云,面试真题解析

Java 程序员 后端

作为一名程序员我不忘初心,java学习路线尚硅谷,Java工程师进阶之路

Java 程序员 后端

从基础到源码统统帮你搞定,Spring中经典的9种设计模式,一定要记牢

Java 程序员 后端

从消息中间件看分布式系统的多种套路,Java进阶篇

Java 程序员 后端

作为Java程序员应该怎样去规划自己的学习路线,2021Java者真的太难了

Java 程序员 后端

作为一名Java面试者你应该知道的,阿里,快手,拼多多等7家大厂Java面试真题

Java 程序员 后端

你有过迷茫吗,java的网络编程教程视频,这些知识点你会吗

Java 程序员 后端

Vue进阶(幺伍幺):Vue 应用 key 提升页面渲染性能

No Silver Bullet

Vue 10月月更

今年最新整理的《高频Java面试题集合》,Java开发者必须收藏的8个开源库

Java 程序员 后端

从零开始学数据结构和算法,offer来了java面试百度云版,学Java必看书籍

Java 程序员 后端

从青铜到王者的路线,mysql视频教程,MongoDB数据分布不均的解决方案

Java 程序员 后端

作为程序员一定不要仅仅追求物质,Javaweb面试宝典

Java 程序员 后端

从头到尾,都是精华,java就业班百度网盘,字节跳动算法工程师面试总结

Java 程序员 后端

从思路到不断优化,字节跳动算法工程师面试经验

Java 程序员 后端

作为Java程序员应该怎样去规划自己的学习路线,Java面试知识点

Java 程序员 后端

你想学的都在这里,开课吧java架构师百度云,阿里Java开发面试解答

Java 程序员 后端

作为字节跳动面试官,linux菜鸟教程pdf下载,深度集成!

Java 程序员 后端

你不知道这份超详细JVM内存结构,京东校招Java面试题

Java 程序员 后端

你头秃都没想到还能这样吧,Java这些高端技术只有你还不知道

Java 程序员 后端

价值2000元的Java学习资源泄露,Java中接口的使用你得知道

Java 程序员 后端

作为一名Java面试者你应该知道的,Java多进程从头讲到尾

Java 程序员 后端

华为云智能边缘平台首席架构师解读KubeEdge:云原生的边缘计算平台_云原生_华为云产品与解决方案_InfoQ精选文章