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

国内新闻 浏览(1675)

近日,由中国信息通信研究院主办的云计算开源产业峰会在北京召开。华为云开源智能边缘项目KubeEdge在会议上获得了峰值开源技术创新奖。华为Cloud Edge Cloud的首席架构师张琦出席了颁奖并发表了主题演讲《KubeEdge:云原生的边缘计算平台》。

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

img_pic_1562555614_0.jpg

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

经过我们的研究,我们发现传统的嵌入式设备开发面临着诸多挑战,严重制约了边缘设备上云计算场景中云和大型设备的开发效率。

(1)边缘云生态分离,物理设备接入困难,IT技术分离,开发困难,产品上市时间长

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

(3)缺乏与云的协同作用以及边缘和边缘之间的协同作用,很难构建分布式系统

(4)OT和IT世界技术分离,协作门槛高

然后,云原生和边缘计算会遇到什么样的激烈“火花”?大多数边缘设备现在与云一起使用。例如,工程师可以在云中训练机器学习模型,并在训练后应用推理模型。在边缘节点。无论边缘应用程序的分布,边缘应用程序的可靠性还是边缘云协作的机制,云原生边缘计算都有助于使边缘具有与云相同的“弹性”,从而使应用程序能够“平滑”地部署到边缘。使应用程序在边缘和云端保持一致。

通过更好的架构和技术实施,KubeEdge可以完美地应对当前的挑战,帮助工程师摆脱对底层技术设施的管理,并专注于更高抽象层次的应用程序开发。通过这种方式,“云端端”就像一个完美的整体,最终用户不需要感知边缘设备的复杂分布。

通过将AI功能和大数据功能扩展到边缘,解决数据协作,任务协作,管理协作和云服务安全协作

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

通过大大优化边缘组件的资源消耗来解决边缘资源约束问题(二进制大小约为46MB,运行时内存大约为10MB)

通过云端之间建立的双向复用网络通道,解决云管理高度分布的大规模节点和设备问题

对物联网主流通信协议(MQTT,蓝牙,Zigbee,BACnet等)的南向支持,解决了异构硬件难以访问的问题

总之,传统嵌入式本地计算和云原生边缘计算之间的差异可归纳如下:

img_pic_1562555614_1.png

KubeEdge架构

KubeEdge,Kube + Edge,顾名思义,依靠K8S的容器编排和调度功能来实现云端协作,计算下沉以及对大型设备的平滑访问。 KubeEdge架构由两部分组成,云端和边缘端。云负责交付的应用程序和配置,边缘负责运行边缘应用程序和管理访问设备。

img_pic_1562555614_2.jpg

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

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

CloudHub:云通信接口模块。一个Web套接字服务器,用于监视云中的更改,缓存并向EdgeHub发送消息。

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

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

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

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

极端优化

容器的自然轻量级和便携性非常适合边缘计算场景。由于K8S已成为云原始布局的事实标准,因此K8S很可能进入边缘以结束边缘计算的当前混沌状态并定义云和边缘。应用程序部署和管理的统一标准。

但是,由于边缘场景通信的不稳定性和严重的资源消耗限制,本机K8S组件无法直接在边缘节点上运行,例如:工业网关。它受到K8S自己的列表/监视机制引起的断开问题的限制。数据平面和管理平面断开连接后,无法实现本地自治。

KubeEdge选择了“轻薄边缘”架构,即边缘端的容器引擎和设备管理代理尽可能轻量级,管理平面在云端运行,并且基于K8S调度功能,100%兼容K8S原生API。 KubeSdge全部采用K8S设计理念,允许用户围绕K8S标准API定制需求,或者轻松地将成熟项目集成到云原生态系统中。

从ServiceMesh到EdgeMesh

在过去的一年中,Service Mesh已经发展成为云本地堆栈的重要组成部分。 Paypal,Lyft,Ticketmaster和CreditKarma等高流量公司已将ServiceMesh添加到其生产应用程序中。 ServiceMesh与云原生应用程序的兴起有关。在云本机模型中,单个应用程序可能包含数百个服务,每个服务可能有数千个实例,并且每个实例可能处于不断变化的状态,使用ServiceMesh进行适当管理,以确保端到端最终的性能和可靠性至关重要。

(1)Edge应用程序需要具备复杂的微服务治理功能,以满足日益复杂的边缘业务模型;

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

EdgeMesh可以支持跨境的微服务访问。 EdgeMesh基于标准isti进行服务管理,EdgeMesh-proxy负责边缘流量转发和P2P技术,实现跨子网通信,提供云端和边缘到边缘的通信。跨边缘云实现一致的服务发现和访问体验。

a)边缘协作

img_pic_1562555614_3.jpg

b)Edge Cloud Collaboration

img_pic_1562555614_4.jpg

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

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

KubeEdge的设备管理侧重于与边缘通信的外部设备,例如:蓝牙终端,智能传感器,工业设备等。 KubeEdge使用Kubernetes推荐的Operator方法实现设备管理实现,并实现设备双胞胎。设备管理设备的核心是设备CRD和设备控制器。 Device CRD用于描述设备的状态。设备控制器在云上运行,负责同步云和边缘之间的设备状态(包括设备的实际状态和用户设置的所需状态)。

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

img_pic_1562555614_5.jpg

设备控制器将所需的设备状态和配置发送到边缘,而边缘的组件将接收和处理信息。为了避免edge_core引入代码来处理边缘设备通信,同时保持整个项目的良好定制,KubeEdge设计了边缘设备驱动程序统一管理引擎Mapper。

Mapper在KubeEdge中的角色就像CRI到Kubernetes,除了CRI充当由Kubernetes定义的容器接口并与底层容器引擎交互,而Mapper充当开放接口以促进不同的设备协议访问边缘计算平台KubeEdge。

KubeEdge v1.0支持的设备协议是蓝牙,后续版本将逐渐增加对OPC-UA和Modbus的支持。借助Mapper的解耦层,用户可以轻松开发自己的Mapper,以根据实际需要实现与特定设备的通信,社区也欢迎开发人员提供更多协议。

Mapper的架构如下所示。

img_pic_1562555614_6.jpg

欢迎来到KubeEdge系列

KubeEdge涵盖云和智能边缘的两个主要布局,并具有非常大的想象空间,足以为国内优秀工程师提供展示才华的平台。我们希望使用KubeEdge的开放式架构设计吸收更多全球开发人员参与CNCF云原生社区,共同推动CNCF云本地和智能边缘生态系统,并共同构建KubeEdge作为中国全球CNCF云社区的名片和智能边缘域。

值得一提的是,KubeEdge项目来自华为云上的星空服务智能边缘平台(IEF)。目前的IEF处于测试阶段,每个人都可以免费体验它。