深度解读 KubeEdge 架构设计与边缘 AI 实践探索
云原生边缘计算的行业背景与挑战
随着云原生技术的发展,云原生正在从数据中心向边缘延伸,云原生边缘计算技术应运而生。云原生边缘计算是一种新型的边缘计算架构,将云计算的弹性和可扩展性与边缘计算的低延迟和数据处理能力相结合,基于 Kubernetes、Docker 等云原生技术,将计算、存储、网络等资源部署在靠近数据源的边缘节点上,实现数据的实时处理和分析,在物联网、智能制造、智慧医疗等领域有着广阔的应用前景。
云原生边缘计算能带来更高效、更稳定的资源调度与管理,拥有丰富的技术生态集成,带来经济利益的提升。但由于边缘计算细分领域众多、互操作性差,边云通信网络质量低、时延高,云原生边缘计算仍存在很多技术难题与挑战。
云原生边缘计算平台 KubeEdge 架构解析
KubeEdge(https://github.com/kubeedge/kubeedge)是 CNCF 首个云原生边缘计算项目,也是业界首个云原生边缘计算框架。KubeEdge 不断在边缘计算领域进行技术探索,例如面向边缘 AI 的场景实现了业界首个分布式 AI 协同框架子项目 Sedna;面向边缘容器网络通信领域实现 Edgemesh;面向边缘设备管理领域发布了云原生边缘设备管理接口 DMI,支持边缘设备以云原生的方式接入集群。除在技术方面不断探索外,KubeEdge 还积极与友商和高校等研究机构合作推动云原生边缘计算的案例落地,例如全国高速公路取消省界收费站、智能汽车等项目。
KubeEdge 架构图如下图所示。
KubeEdge 核心的设计理念是凭借 Kubernetes 中的云原生管理能力,在边缘计算的场景对原有 Kubernetes 做了功能增强,主要包含以下三点:
云边消息可靠性的增强。云端向边端发送控制命令时会检测边缘是否回传 ACK 应答,确保消息下发成功;另一方面,云端会对控制命令编号,记录消息的下发,避免重发消息可能导致的带宽冲击问题。
组件的轻量化。为了应对边缘场景资源受限的问题,KubeEdge 在 edgecore 中集成了一个经过裁剪后轻量级的 kubelet,用以管理边缘应用的容器,目前 KubeEdge 自身组件占用已经能够减少至 70M 左右。
边缘物理设备管理。KubeEdge 利用设备管理插件 Mapper 以云原生化的方式纳管边缘设备。用户能够定义设备配置文件,以 Kubernetes 自定义资源的方式云原生化管理边缘物理设备。
KubeEdge 核心技术介绍
本次直播主要介绍了 KubeEdge 边缘设备管理与边缘容器网络这两个关键技术。
KubeEdge 使用云原生的方式管理边缘设备,实现了基于物模型的设备管理 API,表现为 DeviceModel 与 DeviceInstance 这两个 Kubernetes CRD:
DeviceModel 是同类设备通用抽象。同一类同一批次的设备中一些设备属性往往是相同的,能够抽象为 DeviceModel 进行管理。
DeviceInstance 是设备实例的抽象。一个 DeviceInstance 就对应一个实际边缘设备,定义了设备协议、设备访问方式等内容。
KubeEdge 使用 Mapper 设备管理插件实际管理边缘设备。Mapper 中集成了设备驱动,能够与设备通信、采集设备数据与状态。Mapper 通过实现 KubeEdge edgecore 中的 DMI 设备管理统一接口完成自身向 KubeEdge 集群注册、设备数据上报的能力。
KubeEdge 中已经内置了例如 Modbus、Onvif 等典型协议的 Mapper,也提供 Mapper 开发框架 Mapper-Framework,便于开发者自行开发其他 Mapper。Mapper-Framework 内置了 DMI API 以及数据面、管理面的能力,能够自动生成 Mapper 工程的模板,用户只需实现设备驱动层能力即可实现全量 Mapper 能力。
在边缘场景下,边云、边边网络割裂,微服务之间无法跨子网直接通信;而且边缘侧网络质量不稳定,节点离线、网络抖动是常态,且边缘节点常位于私有网络,难以实现双向通信。为应对边缘容器网络通信存在的问题,KubeEdge 构建了数据面组件 Edgemesh,为应用程序提供了服务发现与流量代理功能,同时屏蔽了边缘场景下复杂的网络结构。
Edgemesh 的功能特点如下:
采用 P2P 打洞技术。Edgemesh 通过 P2P 打洞技术打通边缘节点间的网络,让边缘节点在局域网内或跨局域网的情况下都能通信。
内部 DNS 服务器。Edgemesh 内部实现轻量级的 DNS 服务器,让域名请求在节点内闭环。这一特性主要针对边云连接不稳定的情况,目的是在边缘节点与云节点断开连接后也能正常完成域名解析。
轻量级部署。Edgemesh 仅以一个 Agent 的方式部署在节点上,能够节省边缘资源。
Edgemesh 的结构如下图所示:
Edgemesh 结构主要包括五个部分:
Proxier: 负责配置内核的 iptables 规则,将请求拦截到 Edgemesh 进程内
DNS: 内置的 DNS 解析器,将节点内的域名请求解析成一个服务的集群 IP
LoadBalancer: 集群内流量负载均衡
Controller: 通过 KubeEdge 的边缘侧 Local APIServer 能力获取 Services、Endpoints、Pods 等元数据
Tunnel:利用中继和打洞技术来提供跨子网通讯的能力
基于 KubeEdge 的边缘 AI 实现
随着人工智能技术的发展,将 AI 能力下沉边缘侧也是目前重要的研究方向,边缘 AI 指在边缘计算环境中实现的人工智能,允许在生成数据的边缘设备附近进行计算,具有实时性、隐私性、降低功耗和带宽的优势,本次直播也介绍了基于 KubeEdge 的边缘 AI 实现。
KubeEdge 面向边缘 AI 场景提出边缘智能框架 Sedna,是业界首个分布式协同 AI 开源项目,基于 KubeEdge 提供的边云协同能力,支持现有 AI 类应用无缝下沉到边缘,能够降低构建与部署成本、提升模型性能、保护数据隐私。Sedna 拥有以下特点:
提供 AI 边云协同框架。Sedna 为用户提供了跨边云的数据集和模型管理能力,帮助开发者快速构建自己的 AI 应用。
支持多种边云协同训练和推理模式。当前 Sedna 拥有协同推理、增量学习、联邦学习与终身学习四大范式,分别针对边侧资源受限、模型更新、原始数据不出边缘和小样本与边缘数据异构问题做了改进优化。
具有开放生态。Sedna 支持业界主流 AI 框架例如 TensorFlow, Pytorch, Paddle, Mindspore 等,还提供开发者扩展接口,能够支持快速集成第三方算法。
Sedna 也可以理解为云原生的边云协同框架,兼容 Kubernetes KubeEdge 云原生生态,架构图如图所示:
Sedna 的架构主要包含以下四个部分:
Global Manager: 是拓展的 Kubernetes 的 CRD 资源,实现的功能主要有 AI 任务的生命周期管理,比如创建、删除等
Local Controller: 辅助云侧做一些边缘化的自治,并且完成本地模型数据集的管理控制
Worker: 计算任务和推理任务的对象,对应于 Kubernetes 表现为部署创建的容器,用来实际进行训练推理
Lib 库: 能够将用户已有的 AI 应用改造成边云协同的方式
KubeEdge 典型案例解读
KubeEdge 目前已广泛应用于智能交通、智慧园区、工业制造、金融、航天、物流、能源、智能 CDN 等行业,本期直播选取多个典型案例进行了解读,包括基于 KubeEdge 的多云原生机器人编排、大规模 CDN 节点管理平台、基于 KubeEdge/Sedna 的楼宇热舒适度预测控制、基于 KubeEdge 的智慧园区等。
1、基于 KubeEdge 的多云原生机器人编排
目前机器人处于智能化的初级阶段,只能完成特定的一项或几项任务,不具备理解复杂指令和自主探索解决方案的能力。随着大语言模型的发展,我们希望借助大模型的能力助力机器人复杂指令的拆解,实现具身智能。
基于 KubeEdge 的多云原生机器人编排系统架构如图所示,主要分为云端大脑、边侧小脑、端侧机器人躯干。云端大脑部署大语言模型,能够按照用户指令自动生成机器人的控制代码并下发边侧小脑;边侧小脑具有机器人的一些基本技能,例如 3D 环境感知、路径规划、实时定位与导航,能够控制机器人完成移动、抓取;端侧机器人躯干具有众多传感器,能够向云端大脑、边侧小脑反馈状态,更新系统。
当前基于 KubeEdge 的多云原生机器人编排实现了基于多机器人协调的 NLP 驱动的任务理解和任务执行功能,能将云边端系统端到端部署周期缩短 30%,机器人效率提高 25%,新型机器人集成周期由数月缩短至数天。
2、基于 KubeEdge 的大规模 CDN 节点管理平台
CDN 节点指距离最终用户接入具有较少中间环节的网络节点,具有较好的响应能力和连接速度。CDN 节点中往往存储了网站和应用程序的静态内容,能够提高访问速度;同时,CDN 节点在物理布局上通常具有离散分布的特点,且网络连接可能不稳定。
基于 KubeEdge 的大规模 CDN 节点管理平台架构如下图所示。需要在各区域中心及数据中心建若干个 Kubernetes 集群,这些中心具有全量 Kubernetes 能力,包括负载均衡、网络插件相关能力,能够满足业务部署在中心云的需求,例如区域的日志汇聚、监控汇聚、镜像分发加速的能力,除了传统 Kubernetes 组件,在区域中心还部署了 KubeEdge 的云侧管理面组件 cloudcore,通过 cloudcore 纳管边缘的 CDN 节点,边缘 CDN 节点全部以 edgecore 的形式,就近接入区域云端。
基于 KubeEdge 实现的大规模 CDN 节点管理平台具有边缘自治、智能化调度等多种优势,在边缘节点断连后容器无需重建,服务不中断,并且能提供节点间亲和性调度以及应用间亲和性调度,已经成功管理 1W+边缘 CDN 节点,助力直播加速、视频点播加速。
3、基于 KubeEdge/Sedna 的楼宇热舒适度预测控制
智能楼宇是智慧城市的重要组成部分,智能楼宇的自控系统通常位于边缘。热舒适度被定义为楼宇中的人对环境冷热的满意程度,这是一种定量的评估指标,能够把室内冷热环境参数的物理设定与人的主观评估联系起。准确的热舒适度预测结果能够帮助管理人员探索舒适度最佳的楼宇温度调整策略。但由于人员个体差异、房间与城市差异,楼宇热舒适度预测具有突出的数据异构与小样本问题。
基于 Sedna 的边云协同终身学习的热舒适预测控制具有云边协同和终身学习预测这两个优势,设计图如下图所示。云侧 Sedna 知识库会利用多地点多人员的历史数据集进行初始化,向边侧应用提供推理更新接口,实现云边协同推理;对于推理任务的复杂性,我们采用终身学习的机制,边端推理时面向已知任务直接推理,未知任务则联合知识库推理,并会对未知任务机进行学习,更新知识库。实验表明,热舒适度预测在 KotaKinabalu 数据集中预测率相对提升 24.04%,能够为楼宇的温度调整策略提供依据。
文章转载自:华为云开发者联盟
评论