写点什么

华为云智能边缘平台首席架构师解读 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:501966

评论

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

零信任与 K8s 环境实践

HummerCloud

k8s 零信任 kubernetes 运维

YMatrix 番外篇|透过镜头,那些不为人知的故事

YMatrix 超融合数据库

车联网 超融合数据库 C++ YMatrix 研发故事

行云管家荣膺STIF第三届国际科创节 “2022年度数字化创新典范奖”

行云管家

信息安全 数字化 国际科创节

使用 SQL 实现同比环比分析

搞大屏的小北

数据可视化 同比环比 展示同比环比 BI大屏同比环比

数益工联 x TiDB丨如何运用 HTAP 挖掘工业数据价值?

TiDB 社区干货传送门

怎样将数据从Oracle迁移到TiDB

TiDB 社区干货传送门

TiDB 同步数据到 Kafka 最佳实践

TiDB 社区干货传送门

2022 年 TiDB 社区年度总结,2023年,我们一起兔飞猛进

TiDB 社区干货传送门

中科院自动化所历时9年打造的类脑认知智能引擎“智脉”正式开源部署至OpenI启智社区

OpenI启智社区

类脑计算 OpenI启智社区 智脉 开源开放 中科院自动化所

Liga妙谈 | 找准「话事人」,高效甄别和响应用户反馈

LigaAI

产品经理 敏捷开发 PO 产品负责人 12 月 PK 榜

确保网路畅通,华为云CDN加速服务大有可为

路过的憨憨

助力企业服务体验升级,华为云CDN这样做

路过的憨憨

Oracle 到 TiDB (OGG)

TiDB 社区干货传送门

为什么我们要从MySQL迁移到TiDB?

TiDB 社区干货传送门

阿里IM技术分享(九):深度揭密RocketMQ在钉钉IM系统中的应用实践

JackJiang

RocketMQ 即时通讯 im开发 开源im 钉钉IM

智能制造 | AIRIOT智慧工厂管理解决方案

AIRIOT

物联网 智慧工厂 物联网系统搭建

这个API管理工具不登录不下载就能用!

不想敲代码

API 接口管理 协同办公 协同软件

ROMA Connect: 5大联接能力+4大集成能力,推进企业数字化转型

华为云开发者联盟

云计算 后端 数字化 华为云 12 月 PK 榜

艺多不压身!华为云CDN成众多企业网络支撑

路过的憨憨

墨芯人工智能加入龙蜥,携手打造软硬协同稀疏化计算平台

OpenAnolis小助手

人工智能 开源 龙蜥社区 CLA 墨芯

记一次因 GC bug 导致 TiKV 存储占用不均的问题处理

TiDB 社区干货传送门

管理与运维 故障排查/诊断

面向对象分析与设计的底层逻辑

阿里技术

面向对象设计

数据存储难?华为云对象存储服务OBS带你全方位解决

IT科技苏辞

接口自动化测试不想写代码?这款工具强烈推荐

不想敲代码

自动化测试 API 自动化测试平台

等保四级适用于哪些领域?一年一次吗?

行云管家

等保 等级保护 等保四级

1024·致敬 | 迟到的小温暖,感谢不平凡的你们

XTransfer技术

DTT年度收官圆桌π,华为云8位技术专家的年末盘点

华为云开发者联盟

云计算 后端 华为云 12 月 PK 榜

TiDB 的“聚簇因子” -- 从 cop task 到 shard_row_id_bits

TiDB 社区干货传送门

性能测评 OLTP 场景实践

NFTScan 与 Cwallet 团队达成战略合作伙伴,由 NFTScan 为其提供 NFT API 数据服务

NFT Research

NFT 数据基础设施

网络拥堵影响业绩?看华为云CDN如何为企业保驾护航

路过的憨憨

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