基于KubeEdge的边缘计算管理平台的设计与开发

known 发布于 2025-08-25 阅读(353)

摘" 要:随着信息技术的发展与进步,云计算作为一种商业计算服务和计算模式被提出,并且得到了广泛的运用。同时,为了增加对环境的感知,在生产、生活场景中运用的物联网系统也变得越来越普遍。把云计算与边缘计算结合起来,实现一种“云边协同”的计算架构,既能发挥云计算资源丰富、算力强大的优势,也能发挥边缘计算效率较高、安全可靠的优势,有一定的研究意义。

关键词:物联网应用;云计算;边缘计算;平台管理

中图分类号:TP311" 文献标识码:A" 文章编号:2096-4706(2024)09-0091-06

Design and Development of Edge Computing Management Platform Based on KubeEdge

CHEN Zhouhuan, YANG Yunhai, ZHANG Liang

(School of Information Engineering, Shaoguan University, Shaoguan" 512005, China)

Abstract: With the development and progress of information technology, cloud computing has been proposed as a commercial computing service and computing mode, and has been widely used. At the same time, in order to increase awareness of the environment, the use of IoT systems in production and daily life scenarios has become increasingly common. Combining cloud computing with edge computing to achieve a “cloud edge collaboration” computing architecture can not only give play to the advantages of cloud computing in terms of rich resources and powerful computing power, but also give play to the advantages of edge computing in terms of high efficiency, security and reliability, which is of certain research significance.

Keywords: IoT application; cloud computing; edge computing; platform management

0" 引" 言

在当今的信息社会,大数据处理的需求日益增加,应对大数所的处理方法——云计算,也得到了广泛的运用。Kubernetes(K8s)是云原生计算基金会(CNCF)托管的一个开源系统,用于部署、扩展和管理容器化的工作负载和服务[1]。K8s具有可移植、可扩展、开源等特征,被广泛应用于基于容器的云计算集群中,目前被认为是云原生领域的事实标准之一[2]。

另外,随着物联网运用越来越广泛,越来越多的终端设备投入到了生产、生活的运用中。大量的终端设备产生了海量的“小数据”,这些数据也需要实时处理。而仅使用云计算的架构处理这些海量的“小数据”,很容易在网络带宽和数据吞吐量方面对云计算产生性能的瓶颈[3]。

因此,边缘计算作为云计算的互补被提出。边缘计算的定义是:在靠近人、物或数据源头的网络边缘侧,通过融合了网络、计算、存储、应用等核心能力的开放平台[4],就近提供边缘智能服务,来满足行业数字化在敏捷联接、实时业务、数据优化、应用智能、安全与隐私保护等方面的关键需求[5]。边缘计算也属于一种分布式计算,利用靠近数据源的边缘地带来完成的运算程序,而不需要将大量数据上传到云端[6]。在物联网应用中,边缘计算可以作为物理和数字世界之间联接的桥梁[7]。

本文通过对目前主流的云计算、边缘计算等技术的探索和研究,搭建了一个具备“云边协同”能力的边缘计算管理平台。该平台可以作为有关云计算、边缘计算软件的实验测试,也可以视为对大型分布式物联网应用开发的基础体系架构的一种探索。

1" 边缘计算管理平台的关键技术

本文搭建的边缘计算管理平台所使用到的关键技术包括3个方面,分别是:

K8s:开源的容器编排系统,可以自动化应用部署、扩展和管理[8],可以运行在云端、物理机和虚拟机等多种环境中,具有自动化容器部署、弹性扩展、服务发现和负载均衡、自动故障恢复等功能,可以快速地构建高可用、可扩展、弹性的分布式应用。

KubeEdge:开源边缘计算框架,是CNCF内部的一个孵化级边缘计算开源项目,也是业界首个云原生边缘计算管理平台[9]。KubeEdge基于Kubernetes构建,可以把容器化应用程序的编排功能扩展到边缘主机,实现云计算与边缘计算的对接[10]。

EdgeMesh:开源的、轻量级的边缘计算服务网格平台,是边缘计算数据面组件,目前是KubeEdge集群的数据面组件,为应用程序提供了简单的服务发现与流量代理功能,可以起到屏蔽边缘场景下复杂的网络结构的作用[11]。

2" 边缘计算管理平台的架构设计

2.1" 系统总体设计

基于以上介绍的K8s、KubeEdge、EdgeMesh等关键技术,本系统的整体架构如图1所示[12]。

本系统把KubeEdge作为边缘计算的基础平台,在KubeEdge 集群使用了EdgeMesh 作为数据面组件。EdgeMesh提供了让元数据通过KubeEdge边云通道下发的功能,不需要访问云端API Server,并且通过只部署一个Agent做到了更加轻量化。同时,还可以利用LibP2P提供“云到边、边到云、边到边”的功能。

本系统在边缘端使用Docker、Containerd等作为容器运行基础,容器镜像可以从DockerHub拉取,或者从实现RBAC的私有容器镜像托管中心Harbor中拉取,也可以利用华为云容器镜像服务等第三方厂商服务中等拉取运行容器镜像。

本系统在云端的K8s集群,既可以使用传统的Kubectl进行直接原生操作,也可以使用Web管理平台进行操作。

2.2" 管理平台设计

本系统使用“Vue+Gin”前后端分离技术开发了管理平台。管理平台的体系架构及与K8s、KubeEdge集群的关系,如图2所示。

在管理平台可以看作是云、边、用户和数据库的一体系统。用户可以通过管理平台对本系统进行各种配置与操作。

管理平台功能模块的划分如图3所示,管理平台各模块具体功能如下:

登录模块:用户可以在前端Vue登录页点击登录之后,执行登录。

首页数据:在首页数据模块,在用户直接登录之后会跳转到该界面,在该界面上,可以分块的显示当前集群的边缘节点总数量、边缘应用总数量、边缘设备总数量、上报的边缘数据的总数量,同时设有三个饼状图可以分别可视化地显示当前所有节点的架构类型占比、所有节点的健康状态占比、所有应用健康应用占比。

边缘节点模块:点击边缘节点模块可以跳转到边缘节点页。在此页面上,可以展示当前集群所有节点的节点名称、节点架构类型、节点标签、节点创建时间,同时通过点击查看可以跳转到节点详情信息页。在节点详情页,展示了节点信息、应用列表、设备列表、节点资源使用情况和节点标签五大板块。在节点信息模块,展示了当前节点的名称、部署的Docker版本、操作系统类型、节点架构类型、内核版本信息、Kubernetes的版本信息和操作系统的镜像版本。在应用列表模块,展示了当前部署在该节点上的所有应用信息,包括了应用名称、使用的镜像、标签和创建时间。在设备列表模块可以显示当前节点绑定的所有设备,包括了设备的名称和创建时间。在节点资源使用情况上可以显示CPU、内存使用情况。在最后一个节点标签模块,实现了对节点标签的查看、修改、更新和删除四大功能。

边缘设备模块:主要分为设备模块和设备实例两大模块。其中设备模板模块实现了对当前所有设备模块的展示,包括设备模板的名称、创建时间和字段属性,同时实现了对设备模板的创建、删除和更新,其中查看的主要是当前设备模板的JSON文件。

路由模块:主要分为路由节点和路由规则两大模块。其中在路由节点模块,实现了对所有路由节点上的信息的查看,包括了路由节点的名称、创建时间,并实现了对路由节点的创建、删除,同时可以查看路由节点的JSON配置文件。在路由规则模块主要实现了查看路由规则的名称、路由起点、路由终点和创建时间,同时也有对路由规则的创建、删除功能。

边缘应用模块:首先可以查看当前所有节点的应用信息,包括应用名称、应用使用的镜像名、标签、应用所属节点、创建时间等,同时实现了对创建应用、删除应用、查看应用配置文件功能,其中创建应用是以写入YAML文件的形式,查看应用配置文件将会以JSON文件的风格。

边缘数据模块:主要实现了对边缘上报的结果数据的展示,包括了边缘侧上报的数据和上报时间。

3" 边缘计算管理平台相关组件的安装与部署

边缘计算管理平台的搭建与部署工作,可以分为两个部分:云端部分、边缘端部分,流程和步骤如图4所示。

3.1" 云端的安装与部署

云端部分,选择了搭建了CentOS 7.6系统的腾讯云ECS主机作为云端。云端部分的安装部署工作,包括:操作系统安装、Docker安装、K8s安装、Keadm安装、KubeEdge、CloudCore安装、Helm安装、EdgeMesh安装,等等。

除了之前介绍过的组件以外,Keadm主要功能是帮助用户自动化加构建KubeEdge集群,例如初始化集群、添加节点、管理证书和密钥、配置网络和存储等。Helm是一个Kubernetes的软件包管理器,它可以帮助用户轻松地创建、部署和分享Kubernetes应用程序。CloudCore组件作为KubeEdge云端核心组件负责管理边缘节点和边缘设备以及与Kubernetes集群之间的交互。

使用Keadm工具部署KubeEdge,需要配置云端的地址,需要设置的配置项如下:

#" --advertise-address 公网ip

#基于keadm启动的KubeEdgeCloudcore可以使用kubectl describe" cm cloudcore -n kubeedge查看当前CloudcCore的配置项

keadminit --advertise-address=xxx --set iptablesManager.mode=\"external\" --profile version=v1.12.1

使用heml工具部署EdgeMesh,需要设置的配置项如下:

# 其中agent.relayNodes[0].nodeName=lt;?gt;,是中继节点设置,你可以只指定为当前节点

# relayNodes[0].advertiseAddress=lt;?gt; 是当前的节点的ip

#在可以通过kubectl describe" cm edgemesh-agent-cfg -n kubeedge命令查看EdgeEMesh的配置

helm install edgemesh --namespace kubeedge \

--set agent.image=kubeedge/edgemesh-agent:v1.12.0 \

--set agent.relayNodes[0].nodeName=k8s-node1,

agent.relayNodes[0].advertiseAddress=\"{xxx}\" \

https://raw.githubusercontent.com/kubeedge/edgemesh/release-1.12/build/helm/edgemesh.tgz

3.2" 边缘端的安装与部署

边缘端部分,选择了树莓派3B设备为控制节点,控制节点与云端连接,并承担边缘端网络设备的调度管理和边缘端计算的任务。边缘端控制节点的安装部署工作,包括:操作系统安装、Docker安装、Keadm安装,对Keadm、Token进行配置加入K8s集群,等等。

其中Token作为云端对于加入节点的鉴权,提供了边缘节点的安全认证。并且边缘端需要安装容器运行时作为容器运行底座,目前KubeEdge支持Docker、Containerd、Cri-o和Virtlet四种。

在边缘端,使用keadm和token加入云端,需要设置的配置项如下:

# SERVER为cloudcore公网ip+10000端口号

#---/etc/kubeedge/config/edgecore.yaml---

keadm join --token=$TOKEN --cloudcore-ipport=

$SERVER --kubeedge-version=1.12.1

4" 边缘计算管理平台的开发

管理平台采用前端后端架构分离,所以开发分为前端开发和后端开发,下面是一些开发过程。

前端项目主要基于Vue2.X进行开发,Vue是一个具备易学易用、性能出色、灵活的JavaScript框架。其中UI组件库主要使用ElementUI组件来减少一些基础组件重复性代码的编写,同时主要利用Echarts库来实现平台端首页一些可视化图表,比如柱状图、饼状图,更好的展示集群状态、数据等。

后端项目主要基于Gin进行开发,Gin是一个高性能的Go语言的Web框架[13]。其中通过整合JWT技术,可以实现管理员鉴权功能。Gin可以通过内置的一些库搭建起后端接口之后,暴露给前端项目调用。

5" 边缘计算管理平台在应用场景的开发与测试

随着互联网技术、物联网、云计算、边缘计算等技术的不断发展和普及,人们的生活方式和工作方式也发生了翻天覆地的变化。用电环境也发生了变化,传统的用电监控系统通常采用集中式的架构,将所有数据都集中存储在一个服务器中进行处理和管理。但这种方式存在一些弊端,比如数据传输延迟高、安全性难以保证、对带宽和存储资源的依赖度高等问题[14]。随着边缘计算技术的兴起,越来越多的企业开始采用基于云原生边缘计算的用电监控系统,以解决这些问题。

基于这个应用场景,下面是一个基于边缘计算管理平台场景的智能用电监控系统使用,可以通过实现AI电力参数边缘处理判断,用于学生宿舍场景下大功率电器和非法电器的使用检测和安全用电控制。

软件环境:Gin,Vue2.x,KubeEdge v1.12,Edge-Mesh V1.12,MySQL 8.0。

硬件环境:树莓派3B,插线板,继电器模块×2,交流电能计量模块(SUI-101A)。

在边缘计算管理平台系统,通过以YAML格式下发边缘应用到树莓派,树莓派在拉取镜像之后会启动容器,插线板组件访问树莓派的RESTful API接口,将从交流电能计量模块的数据发送到树莓派上,树莓派通过SVM算法分类识别当前电气分类可以识别到当前使用的电器类别,通过边缘端边缘AI应用的分析处理,对功率和电器类别进行识别,当出现大功率电器或者禁止使用电器类别,树莓派马上向继电器发送断开指令,并且上报云端,发送报警短信到学校负责人,达到断电效果和通知的作用。因为数据处理判断均在边缘端,更靠近业务现场,所以时延自然比云中心处理快。同时即使云端不在线,依旧可以发送断电指令,实现了边缘自治。

同时在边缘计算管理平台系统上利用KubeEdge的Router模块,事先绑定好路由节点,组织成路由,达到边缘端通过MQTT上报数据,然后转发到添加数据库的接口中。通过该功能,用户可以轻松在边缘计算管理平台系统看到边缘端上报的业务数据的可视化显示,如图5至图7所示。

下面是一条通过“upload”作为Topic的路由节点和路由的YAML实例,实现了业务数据的上报:

apiVersion: rules.kubeedge.io/v1

kind: RuleEndpoint

metadata:

name: my-rest

labels:

description: test

spec:

ruleEndpointType: \"rest\"

properties: {}

---

apiVersion: rules.kubeedge.io/v1

kind: RuleEndpoint

metadata:

name: my-eventbus

labels:

description: test

spec:

ruleEndpointType: \"eventbus\"

properties: {}

---

apiVersion: rules.kubeedge.io/v1

kind: Rule

metadata:

name: my-rule-eventbus-rest

labels:

description: test

spec:

source: \"my-eventbus\"

sourceResource: { \"topic\": \"upload\",\"node_name\": \"raspberrypi-01\" }

target: \"my-rest\"

targetResource: { \"resource\": \"http://ipaddress:port/ie_data/ie_data\" }

并且,基于KubeEdge的Device的功能和数字设备的理念,在Device中,边缘端应用订阅了监听设备属性的Topic“$hw/events/device/? /twin/update”,边缘端会在设备上线之后,自动同步属性。同时在边缘计算管理平台系统可以通过修改Device中的属性的expected的属性来修改边缘设备的属性。比如在边缘计算管理平台系统可以对插线板的“status”属性进行修改,来实现管理系统上控制插线板的开关。

6" 结" 论

把云计算和边缘计算结合起来,实现云、边协同,可以有效规避云计算模式数据和算力“中央集中”的缺点,充分发挥了云计算和边缘计算各自的优势,做到了“强强联合”。在今后,随着物联网得到了越来越广泛推广和应用,拥有“中心集中管理”和“边缘自治”特性的系统架构,也将会得到越来越广泛的应用。本文所做的工作,是对“云边协同”系统的一次探索与尝试,也可以看作是对今后物联网应用系统架构研究的一次抛砖引玉。

参考文献:

[1] 夏丽娟,乌日娜,潘新.Kubernetes容器云编排系统的研究与实现 [J].自动化应用,2023,64(14):224-227.

[2] 朱会茗.面向智能视频监控场景的容器化边缘计算平台设计与实现 [D].成都:电子科技大学,2022.

[3] 李政.基于云边融合的边缘计算平台的设计与实现 [D].济南:山东大学,2022.

[4] 万子煜.边缘物联网数据处理平台及任务调度系统设计与实现 [D].杭州:浙江大学,2023.

[5] 胡杰.面向便携式设备的边缘计算架构研究与应用 [D].广州:华南理工大学,2021.

[6] 贺卓.基于KubeEdge与PLCnext的工业流式数据采集与分析平台设计与实现 [D].武汉:华中科技大学,2022.

[7] 丁春涛,曹建农,杨磊,等.边缘计算综述:应用、现状及挑战 [J].中兴通讯技术,2019,25(3):2-7.

[8] Kubernetes. 概述 [EB/OL].[2023-09-16].https://kubernetes.io/zh-cn/docs/concepts/overview/.

[9] GitHub. KubeEdge [EB/OL].[2023-09-20].https://github.com/kubeedge/kubeedge/blob/master/README_zh.md.

[10] 黄倩,黄蓉,王友祥,等.开源边缘计算平台研究分析 [J].邮电设计技术,2021(10):88-92.

[11] GitHub. EdgeMesh [EB/OL].[2023-09-13].https://github.com/kubeedge/edgemesh/blob/main/README_zh.md.

[12] GitHub. KubeEdge [EB/OL].[2023-09-16].https://github.com/kubeedge/kubeedge/blob/master/docs/images/KubeEdge_arch.svg.

[13] GitHub. Gin [EB/OL].[2023-09-20].https://github.com/gin-gonic/gin/blob/master/README.md.

[14] 杨光晨,张坤干.边缘计算在电气火灾监测体系中的应用 [J].佳木斯大学学报:自然科学版,2022,40(4):31-34.

作者简介:陈周欢(2002—),男,汉族,浙江衢州人,本科在读,主要研究方向:通信工程;杨云海(1978—),男,汉族,广东广州人,讲师,硕士,主要研究方向:计算机科学与技术;张良(2001—),男,汉族,浙江绍兴人,本科在读,主要研究方向:通信工程

标签:  边缘 

免责声明

本文来自网络,不代表本站立场。如有不愿意被转载的情况,请联系我们。

iidomino cuppor