CN115858108A - 一种基于Kubeedge边缘计算框架构建的云边协同*** - Google Patents
一种基于Kubeedge边缘计算框架构建的云边协同*** Download PDFInfo
- Publication number
- CN115858108A CN115858108A CN202211260705.8A CN202211260705A CN115858108A CN 115858108 A CN115858108 A CN 115858108A CN 202211260705 A CN202211260705 A CN 202211260705A CN 115858108 A CN115858108 A CN 115858108A
- Authority
- CN
- China
- Prior art keywords
- task
- data
- edge
- cloud
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于Kubeedge边缘计算框架构建的云边协同***,在Kubeedge边缘计算框架的基础上构建的云边协同***,通过可视化操作的方式实现可运行程序成为边缘任务的自动化流程,极大的简化了在边缘执行任务的复杂性,并且在Kubeedge基础上增加了设备发现、云边数据传输等功能,提高了云边之间的协同能力,以及边缘节点的资源管理能力。
Description
技术领域
本发明涉及计算机应用领域,具体的说,涉及一种基于Kubeedge边缘计算框架构建的云边协同***。
背景技术
在现代互联网发展的过程中,云计算通过其丰富的计算资源、良好的扩展能力、便捷的管理方式受到了广泛的推崇,但随着各种智能设备的增多,数据种类和数量都急剧增多,传统云计算技术难以解决处理实时性和网络带宽不足的问题。因此将计算任务放在靠近数据源的位置执行的边缘计算技术开始兴起,边缘计算具备处理时延小、数据安全性强、网络压力小的特点,但各边缘设备的计算能力较弱,无法独立处理复杂计算任务。于是云边协同计算成为了未来互联网发展的关键方向,云端负责任务的调度和复杂的计算任务,而简单的计算任务分配到靠近数据源的边缘执行,以提高任务响应速度和减少网络带宽压力。Kubeedge是华为为实现云端、边缘端和终端协同所开发的一款云原生边缘计算开源框架,其提供了强大的云边协同能力,因此在工业互联网领域得到了广泛的应用。但Kubeedge只提供了命令行的操作方式,这使对边缘的管理和维护十分困难,从可执行程序构建任务再下发到各边缘执行的流程也非常繁琐,对于普通操作人员来说难度较大,并且由于缺乏智能化的任务调度和云边之间的数据传输能力,难以满足部分应用场景。因此,一种能够提供便捷的方式来管理边缘和调度任务,并且支持不同云边之间数据的传输的方法是十分必要的。
目前关于云边协同技术主要分为云服务供应商构建的云边协同平台和提供云边协同能力的边缘计算框架两大类。
云服务供应商构建的云边协同平台是在其现有云服务的基础上进行的扩展,在云服务中提供了云端管理套件和边缘运行程序,云端管理套件负责对各边缘节点的管理和监控,提供边缘应用部署功能,并且能够购买该云服务供应商所内置的边缘数据处理、AI推断等功能。边缘运行程序在靠近终端的智能设备上执行,将该智能设备作为集群中的一个边缘节点,通过云端管理套件便能在这些边缘节点上运行供应商所提供的程序。但这些云边协同平台往往会被各供应商所提供的云服务绑定,只能搭建在其提供的云服务器上,或是直接购买相应服务,缺乏泛用性,并且对接如的边缘设备架构类型和数量进行了限制,无法做到完全的按需扩展。
另一类便是具备一定云边协同能力的开源边缘计算框架,这些边缘计算框架将设备分为云端、边缘和终端三个层次,云端负责任务和配置的下发、边缘负责运行任务和管理接入的设备,终端则是指各种能够获取数据和执行操作的设备。大多数框架都提供了云边协同、边缘自治和设备管理的能力,但由于只提供了命令行的操作方式,这使对边缘的管理和维护十分困难,仅搭建和扩展边缘都需要耗费大量人力,而繁琐的任务执行流程使的操作及其不便,并且由于缺乏智能化的任务调度和云边之间的数据传输能力,也难以满足部分应用场景。
使用云服务供应商构建的云边协同平台存在着供应商绑定、服务受限、泛用性较低等问题,而直接使用开源边缘计算框架又存在维护困难、操作繁琐等问题。具体如下:
a)缺乏泛用性。在使用云边协同平台往往会被各供应商所提供的云服务绑定,只能搭建在其提供的云服务器上,或是直接购买相应服务,无法做到自由搭建或服务迁移;
b)服务受限。在使用云边协同平台时往往会对边缘设备的架构类型和接入数量进行限制,无法做到按需扩展,并且其内置的终端设备类型也无法完全满足用户需求;
c)维护困难。在直接使用开源边缘计算框架所提供的云边协同能力时,由于只提供了命令行的操作方式,这使对边缘的管理和维护十分困难,并且更难以在其上构建自己的服务。
d)操作繁琐。大多边缘计算框架需要调用许多底层服务,而使用这些框架从可执行程序构建任务再下发到各边缘执行的流程非常繁琐,并且繁琐的步骤更容易在执行过程中发生错误。
发明内容
本发明的目的在于克服背景技术所提出的技术问题,提出了一种基于Kubeedge边缘计算框架构建的云边协同***,通过可视化操作的方式实现可运行程序成为边缘任务的自动化流程,极大的简化了在边缘执行任务的复杂性,并且在Kubeedge基础上增加了设备发现、云边数据传输等功能,提高了云边之间的协同能力,以及边缘节点的资源管理能力。
本发明的具体技术方案如下:
本发明提供了一种基于Kubeedge边缘计算框架构建的云边协同***,所述***包括云端管理模块和边缘维护模块;
所述云端管理模块包括:
第一云边通信服务单元,作为云端服务器与边缘节点之间数据传输通道,并在云端提供了边缘数据的接收接口和云端数据的访问接口;
所述边缘数据接收接口被配置为云端管理模块被成功部署后自动开启,接收在边缘节点上运行的任务数据,所述任务数据通过边缘维护程序发送到至所述边缘数据接收接口,在接收到所述任务数据后对其进行解密,并返回解密后的数据至调用云边通信服务的程序;
所述云端数据访问接口被配置为根据下发到边缘节点的数据创建云端数据下载链接,通过数据名和数据地址将链接和数据流绑定,然后将创建的链接返回给调用云边通信服务的程序;
第一存储服务单元,用于云端管理模块与磁盘、数据库和Harbor镜像仓库之间的数据交互;
所述第一存储服务单元包括:
数据库,用于数据的增删改查操作,判断给定数据与数据库中数据是否一致,并将操作结果返回给调用第一存储服务服务单元的功能程序;
磁盘,用于根据命令创建目录和删除目录、保存文件;
Harbor镜像仓库,用于通过Harbor镜像仓库接口创建项目、删除项目删除镜像;
任务调度单元,包括任务迁移子单元和边缘维护任务自动更新子单元:
所述任务迁移子单元被配置为:未指定边缘执行的任务将由***分配硬件资源最丰富的边缘节点运行该任务,当运行该任务的边缘从集群中断连并且长时间未恢复连接时,***将停止该任务,并为其分配新的硬件资源最丰富的边缘节点继续运行该任务,指定边缘执行的任务将被分配到指定边缘节点上执行,当运行该任务的边缘断连时将保持任务在边缘节点上的执行,并等待边缘节点恢复连接后向云端同步任务信息,若边缘节点硬件资源不足,***将自动停止边缘节点上最后运行的任务;
所述边缘维护任务自动更新子单元被配置为:通过定时任务每分钟去访问Harbor镜像仓库中边缘维护程序镜像版本并与所有边缘节点当前执行的镜像版本进行比较,当边缘节点执行的镜像版本低于最新版本时***将停止该节点上的边缘维护任务,然后重新下发最新的边缘维护任务到该边缘节点上执行;
指令库,所述指令库包括边缘节点删除指令、任务下发指令、任务配置修改指令、任务终止指令、构建镜像指令、镜像上传指令和删除镜像指令;
边缘节点管理单元,用于边缘节点自动添加、节点信息查询、节点信息编辑、启用/禁用节点、删除节点;
任务管理单元,用于任务添加、任务状态信息自动更新、任务配置、任务信息查询、任务重启、任务停止、任务删除;
数据管理单元,用于数据接收、数据下发和数据展示;
所述边缘维护模块包括:
第二云边通信服务单元,所述第二云边通信服务单元作为云端服务器与边缘节点之间数据传输通道,在边缘提供数据上传和下载的功能,具体被配置为:
接收到边缘节点要返回云端的数据,对数据进行加密,然后基于HTTP协议将数据发送到所述第一云边通信服务单元中边缘数据接收接口,在边缘接收到云端下发的数据下载链接时,判断该链接是否过期,未过期则基于HTTP协议去访问所述第一云边通信服务单元中云端数据访问接口来下载数据;
第二存储服务单元,用于为边缘维护程序与磁盘和MQTT客户端之间提供统一的交互能力,包括:
磁盘,用于存储服务提供在服务器磁盘通过命令创建目录和删除目录、通过方法保存文件;
MQTT客户端,用于在边缘维护程序被下发到边缘节点上运行时,存储服务便订阅边缘维护程序所需的MQTT主题,并且当有新任务被下发到边缘时存储服务会根据该任务标识去订阅该任务的MQTT主题,在MQTT客户端接收到向存储服务订阅的主题发送的消息时会向存储服务推送该消息,然后由存储服务将消息返回该主题对应的程序;
硬件监控单元,用于对边缘节点CPU的型号、架构类型、核数、计算频率和使用率,内存的型号、总容量、使用率,磁盘的型号、总容量、使用率进行采集和计算,同时也会获取边缘节点能够连接终端设备的硬件接口信息,然后将这些硬件信息返回调用程序;
设备发现单元,用于发现并识别连接到边缘节点到终端设备,并将终端设备信息返回云端进行展示,具体被配置为:
包含所述终端设备类别管理单元中所有终端设备类别的检测程序,通过任务的方式在边缘节点上执行;通过定时任务每分钟调用所述硬件监控单元获取边缘节点正在使用的接口,然后依次运行设备类别检测程序向边缘节点上所有接口发送请求,若在一个设备类别的检测程序请求接口时收到回应则说明该接口连接了终端设备,并且可以确定该设备类别,然后调用所述第二存储服务将发现的终端设备信息保存到磁盘中。在执行一次定时任务后,将调用所述第二云边通信服务将所有发现的设备信息进行加密后返回云端管理模块;
资源监控单元,用于监控边缘节点的硬件使用状态和任务执行情况,并将硬件数据及其是否满足最新任务运行等数据返回云端,具体被配置为:
定时任务调用所述硬件监控单元去获取边缘节点的硬件设备的使用情况,然后计算和统计各类硬件数据,然后调用所述第二存储服务将硬件使用信息保存到磁盘中;并且当有新任务被下发到该边缘执行时,状态维护程序会判断当前边缘节点空余硬件资源是否能够满足该任务的运行,若无法满足则记录该任务标识,最后将调用所述第二云边通信服务单元将硬件使用信息和是否满足最新任务运行等数据进行加密后返回云端管理模块;
数据传输单元,用于将边缘节点上执行的任务所产生的数据返回云端管理模块;
任务控制单元,用于根据云端管理模块对任务的操作去改变边缘节点上任务的执行状态和释放任务的资源消耗,具体被配置为:
在云端管理模块对任务进行配置时,所述第二存储服务将从边缘节点上MQTT客户端收到任务配置的变更消息,然后将任务标识与其最新的配置信息返回给任务控制程序,任务控制程序以获取到的最新配置信息去更新指定任务的执行状态;
在云端管理模块对删除任务时,所述第二存储服务将从边缘节点上MQTT客户端收到任务删除消息,然后将任务标识与待删除消息返回给任务控制程序,任务控制程序以获取到的任务标识停止任务相关的服务,并删除指定任务保存在边缘节点上的任务数据文件。
进一步地,所述边缘节点自动添加,包括:
定时访问Kubeedge边缘节点信息接口;
获取当前所有边缘节点信息,并与数据库信息进行比较;
在存在新边缘节点的情况下,在Harbor镜像仓库中创建新节点镜像目录,并在数据库中更新边缘节点信息;
在不存在新边缘节点的情况下,判断已有边缘节点信息是否更新,若是则更新边缘节点信息。
进一步地,所述启用/禁用节点,包括:默认禁用自动添加的边缘节点,通过使用状态按钮控制边缘节点的启用和禁用,同时通过调用第一存储服务单元去数据库中修改对应节点的使用状态信息;
所述删除节点,包括:通过选择的边缘节点的编号调用第一存储服务单元去数据库中获取该边缘节点相关信息,判断该边缘节点上是否存在正在运行的任务,若存在则停止删除,若不存在则调用指令库中边缘节点删除指令,然后修改数据库中该边缘节点信息为已删除;
终端设备类别管理单元,用于终端设备类别添加、设备类别信息查询、设备类别删除。
进一步地,所述节点信息查询,包括:在查询边缘节点信息时通过调用第一存储服务单元去数据库中获取所有边缘节点信息,并在前端进行表格展示,在点击边缘节点之后能够通过图表对该节点的CPU、存储使用率,连接的终端设备进行展示。
进一步地,所述终端设备类别添加,包括:
设置终端设备类别;
添加终端设备识别程序;
若所述终端设备识别程序符合格式和完整性要求,则判断设备数据是否重复,在不重复的情况下,更新边缘维护程序镜像,并重新下发更新后的边缘维护程序;
所述设备类别信息查询,包括:在查询终端设备类别信息时通过调用第一存储服务单元去数据库中获取所有终端设备类别信息,并在前端进行表格展示;在点击终端设备类别之后,展示对应类别设备图片和设备数据格式,并提供设备检测程序的下载链接。
进一步地,所述设备类别删除,包括:通过选择的终端设备类别的编号调用第一存储服务单元去数据库中获取该终端设备类别相关信息,并判断边缘节点上是否连接有该类别的设备,若存在则停止删除,若不存在则调用第一存储服务单元删除磁盘中设备检测程序和数据库中该设备类别数据,重新构建边缘维护程序镜像,并调用第一存储服务单元通过Harbor镜像仓库删除原边缘维护程序镜像,添加新的边缘维护程序镜像,再调用任务调度单元将原本各边缘节点执行的边缘维护程序停止,重新下发更新后的边缘维护程序到各边缘节点执行。
进一步地,所述任务添加,包括:
设置任务基础信息,所述任务基础信息包括任务名称、任务描述;
选择要执行该任务的边缘节点,自动筛选所述终端设备类别管理单元中状态为在线且已启用的边缘节点作为可选节点,支持同时选择多个边缘节点;在确认选择时,调用所述终端设备类别管理单元中接口去查询边缘节点状态,若节点状态已改变将给出提示并要求重新选择边缘节点;
获取选择的边缘节点名称,为每个节点上要执行的任务生成唯一标识,并创建任务程序保存的目录;
添加任务程序,调用所述第一存储服务单元通过HTTP协议将任务程序上传到创建的目录;
检验任务程序是否符合要求,不符合将终止流程,给出提示并调用所述第一存储服务单元删除创建的目录;
基于deployment.yaml、run.yaml、device.yaml和DockerFile文件模板,结合边缘节点名和任务标识生成对应文件并调用所述第一存储服务单元将文件保存到创建的目录;
生成默认的任务配置信息,并调用所述第一存储服务单元将任务信息保存到数据库中;
异步的方式执行任务下发;
所述任务状态信息自动更新,包括:
定时任务每分钟通过Kubeedge云端服务器地址访问其提供API接口,构建Kubeedge Java客户端,再由客户端提供的方法获取到当前所有任务状态信息,通过调用所述第一存储服务单元去比较当前任务状态信息与数据库中状态信息差异,任务状态信息不一致的则更新数据库中状态信息;
所述任务配置,包括:
状态为“运行中”的任务能够进行配置,在设置配置参数时将调用第一存储服务单元去更新数据库中该任务的配置信息,然后基于任务配置信息修改该任务生成的device.yaml文件,调用所述指令库中任务配置修改指令;
所述任务信息查询,包括:
在查询任务信息时通过调用所述第一存储服务单元去数据库中获取所有任务信息,并在前端进行表格展示;
所述任务停止,包括:
状态为“运行中”的任务能够进行停止操作,执行停止操作时将通过Kubeedge云端服务器地址访问其提供API接口,构建Kubeedge Java客户端,再由客户端提供的方法获取到该任务状态信息,判断任务实际状态是否为“运行中”,若不是则终止流程并调用所述第一存储服务单元去更新数据库中该任务状态为实际状态,是则调用所述指令库中任务终止指令,然后调用所述第一存储服务单元去更新数据库中该任务状态信息为“停止”;
所述任务启动,包括:
状态为“停止”的任务能够进行启动操作,执行启动操作时将通过Kubeedge云端服务器地址访问其提供API接口,构建Kubeedge Java客户端,再由客户端提供的方法获取到该任务状态信息,判断任务实际状态是否为“停止”,若不是则终止流程并调用所述第一存储服务单元去更新数据库中该任务状态为实际状态。
所述任务删除,包括:
状态为“停止”的任务能够进行删除操作,执行删除操作时将通过Kubeedge云端服务器地址访问其提供API接口,构建Kubeedge Java客户端,再由客户端提供的方法获取到该任务状态信息,判断任务实际状态是否为“停止”,若不是则终止流程并调用所述第一存储服务单元去更新数据库中该任务状态为实际状态,是则基于待删除任务标识修改边缘维护程序任务的device.yaml文件,调用所述指令库中任务配置修改指令,使用任务执行模块删除该任务保存在边缘节点上的任务数据文件,再调用所述第一存储服务单元删除磁盘中任务获取的数据文件、创建的目录,删除Harbor镜像仓库中上传的任务镜像,删除数据库中该任务信息、任务数据文件信息。
进一步地,所述异步的方式执行任务下发,包括:
基于生成的DokcerFile文件和上传的任务程序调用所述指令库中构建镜像指令,若构建镜像指令失败则调用所述第一存储服务单元将该任务状态修改为“构建失败”,并终止流程;
调用所述指令库中镜像上传指令将构建的任务镜像上传到Harbor镜像仓库中该边缘节点由所述终端设备类别管理单元创建的镜像目录中,若镜像上传失败则调用所述第一存储服务单元将该任务状态修改为“构建失败”,并终止流程;
调用所述指令库中删除镜像指令删除云端构建的任务镜像;
基于生成的deployment.yaml、run.yaml文件调用所述指令库中任务下发指令。若任务下发成功则调用所述第一存储服务单元将该任务状态修改为“正在下发”,任务下发失败则调用所述第一存储服务单元将该任务状态修改为“运行失败”,并终止流程,当任务完成下发后会将任务状态信息自动更新为“运行中”。
进一步地,所述数据接收,包括:
调用所述第一云边通信服务开启云端数据接收接口,通过该接口将接收各边缘上传的任务数据,数据分为正常数据和失败数据,当接收到正常数据时调用第一存储服务单元将该数据保存到数据库,当接收到失败数据时将解析出其中包含的回传失败的信息并调用第一存储服务单元将该信息保存到数据库;
所述数据下发,包括:
将数据文件通过HTTP请求上传到云端服务器,调用所述第一云边通信服务创建云端数据下载链接,然后基于数据下载链接和任务标识修改该任务生成的device.yaml文件,调用所述指令库中任务配置修改指令。
所述数据展示,包括:
通过选择的任务的编号调用第一存储服务去数据库中获取该任务相关数据信息,并在前端进行表格展示。对于正常数据能够查看其详细信息和数据内容,对于失败数据只能查看数据信息。失败数据支持手动重传,通过点击“重传”基于重传数据信息和任务标识修改该任务所述任务添加单元中生成的device.yaml文件,调用所述指令库中任务配置修改指令。
进一步地,所述将边缘节点上执行的任务所产生的数据返回云端管理模块,包括:
调用所述第二云边通信服务单元向所述云端管理模块上传数据,若上传失败则将该数据加入失败队列;通过定时任务每分钟依次对失败队列中的数据执行上传操作,数据上传成功则从失败队列中删除该数据,上传失败则等待下一次定时任务执行;若存在数据重传时间超过一个小时则将其定义为历史数据,该数据将调用所述第二存储服务保存到磁盘文件中,文件名由任务标识加时间戳构成,并将该数据从失败队列中删除;历史数据文件名将放入历史数据上传队列中,通过定时任务每分钟依次对历史数据队列中的文件名执行上传操作,上传成功则从历史数据队列中删除该文件名,并同时调用所述第二存储服务删除该文件名对应的文件,上传失败则等待下一次定时任务执行;
在接收到云端的重传历史数据操作时,将读取对应文件中数据并放入失败队列中等待下一次定时任务执行。
根据本发明的云边协同***,解决了云服务供应商构建的云边协同平台缺乏泛用性,无法自由搭建和服务迁移的问题,本发明能够在任何满足基本配置需求的设备上搭建,在需要迁移服务时也只用进行简单的拷贝便能完成,用户能够完全掌控自己的服务,这极大的增强了***的泛用性,降低使用成本,并且本发明在开源边缘计算框架Kubeedge的基础上实现了可视化操作和自动边缘状体维护,降低了人工维护的难度,而添加智能化的任务调度和云边之间的数据传输能力,则提高了***的易用性。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1为本云边协同***架构设计图。
图2为云端管理模块分层架构图。
图3为边缘节点自动添加流程图。
图4为删除边缘节点流程图。
图5为边缘节点自动添加流程图。
图6为设备类别删除流程图。
图7为任务添加流程图。
图8为异步任务下发流程图。
图9为边缘维护模块分层架构图。
图10为数据传输流程图。
具体实施方式
下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定发明。
现在结合说明书附图对本发明做进一步的说明。
本发明实施例提供一种基于Kubeedge边缘计算框架构建的云边协同***,云边协同***架构设计如图1所示:云边协同***分为云端管理模块和边缘维护模块两部分。
S1、云端管理模块。
云端管理模块分层架构如图2:
云端管理模块架构分为展示层、服务层、依赖层和硬件层,其中展示层向用户提供的应用功能,服务层向展示层应用功能提供基础服务并调用依赖层软件,依赖层为云端管理模块所依赖的软件,硬件层为云端管理模块所使用的硬件设备。
本文将在后续重点说明展示层和服务层中功能的实现方法,下面只对依赖层中软件进行简要说明:
Kubeedge是基于Kubernetes构建的边缘计算框架,将容器化应用编排功能扩展到边缘的节点和设备、Kubernetes是容器编排程序,用于管理跨多个主机的容器化应用程序、docker是开源的容器引擎、Harbor是镜像仓库、MySQL是数据库。
云端管理模块服务层包括第一云边通信服务单元、第一存储服务单元、任务调度单元和指令库。
S1-1、第一云边通信服务单元。
第一云边通信服务单元作为云端服务器与边缘节点之间数据传输通道,在云端提供了边缘数据的接收接口和云端数据的访问接口,具体内容如下:
边缘数据接收接口:在云端管理模块被成功部署后便自动开启此接口,边缘节点将其上运行的任务数据通过边缘维护程序发送到此接口,在接收到来自边缘的数据后对其进行解密,然后返回解密后的数据给调用云边通信服务的程序。
云端数据访问接口:根据要下发到边缘节点的数据创建云端数据下载链接,通过数据名和数据地址将链接和数据流绑定,然后将创建的链接返回给调用云边通信服务的程序。
S1-2、第一存储服务单元。
第一存储服务单元为云端管理模块与磁盘、数据库和Harbor镜像仓库之间提供统一的交互能力,具体内容如下:
数据库:存储服务提供数据库的增删改查操作、判断给定数据与数据库中数据是否一致,并将数据库操作结果返回给调用存储服务的功能程序。
磁盘:存储服务提供在服务器磁盘通过命令创建目录和删除目录、通过方法保存文件。
Harbor镜像仓库:通过Harbor镜像仓库接口创建项目(https://harbor服务器地址/api/projects)、通过Harbor镜像仓库接口删除项目(https://habor服务器地址/api/projects/项目名)、通过Harbor镜像仓库接口删除镜像(https://habor服务器地址/api/repositories?repo_name=镜像名)。
S1-3、任务调度单元。
任务调度单元包括任务迁移和边缘维护任务的自动更新,具体内容如下:
任务迁移:下发到边缘节点执行的任务中分为指定边缘执行和未指定边缘执行两类。未指定边缘执行的任务将由***分配硬件资源最丰富的边缘节点运行该任务,当运行该任务的边缘从集群中断连并且长时间未恢复连接时,***将停止该任务,并为其分配新的硬件资源最丰富的边缘节点继续运行该任务。指定边缘执行的任务将被分配到指定边缘节点上执行,当运行该任务的边缘断连时将保持任务在边缘节点上的执行,并等待边缘节点恢复连接后向云端同步任务信息,若边缘节点硬件资源不足,***将自动停止边缘节点上最后运行的任务。
边缘维护任务自动更新:通过定时任务每分钟去访问Harbor镜像仓库中边缘维护程序镜像版本并与所有边缘节点当前执行的镜像版本进行比较,当边缘节点执行的镜像版本低于最新版本时***将停止该节点上的边缘维护任务,然后重新下发最新的边缘维护任务到该边缘节点上执行。
S1-4、指令库。
指令库中包含了Kubeedge、Kubernetes、Docker的操作指令,能够根据调用程序传递的参数执行相应指令,具体指令如下:
边缘节点删除指令(kubectl delete node边缘节点名称)
任务下发指令(kubectl apply-f deployment.yaml)
任务配置修改指令(kubectl apply-f device.yaml)
任务终止指令(kubectl delete-f deployment.yaml)
构建镜像指令(docker build-t镜像名称.)
镜像上传指令(docker push镜像名称(需要包含harbor服务器地址))
删除镜像指令(docker rmi镜像名称)
云端管理模块展示层包括边缘节点管理、终端设备类别管理、任务管理、和数据管理。
S1-5、边缘节点管理单元。
边缘节点管理单元主要细分为边缘节点自动添加、节点信息查询、节点信息编辑、启用/禁用节点、删除节点。
S1-5-1、边缘节点自动添加单元。
在有新的边缘节点被加入到Kubeedge集群中时,云端管理模块将会自动获取新边缘节点信息并添加到数据库,实现流程如图3:
定时任务每分钟通过Kubeedge云端服务器地址访问其提供API接口,构建Kubeedge Java客户端,再由客户端提供的方法kubernetesClient.nodes()获取到当前所有边缘节点信息,通过调用S1-2存储服务去比较当前边缘节点信息与数据库中信息差异,存在新增边缘节点则调用S1-2存储服务通过Harbor镜像仓库接口创建新节点镜像项目,并在数据库中更新边缘节点信息,否则更新已有边缘节点信息。在完成边缘节点添加后,将通过执行任务的方式在该边缘节点运行边缘维护程序,并在云端调用S1-1云边通信服务接收该边缘节点返回云端的数据,然后将边缘节点的硬件使用数据和终端设备数据调用S1-2存储服务去保存到数据库。
S1-5-2、边缘节点信息查询。
在查询边缘节点信息时通过调用S1-2存储服务去数据库中获取所有边缘节点信息,并在前端进行表格展示。在点击边缘节点之后能够通过图表对该节点的CPU、存储使用率,连接的终端设备等详细信息进行展示。
S1-5-3、启用/禁用节点。
自动增加的边缘节点默认是被禁用的,通过使用状态按钮能够控制边缘节点的启用和禁用,当改变节点的使用状态时会影响任务管理、下发数据等功能,同时通过调用S1-2存储服务去数据库中修改对应节点的使用状态信息。
S1-5-4、删除节点。
对于已经从Kubeedge集群中退出的边缘节点,或是不再使用的边缘节点可以进行删除,实现流程如图4:
通过选择的边缘节点的编号调用S1-2存储服务去数据库中获取该边缘节点相关信息,判断该边缘节点上是否存在正在运行的任务,存在则停止删除,否则调用S1-4指令库中边缘节点删除指令,然后修改数据库中该边缘节点信息为已删除。
S1-6、终端设备类别管理单元。
终端设备类别管理单元主要用于终端设备类别添加、设备类别信息查询、设备类别删除。
S1-6-1、终端设备类别添加。
在有新的终端设备类别添加时需要设置该终端类别的基本信息,添加终端设备检测程序,并更新边缘维护程序,实现流程如图5:
在添加新的终端设备类别时需要输入终端设备类别名称、设备接口协议、设备数据格式等,并添加设备检测程序。在通过输入数据完整性和格式检验后将调用S1-2存储服务去数据库中检验设备数据是否重复,未重复便将设备数据保存到数据库,并通过HTTP协议将设备检测程序上传到磁盘,然后将根据终端设备检测程序重新构建边缘维护程序镜像,并调用S1-2存储服务通过Harbor镜像仓库接口删除原边缘维护程序镜像,添加新镜像,再调用S1-3任务调度将原本各边缘节点执行的边缘维护程序停止,重新下发更新后的程序到各边缘节点执行。
S1-6-2、设备类别信息查询。
在查询终端设备类别信息时通过调用S1-2存储服务去数据库中获取所有终端设备类别信息,并在前端进行表格展示。在点击终端设备类别之后能够展示该类别设备图片、设备数据格式等详细信息,并提供设备检测程序的下载链接。
S1-6-3、设备类别删除。
当终端设备类别中不存在任何连接到边缘节点的设备时,能够对该设备类别进行删除,实现流程如图6:
通过选择的终端设备类别的编号调用S1-2存储服务去数据库中获取该终端设备类别相关信息,并判断边缘节点上是否连接有该类别的设备,存在则停止删除,否则调用S1-2存储服务删除磁盘中设备检测程序和数据库中该设备类别数据,然后将重新构建边缘维护程序镜像,并调用S1-2存储服务通过Harbor镜像仓库删除原边缘维护程序镜像,添加新镜像,再调用S1-3任务调度将原本各边缘节点执行的边缘维护程序停止,重新下发更新后的程序到各边缘节点执行。
S1-7、任务管理单元。
任务管理单元主要用于实现任务添加、任务状态信息自动更新、任务配置、任务信息查询、任务重启、任务停止、任务删除。
S1-7-1、任务添加。
在创建新任务时需要设置任务的基本信息,选择执行的边缘节点,上传任务程序,构建任务镜像,最后将任务下发到指定边缘上运行,实现流程如图7:
下面将详细说明任务添加的执行流程:
步骤1,设置任务名称、任务描述等任务基础信息。
步骤2,选择要执行该任务的边缘节点,由***自动筛选S1-5-2中状态为在线且已启用的边缘节点作为可选节点,支持同时选择多个边缘节点。在确认选择时,***将再次调用S1-5-2中接口去查询边缘节点状态,若节点状态已改变将给出提示并要求重新选择边缘节点。
步骤3,获取选择的边缘节点名称,为每个节点上要执行的任务生成唯一标识,并创建任务程序保存的目录。
步骤4,添加任务程序,调用S1-2存储服务通过HTTP协议将任务程序上传到步骤3中创建的目录。
步骤5,检验任务程序是否符合要求,不符合将终止流程,给出提示并调用S1-2存储服务删除步骤3中创建的目录。
步骤6,基于deployment.yaml、run.yaml、device.yaml和DockerFile文件模板,结合边缘节点名和任务标识生成对应文件并调用S1-2存储服务将文件保存到步骤3中创建的目录。
步骤7,生成默认的任务配置信息,并调用S1-2存储服务将任务信息保存到数据库中。
步骤8,异步的方式执行任务下发。
在异步执行任务下发到边缘执行时需要构建任务镜像,上传镜像到Harbor镜像仓库,然后下发任务到指定边缘节点,最后更新任务状态,实现流程如图8:
下面将详细说明异步任务下发的执行流程:
步骤8-1,基于步骤6中生成的DokcerFile文件和步骤4上传的任务程序调用S1-4指令库中构建镜像指令。若构建镜像失败则调用S1-2存储服务将该任务状态修改为“构建失败”,并终止流程。
步骤8-2,调用S1-4指令库中镜像上传指令将步骤8-1中构建的任务镜像上传到Harbor镜像仓库中该边缘节点由S1-5-1创建的镜像目录中。若镜像上传失败则调用S1-2存储服务将该任务状态修改为“构建失败”,并终止流程。
步骤8-3,调用S1-4指令库中删除镜像指令删除云端在步骤8-1中构建的任务镜像。
步骤8-4,基于步骤6中生成的deployment.yaml、run.yaml文件调用S1-4指令库中任务下发指令。若任务下发成功则调用S1-2存储服务将该任务状态修改为“正在下发”,任务下发失败则调用S1-2存储服务将该任务状态修改为“运行失败”,并终止流程。当任务完成下发后会将任务状态信息自动更新为“运行中”。
S1-7-2、任务状态信息自动更新。
定时任务每分钟通过Kubeedge云端服务器地址访问其提供API接口,构建Kubeedge Java客户端,再由客户端提供的方法kubernetesClient.pods()获取到当前所有任务状态信息,通过调用S1-2存储服务去比较当前任务状态信息与数据库中状态信息差异,任务状态信息不一致的则更新数据库中状态信息。
S1-7-3、任务配置。
状态为“运行中”的任务能够进行配置,在设置配置参数时将调用S1-2存储服务去更新数据库中该任务的配置信息,然后基于任务配置信息修改该任务S1-7-1中步骤6生成的device.yaml文件,调用S1-4指令库中任务配置修改指令。
S1-7-4、任务信息查询。
在查询任务信息时通过调用S1-2存储服务去数据库中获取所有任务信息,并在前端进行表格展示。
S1-7-5、任务停止。
状态为“运行中”的任务能够进行停止操作,执行停止操作时将通过Kubeedge云端服务器地址访问其提供API接口,构建Kubeedge Java客户端,再由客户端提供的方法kubernetesClient.pods()获取到该任务状态信息,判断任务实际状态是否为“运行中”,若不是则终止流程并调用S1-2存储服务去更新数据库中该任务状态为实际状态,是则调用S1-4指令库中任务终止指令,然后调用S1-2存储服务去更新数据库中该任务状态信息为“停止”。
S1-7-6、任务启动。
状态为“停止”的任务能够进行启动操作,执行启动操作时将通过Kubeedge云端服务器地址访问其提供API接口,构建Kubeedge Java客户端,再由客户端提供的方法kubernetesClient.pods()获取到该任务状态信息,判断任务实际状态是否为“停止”,若不是则终止流程并调用S1-2存储服务去更新数据库中该任务状态为实际状态,是则执行S1-7-1中步骤8-4流程。
S1-7-7、任务删除。
状态为“停止”的任务能够进行删除操作,执行删除操作时将通过Kubeedge云端服务器地址访问其提供API接口,构建Kubeedge Java客户端,再由客户端提供的方法kubernetesClient.pods()获取到该任务状态信息,判断任务实际状态是否为“停止”,若不是则终止流程并调用S1-2存储服务去更新数据库中该任务状态为实际状态,是则基于待删除任务标识修改边缘维护程序任务的device.yaml文件,调用S1-4指令库中任务配置修改指令,使用任务执行模块删除该任务保存在边缘节点上的任务数据文件,再调用S1-2存储服务删除磁盘中任务获取的数据文件、S1-7-1步骤3中创建的目录,删除Harbor镜像仓库中S1-7-1步骤8-2中上传的任务镜像,删除数据库中该任务信息、任务数据文件信息。
S1-8、数据管理单元。
数据管理单元主要细分为数据接收、数据下发和数据展示。
S1-8-1、数据接收。
调用S1-1云边通信服务开启云端数据接收接口,通过该接口将接收各边缘上传的任务数据,数据分为正常数据(任务正常返回的数据)和失败数据(为节约网络开销,将放弃由于网络波动多次重传均失败的数据回传,在网络恢复后回传的此部分数据信息作为失败数据),当接收到正常数据时调用S1-2存储服务将该数据保存到数据库,当接收到失败数据时将解析出其中包含的回传失败的信息并调用S1-2存储服务将该信息保存到数据库。
S1-8-2、数据下发。
将数据文件通过HTTP请求上传到云端服务器,调用S1-1云边通信服务创建云端数据下载链接,然后基于数据下载链接和任务标识修改该任务S1-7-1中步骤6生成的device.yaml文件,调用S1-4指令库中任务配置修改指令。
S1-8-3、数据展示。
通过选择的任务的编号调用S1-2存储服务去数据库中获取该任务相关数据信息,并在前端进行表格展示。对于正常数据能够查看其详细信息和数据内容,对于失败数据只能查看数据信息。失败数据支持手动重传,通过点击“重传”基于重传数据信息和任务标识修改该任务S1-7-1中步骤6生成的device.yaml文件,调用S1-4指令库中任务配置修改指令。
S2、边缘维护模块。
边缘维护模块是在云端管理模块部署完成后自动将需要运行在边缘的基础程序构建为边缘维护镜像,在边缘节点被加入到集群时会以基础Kubeedge任务的方式下发到各边缘节点上执行的,当边缘维护程序发生更改时会自动构建新版本镜像,检测到镜像版本不一致后会自动更新各边缘节点上的边缘维护程序。
边缘维护模块分层架构如图9:
边缘维护模块架构分为应用层、服务层、依赖层和硬件层,其中应用层为边缘维护程序提供的功能,服务层向展示层应用功能提供基础服务并调用依赖层软件,依赖层为边缘维护程序所依赖的软件,硬件层为边缘维护程序所使用的硬件设备。
本文将在后续重点说明展示层和服务层中功能的实现方法,下面对依赖层中软件进行简要说明:
Kubeedge是基于Kubernetes构建的边缘计算框架,将容器化应用编排功能扩展到边缘的节点和设备、docker是开源的容器引擎、MQTT是消息队列遥测传输协议的客户端,其是一种基于发布/订阅模式的“轻量级”通讯协议。
S2-1、第二云边通信服务单元。
云边通信服务作为云端服务器与边缘节点之间数据传输通道,在边缘提供数据上传和下载的功能,具体内容如下:
云边通信服务接收到边缘节点要返回云端的数据,对数据进行加密,然后基于HTTP协议将数据发送到S1-1中边缘数据接收接口。在边缘接收到云端下发的数据下载链接时,会去判断该链接是否过期,未过期则基于HTTP协议去访问S1-1中云端数据访问接口来下载数据。
S2-2、第二存储服务单元。
第二存储服务单元为边缘维护程序与磁盘和MQTT客户端之间提供统一的交互能力,具体内容如下:
磁盘:存储服务提供在服务器磁盘通过命令创建目录和删除目录、通过方法保存文件。
MQTT客户端:在边缘维护程序被下发到边缘节点上运行时,存储服务便订阅边缘维护程序所需的MQTT主题,并且当有新任务被下发到边缘时存储服务会根据该任务标识去订阅该任务的MQTT主题,在MQTT客户端接收到向存储服务订阅的主题发送的消息时会向存储服务推送该消息,然后由存储服务将消息返回该主题对应的程序。
S2-3、硬件监控单元。
硬件监控单元用于对边缘节点上硬件资源和终端设备连接接口进行监控,主要对边缘节点CPU的型号、架构类型、核数、计算频率和使用率,内存的型号、总容量、使用率,磁盘的型号、总容量、使用率进行采集和计算,同时也会获取边缘节点能够连接终端设备的硬件接口信息,然后将这些硬件信息返回调用程序。
S2-4、设备发现单元。
设备发现单元用于发现并识别连接到边缘节点到终端设备,并将终端设备信息返回云端进行展示,具体说明如下:
边缘维护程序包含S1-6中所有终端设备类别的检测程序,通过任务的方式在边缘节点上执行。通过定时任务每分钟调用S2-3硬件监控获取边缘节点正在使用的接口,然后依次运行设备类别检测程序向边缘节点上所有接口发送请求,若在一个设备类别的检测程序请求接口时收到回应则说明该接口连接了终端设备,并且可以确定该设备类别,然后调用S2-2存储服务将发现的终端设备信息保存到磁盘中。在执行一次定时任务后,将调用S2-1云边通信服务将所有发现的设备信息进行加密后返回云端管理模块。
S2-5、资源监控单元。
资源监控单元用于监控边缘节点的硬件使用状态和任务执行情况,并将硬件数据及其是否满足最新任务运行等数据返回云端,具体说明如下:
定时任务调用S2-3硬件监控去获取边缘节点的硬件设备的使用情况,然后计算和统计各类硬件数据,然后调用S2-2存储服务将硬件使用信息保存到磁盘中。并且当有新任务被下发到该边缘执行时,状态维护程序会判断当前边缘节点空余硬件资源是否能够满足该任务的运行,若无法满足则记录该任务标识。最后将将调用S2-1云边通信服务将硬件使用信息和是否满足最新任务运行等数据进行加密后返回云端管理模块。
S2-6、数据传输单元。
数据传输用于将边缘节点上执行的任务所产生的数据返回云端,实现流程如图10:
调用S2-1云边通信服务向云端上传数据,若上传失败则将该数据加入失败队列。通过定时任务每分钟依次对失败队列中的数据执行上传操作,数据上传成功则从失败队列中删除该数据,上传失败则等待下一次定时任务执行。若存在数据重传时间超过一个小时则将其定义为历史数据,该数据将调用S2-2存储服务保存到磁盘文件中,文件名由任务标识加时间戳构成,并将该数据从失败队列中删除。历史数据文件名将放入历史数据上传队列中,通过定时任务每分钟依次对历史数据队列中的文件名执行上传操作,上传成功则从历史数据队列中删除该文件名,并同时调用S2-2存储服务删除该文件名对应的文件,上传失败则等待下一次定时任务执行。
在接收到云端的重传历史数据操作时,将读取对应文件中数据并放入失败队列中等待下一次定时任务执行。
S2-7、任务控制单元。
任务控制单元用于根据云端对任务的操作去改变边缘节点上任务的执行状态和释放任务的资源消耗等,具体说明如下:
在云端对任务进行配置时,S2-2存储服务将从边缘节点上MQTT客户端收到任务配置的变更消息,然后将任务标识与其最新的配置信息返回给任务控制程序,任务控制程序以获取到的最新配置信息去更新指定任务的执行状态。
在云端对删除任务时,S2-2存储服务将从边缘节点上MQTT客户端收到任务删除消息,然后将任务标识与待删除消息返回给任务控制程序,任务控制程序以获取到的任务标识停止任务相关的服务,并删除指定任务保存在边缘节点上的任务数据文件。
综上所述,本发明至少具有以下优势:
1)简化了边缘管理和维护方法
在使用边缘计算框架Kubeedge对加入其中的边缘节点进行管理和维护时只能通过命令行的方式进行,并且不支持自动化操作和实时监控,本发明提供了简化的边缘管理和维护方法,支持边缘节点的自动发现和自动更新,实现边缘的资源使用情况的及时反馈,并且能够对故障节点进行警报提示。
2)S1-7中智能化的任务管理
在使用边缘计算框架Kubeedge在各边缘节点上执行任务时操作及其繁琐,需要通过docker将可执行程序构建为镜像,再上传到镜像仓库中,然后调用任务下发指令,将该任务下发到指定边缘执行,并且在执行流程中出现错误也难以排查。本发明提供了智能化的任务管理能力,只需添加可执行程序便能完成任务下发操作,对执行过程中的错误能够自动处理并进行提示,当边缘资源不足时能够对其上任务进行智能化的调度。
3)S1-8中数据管理。
本发明在Kubeedge框架的基础上增加了数据传输和管理的能力,支持在云端下发数据到指定边缘,和接收各边缘上传的数据,并且由于边缘网络存在不稳定的问题,本发明提供了边缘节点数据的本地持久化、重传和续传等能力,保证重要数据不丢失。
4)支持用户自定义终端设备。
使用云服务供应商构建的云边协同平台时只能选择其支持的终端设备类型,而如Kubeedge边缘计算框架支持的设备协议较少,因此本发明增加支持用户自定义终端设备,只需要在云端添加设备检测程序,便能够自动发现边缘节点上接入的对应类型的终端设备。
5)S2中边缘维护程序
本发明实现的边缘维护程序是在边缘节点被加入到Kubeedge集群时会以基础任务的方式下发到该边缘节点上执行的,为该边缘提供终端设备发现、边缘硬件资源监控、云边数据传输和边缘任务智能控制的能力。
以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
Claims (10)
1.一种基于Kubeedge边缘计算框架构建的云边协同***,其特征在于,所述***包括云端管理模块和边缘维护模块;
所述云端管理模块包括:
第一云边通信服务单元,作为云端服务器与边缘节点之间数据传输通道,并在云端提供了边缘数据的接收接口和云端数据的访问接口;
所述边缘数据接收接口被配置为云端管理模块被成功部署后自动开启,接收在边缘节点上运行的任务数据,所述任务数据通过边缘维护程序发送到至所述边缘数据接收接口,在接收到所述任务数据后对其进行解密,并返回解密后的数据至调用云边通信服务的程序;
所述云端数据访问接口被配置为根据下发到边缘节点的数据创建云端数据下载链接,通过数据名和数据地址将链接和数据流绑定,然后将创建的链接返回给调用云边通信服务的程序;
第一存储服务单元,用于云端管理模块与磁盘、数据库和Harbor镜像仓库之间的数据交互;
所述第一存储服务单元包括:
数据库,用于数据的增删改查操作,判断给定数据与数据库中数据是否一致,并将操作结果返回给调用第一存储服务服务单元的功能程序;
磁盘,用于根据命令创建目录和删除目录、保存文件;
Harbor镜像仓库,用于通过Harbor镜像仓库接口创建项目、删除项目删除镜像;
任务调度单元,包括任务迁移子单元和边缘维护任务自动更新子单元:
所述任务迁移子单元被配置为:未指定边缘执行的任务将由***分配硬件资源最丰富的边缘节点运行该任务,当运行该任务的边缘从集群中断连并且长时间未恢复连接时,***将停止该任务,并为其分配新的硬件资源最丰富的边缘节点继续运行该任务,指定边缘执行的任务将被分配到指定边缘节点上执行,当运行该任务的边缘断连时将保持任务在边缘节点上的执行,并等待边缘节点恢复连接后向云端同步任务信息,若边缘节点硬件资源不足,***将自动停止边缘节点上最后运行的任务;
所述边缘维护任务自动更新子单元被配置为:通过定时任务每分钟去访问Harbor镜像仓库中边缘维护程序镜像版本并与所有边缘节点当前执行的镜像版本进行比较,当边缘节点执行的镜像版本低于最新版本时***将停止该节点上的边缘维护任务,然后重新下发最新的边缘维护任务到该边缘节点上执行;
指令库,所述指令库包括边缘节点删除指令、任务下发指令、任务配置修改指令、任务终止指令、构建镜像指令、镜像上传指令和删除镜像指令;
边缘节点管理单元,用于边缘节点自动添加、节点信息查询、节点信息编辑、启用/禁用节点、删除节点;
任务管理单元,用于任务添加、任务状态信息自动更新、任务配置、任务信息查询、任务重启、任务停止、任务删除;
数据管理单元,用于数据接收、数据下发和数据展示;
所述边缘维护模块包括:
第二云边通信服务单元,所述第二云边通信服务单元作为云端服务器与边缘节点之间数据传输通道,在边缘提供数据上传和下载的功能,具体被配置为:
接收到边缘节点要返回云端的数据,对数据进行加密,然后基于HTTP协议将数据发送到S1-1中边缘数据接收接口,在边缘接收到云端下发的数据下载链接时,判断该链接是否过期,未过期则基于HTTP协议去访问所述第一云边通信服务单元中云端数据访问接口来下载数据;
第二存储服务单元,用于为边缘维护程序与磁盘和MQTT客户端之间提供统一的交互能力,包括:
磁盘,用于存储服务提供在服务器磁盘通过命令创建目录和删除目录、通过方法保存文件;
MQTT客户端,用于在边缘维护程序被下发到边缘节点上运行时,存储服务便订阅边缘维护程序所需的MQTT主题,并且当有新任务被下发到边缘时存储服务会根据该任务标识去订阅该任务的MQTT主题,在MQTT客户端接收到向存储服务订阅的主题发送的消息时会向存储服务推送该消息,然后由存储服务将消息返回该主题对应的程序;
硬件监控单元,用于对边缘节点CPU的型号、架构类型、核数、计算频率和使用率,内存的型号、总容量、使用率,磁盘的型号、总容量、使用率进行采集和计算,同时也会获取边缘节点能够连接终端设备的硬件接口信息,然后将这些硬件信息返回调用程序;
设备发现单元,用于发现并识别连接到边缘节点到终端设备,并将终端设备信息返回云端进行展示,具体被配置为:
包含所述终端设备类别管理单元中所有终端设备类别的检测程序,通过任务的方式在边缘节点上执行;通过定时任务每分钟调用所述硬件监控单元获取边缘节点正在使用的接口,然后依次运行设备类别检测程序向边缘节点上所有接口发送请求,若在一个设备类别的检测程序请求接口时收到回应则说明该接口连接了终端设备,并且可以确定该设备类别,然后调用所述第二存储服务将发现的终端设备信息保存到磁盘中。在执行一次定时任务后,将调用所述第二云边通信服务将所有发现的设备信息进行加密后返回云端管理模块;
资源监控单元,用于监控边缘节点的硬件使用状态和任务执行情况,并将硬件数据及其是否满足最新任务运行等数据返回云端,具体被配置为:
定时任务调用所述硬件监控单元去获取边缘节点的硬件设备的使用情况,然后计算和统计各类硬件数据,然后调用所述第二存储服务将硬件使用信息保存到磁盘中;并且当有新任务被下发到该边缘执行时,状态维护程序会判断当前边缘节点空余硬件资源是否能够满足该任务的运行,若无法满足则记录该任务标识,最后将调用所述第二云边通信服务单元将硬件使用信息和是否满足最新任务运行等数据进行加密后返回云端管理模块;
数据传输单元,用于将边缘节点上执行的任务所产生的数据返回云端管理模块;
任务控制单元,用于根据云端管理模块对任务的操作去改变边缘节点上任务的执行状态和释放任务的资源消耗,具体被配置为:
在云端管理模块对任务进行配置时,所述第二存储服务将从边缘节点上MQTT客户端收到任务配置的变更消息,然后将任务标识与其最新的配置信息返回给任务控制程序,任务控制程序以获取到的最新配置信息去更新指定任务的执行状态;
在云端管理模块对删除任务时,所述第二存储服务将从边缘节点上MQTT客户端收到任务删除消息,然后将任务标识与待删除消息返回给任务控制程序,任务控制程序以获取到的任务标识停止任务相关的服务,并删除指定任务保存在边缘节点上的任务数据文件。
2.据权利要求1所述的云边协同***,其特征在于,所述边缘节点自动添加,包括:
定时访问Kubeedge边缘节点信息接口;
获取当前所有边缘节点信息,并与数据库信息进行比较;
在存在新边缘节点的情况下,在Harbor镜像仓库中创建新节点镜像目录,并在数据库中更新边缘节点信息;
在不存在新边缘节点的情况下,判断已有边缘节点信息是否更新,若是则更新边缘节点信息。
3.据权利要求2所述的云边协同***,其特征在于,所述启用/禁用节点,包括:默认禁用自动添加的边缘节点,通过使用状态按钮控制边缘节点的启用和禁用,同时通过调用第一存储服务单元去数据库中修改对应节点的使用状态信息;
所述删除节点,包括:通过选择的边缘节点的编号调用第一存储服务单元去数据库中获取该边缘节点相关信息,判断该边缘节点上是否存在正在运行的任务,若存在则停止删除,若不存在则调用指令库中边缘节点删除指令,然后修改数据库中该边缘节点信息为已删除;
终端设备类别管理单元,用于终端设备类别添加、设备类别信息查询、设备类别删除。
4.据权利要求3所述的云边协同***,其特征在于,所述节点信息查询,包括:在查询边缘节点信息时通过调用第一存储服务单元去数据库中获取所有边缘节点信息,并在前端进行表格展示,在点击边缘节点之后能够通过图表对该节点的CPU、存储使用率,连接的终端设备进行展示。
5.据权利要求4所述的云边协同***,其特征在于,所述终端设备类别添加,包括:
设置终端设备类别;
添加终端设备识别程序;
若所述终端设备识别程序符合格式和完整性要求,则判断设备数据是否重复,在不重复的情况下,更新边缘维护程序镜像,并重新下发更新后的边缘维护程序;
所述设备类别信息查询,包括:在查询终端设备类别信息时通过调用第一存储服务单元去数据库中获取所有终端设备类别信息,并在前端进行表格展示;在点击终端设备类别之后,展示对应类别设备图片和设备数据格式,并提供设备检测程序的下载链接。
6.据权利要求5所述的云边协同***,其特征在于,所述设备类别删除,包括:通过选择的终端设备类别的编号调用第一存储服务单元去数据库中获取该终端设备类别相关信息,并判断边缘节点上是否连接有该类别的设备,若存在则停止删除,若不存在则调用第一存储服务单元删除磁盘中设备检测程序和数据库中该设备类别数据,重新构建边缘维护程序镜像,并调用第一存储服务单元通过Harbor镜像仓库删除原边缘维护程序镜像,添加新的边缘维护程序镜像,再调用任务调度单元将原本各边缘节点执行的边缘维护程序停止,重新下发更新后的边缘维护程序到各边缘节点执行。
7.据权利要求1所述的云边协同***,其特征在于,所述任务添加,包括:
设置任务基础信息,所述任务基础信息包括任务名称、任务描述;
选择要执行该任务的边缘节点,自动筛选所述终端设备类别管理单元中状态为在线且已启用的边缘节点作为可选节点,支持同时选择多个边缘节点;在确认选择时,调用所述终端设备类别管理单元中接口去查询边缘节点状态,若节点状态已改变将给出提示并要求重新选择边缘节点;
获取选择的边缘节点名称,为每个节点上要执行的任务生成唯一标识,并创建任务程序保存的目录;
添加任务程序,调用所述第一存储服务单元通过HTTP协议将任务程序上传到创建的目录;
检验任务程序是否符合要求,不符合将终止流程,给出提示并调用所述第一存储服务单元删除创建的目录;
基于deployment.yaml、run.yaml、device.yaml和DockerFile文件模板,结合边缘节点名和任务标识生成对应文件并调用所述第一存储服务单元将文件保存到创建的目录;
生成默认的任务配置信息,并调用所述第一存储服务单元将任务信息保存到数据库中;
异步的方式执行任务下发;
所述任务状态信息自动更新,包括:
定时任务每分钟通过Kubeedge云端服务器地址访问其提供API接口,构建KubeedgeJava客户端,再由客户端提供的方法获取到当前所有任务状态信息,通过调用所述第一存储服务单元去比较当前任务状态信息与数据库中状态信息差异,任务状态信息不一致的则更新数据库中状态信息;
所述任务配置,包括:
状态为“运行中”的任务能够进行配置,在设置配置参数时将调用第一存储服务单元去更新数据库中该任务的配置信息,然后基于任务配置信息修改该任务生成的device.yaml文件,调用所述指令库中任务配置修改指令;
所述任务信息查询,包括:
在查询任务信息时通过调用所述第一存储服务单元去数据库中获取所有任务信息,并在前端进行表格展示;
所述任务停止,包括:
状态为“运行中”的任务能够进行停止操作,执行停止操作时将通过Kubeedge云端服务器地址访问其提供API接口,构建Kubeedge Java客户端,再由客户端提供的方法获取到该任务状态信息,判断任务实际状态是否为“运行中”,若不是则终止流程并调用所述第一存储服务单元去更新数据库中该任务状态为实际状态,是则调用所述指令库中任务终止指令,然后调用所述第一存储服务单元去更新数据库中该任务状态信息为“停止”;
所述任务启动,包括:
状态为“停止”的任务能够进行启动操作,执行启动操作时将通过Kubeedge云端服务器地址访问其提供API接口,构建Kubeedge Java客户端,再由客户端提供的方法获取到该任务状态信息,判断任务实际状态是否为“停止”,若不是则终止流程并调用所述第一存储服务单元去更新数据库中该任务状态为实际状态。
所述任务删除,包括:
状态为“停止”的任务能够进行删除操作,执行删除操作时将通过Kubeedge云端服务器地址访问其提供API接口,构建Kubeedge Java客户端,再由客户端提供的方法获取到该任务状态信息,判断任务实际状态是否为“停止”,若不是则终止流程并调用所述第一存储服务单元去更新数据库中该任务状态为实际状态,是则基于待删除任务标识修改边缘维护程序任务的device.yaml文件,调用所述指令库中任务配置修改指令,使用任务执行模块删除该任务保存在边缘节点上的任务数据文件,再调用所述第一存储服务单元删除磁盘中任务获取的数据文件、创建的目录,删除Harbor镜像仓库中上传的任务镜像,删除数据库中该任务信息、任务数据文件信息。
8.据权利要求1所述的云边协同***,其特征在于,所述异步的方式执行任务下发,包括:
基于生成的DokcerFile文件和上传的任务程序调用所述指令库中构建镜像指令,若构建镜像指令失败则调用所述第一存储服务单元将该任务状态修改为“构建失败”,并终止流程;
调用所述指令库中镜像上传指令将构建的任务镜像上传到Harbor镜像仓库中该边缘节点由所述终端设备类别管理单元创建的镜像目录中,若镜像上传失败则调用所述第一存储服务单元将该任务状态修改为“构建失败”,并终止流程;
调用所述指令库中删除镜像指令删除云端构建的任务镜像;
基于生成的deployment.yaml、run.yaml文件调用所述指令库中任务下发指令。若任务下发成功则调用所述第一存储服务单元将该任务状态修改为“正在下发”,任务下发失败则调用所述第一存储服务单元将该任务状态修改为“运行失败”,并终止流程,当任务完成下发后会将任务状态信息自动更新为“运行中”。
9.据权利要求1所述的云边协同***,其特征在于,所述数据接收,包括:
调用所述第一云边通信服务开启云端数据接收接口,通过该接口将接收各边缘上传的任务数据,数据分为正常数据和失败数据,当接收到正常数据时调用第一存储服务单元将该数据保存到数据库,当接收到失败数据时将解析出其中包含的回传失败的信息并调用第一存储服务单元将该信息保存到数据库;
所述数据下发,包括:
将数据文件通过HTTP请求上传到云端服务器,调用所述第一云边通信服务创建云端数据下载链接,然后基于数据下载链接和任务标识修改该任务生成的device.yaml文件,调用所述指令库中任务配置修改指令。
所述数据展示,包括:
通过选择的任务的编号调用所述第一存储服务去数据库中获取该任务相关数据信息,并在前端进行表格展示。对于正常数据能够查看其详细信息和数据内容,对于失败数据只能查看数据信息。失败数据支持手动重传,通过点击“重传”基于重传数据信息和任务标识修改该任务在任务添加单元生成的device.yaml文件,调用指令库中任务配置修改指令。
10.据权利要求1所述的云边协同***,其特征在于,所述将边缘节点上执行的任务所产生的数据返回云端管理模块,包括:
调用所述第二云边通信服务单元向所述云端管理模块上传数据,若上传失败则将该数据加入失败队列;通过定时任务每分钟依次对失败队列中的数据执行上传操作,数据上传成功则从失败队列中删除该数据,上传失败则等待下一次定时任务执行;若存在数据重传时间超过一个小时则将其定义为历史数据,该数据将调用所述第二存储服务保存到磁盘文件中,文件名由任务标识加时间戳构成,并将该数据从失败队列中删除;历史数据文件名将放入历史数据上传队列中,通过定时任务每分钟依次对历史数据队列中的文件名执行上传操作,上传成功则从历史数据队列中删除该文件名,并同时调用所述第二存储服务删除该文件名对应的文件,上传失败则等待下一次定时任务执行;
在接收到云端的重传历史数据操作时,将读取对应文件中数据并放入失败队列中等待下一次定时任务执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211260705.8A CN115858108A (zh) | 2022-10-14 | 2022-10-14 | 一种基于Kubeedge边缘计算框架构建的云边协同*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211260705.8A CN115858108A (zh) | 2022-10-14 | 2022-10-14 | 一种基于Kubeedge边缘计算框架构建的云边协同*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115858108A true CN115858108A (zh) | 2023-03-28 |
Family
ID=85661534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211260705.8A Pending CN115858108A (zh) | 2022-10-14 | 2022-10-14 | 一种基于Kubeedge边缘计算框架构建的云边协同*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115858108A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116389491A (zh) * | 2023-04-03 | 2023-07-04 | 中国电子技术标准化研究院 | 一种云边算力资源自适应计算*** |
CN116886691A (zh) * | 2023-09-08 | 2023-10-13 | 蓝思***集成有限公司 | 一种文件管理控制方法、装置、***及存储介质 |
-
2022
- 2022-10-14 CN CN202211260705.8A patent/CN115858108A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116389491A (zh) * | 2023-04-03 | 2023-07-04 | 中国电子技术标准化研究院 | 一种云边算力资源自适应计算*** |
CN116389491B (zh) * | 2023-04-03 | 2023-11-07 | 中国电子技术标准化研究院 | 一种云边算力资源自适应计算*** |
CN116886691A (zh) * | 2023-09-08 | 2023-10-13 | 蓝思***集成有限公司 | 一种文件管理控制方法、装置、***及存储介质 |
CN116886691B (zh) * | 2023-09-08 | 2024-02-09 | 蓝思***集成有限公司 | 一种文件管理控制方法、装置、***及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11741412B2 (en) | Event-based composition model for workflow systems | |
KR101891506B1 (ko) | 하나 이상의 클라우드 시스템 상에 애플리케이션들을 이식 가능하게 배치하기 위한 방법들 및 시스템들 | |
CN115858108A (zh) | 一种基于Kubeedge边缘计算框架构建的云边协同*** | |
US9015651B2 (en) | Gateway data distribution engine | |
CN101472140B (zh) | 一种多媒体分发点播*** | |
CN112051993B (zh) | 状态机模板的生成及任务处理方法、装置、介质及设备 | |
CN103019757A (zh) | 一种在多台客户端间同步软件的方法、装置及*** | |
JP2010518490A (ja) | 不定期接続されるアプリケーションのための同期フレームワーク | |
CN111651418B (zh) | 一种文档内容下载方法、装置、计算机设备和存储介质 | |
CN114125028A (zh) | 微应用的运行方法、装置、设备、存储介质及程序产品 | |
CN106790403B (zh) | 实现移动云计算中间平台的方法及实现分布式的方法 | |
CN111800468A (zh) | 一种基于云的多集群管理方法、装置、介质及电子设备 | |
CN112835524A (zh) | 存储资源配置方法、存储资源控制器及调度*** | |
WO2019027597A1 (en) | WORKFLOW MANAGEMENT FRAMEWORK | |
CN114374813A (zh) | 多媒体资源管理方法、记录仪及服务器 | |
CN109614271A (zh) | 多个集群数据一致性的控制方法、装置、设备及存储介质 | |
CN110633250B (zh) | 资源管理***和方法 | |
JP5886901B2 (ja) | 装置へのコンテンツの分配を管理するシステムと方法とプログラムを提供する記憶媒体 | |
CN115309500A (zh) | 云上微服务架构应用部署和运维管理方法及*** | |
WO2000063801A1 (en) | Managed remote virtual mass storage for client data terminal | |
CN115878138B (zh) | 应用预下载方法、装置、计算机、存储介质 | |
CN112019362B (zh) | 数据传输方法、装置、服务器、终端、***及存储介质 | |
CN115344273A (zh) | 一种基于货架***来运行应用软件的方法及*** | |
CN115237547A (zh) | 一种非侵入式hpc计算集群的统一容器集群托管***和方法 | |
CN111061723A (zh) | 工作流实现方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |