项目的地址(欢迎Star、Folk,各类Issue、PR):git
kubeedge/kubeedge github
北京时间5月29日,KubeEdge发布了第三个特性版本v0.3.0。性能优化
本次发布的新版本包含了边缘设备管理、一键安装部署工具、端到端性能测试框架,以及21处问题修复。做为v0.3版本的关键新特性,边缘设备管理能力的引入使得KubeEdge能够完整打通各种云、边、设备协同的场景;KubeEdge installer的加入大大简化了安装部署一套完整KubeEdge集群的难度;端到端性能测试框架的实现则为后续的规模测试及性能优化工做奠基了基础。网络
接下来本文将逐一解读KubeEdge v0.3的核心特性。架构
边缘设备管理app
在介绍KubeEdge的边缘设备管理能力以前,先简单了解下KubeEdge边缘设备管理与Kubernetes设备插件的区别。框架
Kubernetes提供的设备插件(device plugin)框架, 旨在经过Kubelet管理“绑定”在节点上的硬件(加速器),例如:GPU、FPGAs、InfiniBand等,为Pod中的容器应用提供更强的计算和网络性能。而KubeEdge的设备管理关注的是与边缘通讯的外部设备,例如:蓝牙终端、智能传感器、工业网关等,这部分功能由KubeEdge开发的edge_core负责。工具
边缘设备状态管理operator性能
KubeEdge的设备管理采用的是Kubernetes官方推荐的Operator方式,并实现了设备孪生(device twin)。设备管理Operator的核心是Device CRD和Device Controller,其中Device CRD用来描述设备的状态等元数据,Device Controller运行在云上,负责在云和边之间同步设备状态的更新(包括设备实际状态和用户设定的指望状态)。测试
KubeEdge设备管理的工做流程以下图所示:
边缘设备驱动统一接入接口:Mapper
Device Controller会把用户设定的设备孪生指望状态和配置下发到边缘,而在边缘的组件则要接收并处理这些信息。为了不edge_core引入量处理边缘设备通讯的代码,同时保持整个项目良好的易定制性,KubeEdge设计了一个边缘设备驱动统一管理引擎Mapper。
Mapper之于KubeEdge的做用如同CRI之于Kubernetes,只是CRI做为Kubernetes定义的容器接口与底层容器引擎打交道,而Mapper做为一个开放接口方便不一样的设备协议接入KubeEdge这个边缘计算平台。
KubeEdge v0.3中内置支持的设备协议是蓝牙,后续版本将逐步增长对OPC-UA和Modbus的支持。有了Mapper的解耦层,用户能够方便地根据实际须要开发本身的Mapper来实现与特定设备的通讯,同时社区也欢迎广大开发者贡献更多的协议实现。
Mapper的架构以下图所示:
具体的Mapper实现,例如Bluetooth Mapper,经过订阅MQTT broker的消息得到用户从云端下发的设备指望状态,而后经过设备驱动程序控制设备的开、关等动做。
Bluetooth Mapper除了可以响应云端设备状态更新,还能从蓝牙设备接收数据并将原始数据转换成应用程序可以直接使用的数据发布给MQTT broker。这样运行在边缘节点上的应用程序只需订阅MQTT broker的相应消息topic即可得到通过处理的设备数据。
将来,KubeEdge还将引入data management框架统一处理边缘侧收集的数据。
一键部署工具KubeEdge installer
KubeEdge v0.3发布了一键部署工具KubeEdge installer,完全代替了以前的安装脚本,下降了用户安装和管理KubeEdge集群生命周期的难度。KubeEdge installer分为cloud和edge两类子命令,分别对应于云端管理面和边缘节点的管理。
当前实现的云上节点命令有:
# kubeedge init:初始化一个KubeEdge管理面,包括安装一个Kubernetes集群和edge-controller。
# kubeedge reset:Kubeedge init的逆操做。
当前实现的边缘节点命令有:
# kubeedge join: 初始化一个KubeEdge节点并加入到KubeEdge管理面。
# kubeedge reset: KubeEdge join的逆操做。
端到端性能测试框架
KubeEdge支持管理海量的边https://kubeedge.io缘节点和设备,v0.3发布的端到端性能测试框架可以用于准确地发现系统的时延、吞吐、资源消耗等性能瓶颈。
性能测试部署以下图所示:
当准备进行性能测试时,测试客户端经过向云端的Kubernetes master下发测试负载,包括:Job、Deployment、Device CRD等,同时经过观测KubeEdge集群返回的Event计算系统的时延、吞吐率、CPU/内存使用等性能数据。
随着v0.3版本的发布,KubeEdge提供了完成打通云、边缘、设备三者协同的最小功能集,后续版本将提供边缘站点(EdgeSite)、云-边/边-边通讯(EdgeMesh)等高级特性。更多详情请关注: