掌桥专利:专业的专利平台
掌桥专利
首页

一种容器集群管理系统云边元数据传输方法、系统及介质

文献发布时间:2024-04-18 19:52:40


一种容器集群管理系统云边元数据传输方法、系统及介质

技术领域

本发明涉及计算机领域的云原生边缘计算技术,具体涉及一种容器集群管理系统云边元数据传输方法、系统及介质。

背景技术

云原生技术以容器、微服务为主要特征,具有轻量化、可伸缩等优势,广泛应用于云计算和边缘计算领域。Kubernetes是谷歌开源的容器集群管理系统,目前已经成为云原生容器集群管理的事实标准。随着容器在边缘的广泛使用,产生了一些云边容器集群管理系统如KubeEdge和OpenYurt等,这些系统将Kubernetes的容器集群管理能力拓展到边缘,实现云边容器的协同管理。元数据是云边容器集群管理系统的控制数据,描述了集群节点计算机和容器的配置状态,因此在云边频繁传输。边缘和云端往往地理位置相距甚远,通过公共互联网连接,而公网连接流量成本高,传输速度慢,因此降低云边的元数据传输流量就成为云边容器集群管理系统亟需解决的重要问题。

边缘节点通过List-watch机制向云端获取最新的元数据,边缘节点在第一次连接时会通过List一次性获取所有的元数据,接着通过Watch持续接收元数据的增量变化信息。云边网络不稳定,边缘节点经常出现断线重连的场景,重连的边缘节点会通过List重新向云端频繁请求所有的元数据,导致云边网络承载巨大流量。

云边环境中边缘节点往往通过局域网组成群组,群组内节点通过List-watch机制向云端获取最新的元数据。元数据可分为节点域元数据和群组域元数据。节点域元数据是节点独有的元数据,如节点的Pod列表等;群组域元数据是群组内节点共有的元数据,如Service和Endpoints元数据。边缘群组和云主节点之间传输的元数据中包含大量重复的Service和Endpoints元数据,浪费了大量的云边网络带宽。

目前工业界围绕降低容器集群管理系统的云边元数据流量设计了多种机制,主要是利用数据复用降低传输冗余。如KubeEdge在边缘节点重连时复用节点已接收的元数据,只传输增量的元数据,降低了节点重连云边流量消耗;OpenYurt在边缘群组内选举出Leader节点,由Leader节点从云主节点接收群组域元数据并转发给群组内非Leader节点,实现群组域元数据的转发复用,降低了云边元数据传输流量。KubeEdge只针对边缘节点重连的场景进行了传输优化,且未考虑到边缘节点长时间断连再重连后的缓存溢出问题,OpenYurt的方法主要针对边缘群组进行优化,针对节点重连场景效果不佳,且需要一个中心化的选举协调器,难以应用于不稳定的边缘环境。在实际的云边环境中,边缘节点往往组成边缘群组,同时频繁经历云边网络重连,甚至是长时间的断连,因此需要综合考虑多种场景,设计多层次的数据复用机制以确保云边元数据传输始终运行在“省流”的状态,同时这个机制的组件应该尽量精简和去中心化,以适用于资源受限的边缘环境,最终降低云边传输流量,确保云边网络稳定。但是目前云边环境元数据传输领域考虑多层次数据复用的工作还比较少,针对边缘节点长时间断连后重连的极端场景进行优化的工作还比较少。

发明内容

本发明要解决的技术问题:针对现有技术的上述问题,提供一种容器集群管理系统云边元数据传输方法、系统及介质,本发明旨在解决现有容器集群管理系统在云边环境下云边元数据传输流量较大的问题,降低了容器集群管理系统的云边元数据传输量,提高了云边元数据传输效率,降低了公网流量成本。

为了解决上述技术问题,本发明采用的技术方案为:

一种容器集群管理系统云边元数据传输方法,所述容器集群管理系统包括通过云边网络相互通信的云节点和边缘节点,且多个边缘节点构成边缘群组,云节点中包括一个用于运行控制平面组件的云主节点,所述云边元数据传输方法包括下述边缘群组内群组域元数据复用的方法:

S101,边缘群组的各个边缘节点使用预设的去中心化算法选举出主导节点Leader,其余的边缘节点自动成为跟随节点Follower;

S102,当边缘群组的跟随节点Follower需要向云端请求群组域元数据时,则向主导节点Leader发出群组域元数据请求,且主导节点Leader在收到请求后向云端转发来自跟随节点Follower的群组域元数据请求;当边缘群组的跟随节点Follower或者主导节点Leader需要向云端请求节点域元数据时,则直接向云端请求节点域元数据;

S103,主导节点Leader收到云端返回的元数据后,判断元数据的类型是群组域元数据还是节点域元数据,若元数据的类型为群组域元数据,则将收到的群组域元数据转发给请求元数据的跟随节点Follower,否则若元数据的类型为节点域元数据则直接接收节点域元数据;跟随节点Follower收到云端返回的节点域元数据后,直接接收节点域元数据。

可选地,步骤S101中边缘群组的各个边缘节点使用预设的去中心化算法选举出主导节点Leader时,任意边缘节点执行预设的去中心化算法的步骤包括:

S201,该边缘节点主动询问边缘群组的其他边缘节点是否是主导节点Leader,如果找到主导节点Leader,则该边缘节点成为跟随节点Follower,结束并退出,否则进行下一步;

S202,在设定的时间内随机等待一段时间,跳转步骤S203;

S203,该边缘节点成为候选者Candidate,投自己1票,并请求其他边缘节点投票;

S204,接收其他边缘节点的投票结果,如果得到超过边缘群组中的半数票,则该边缘节点成为主导节点Leader,结束并退出;否则降级为跟随节点Follower,跳转步骤S201。

可选地,步骤S103中判断元数据的类型是群组域元数据还是节点域元数据时,若元数据的类型元数据的类型为服务Service、端点Endpoints、端点切片EndpointSlice和节点Node类型的元数据中的一种,则判定元数据的类型为群组域元数据;若元数据的类型元数据的类型为Pod类型的元数据,则判定元数据的类型为节点域元数据。

可选地,步骤S103中主导节点Leader收到云端返回的元数据是指主导节点Leader采用异步消息处理机制List-Watch从云端获取云端返回的元数据;所述将收到的元数据转发给请求元数据的跟随节点Follower是指跟随节点Follower采用异步消息处理机制List-Watch从主导节点Leader获取群组域元数据;所述跟随节点Follower收到云端返回的节点域元数据是指跟随节点Follower采用异步消息处理机制List-Watch从云端获取云端返回的节点域元数据。

可选地,还包括下述重连后边缘节点元数据复用和云主节点消息队列元数据复用的方法:

S301,云主节点为每个边缘节点建立一个消息队列,缓存待下发给边缘节点的元数据;

S302,当云主节点需要向边缘节点发送元数据时,将待发送的边缘节点放入该边缘节点的消息队列,然后利用消息队列将缓存的元数据利用云边网络发送给边缘节点;边缘节点接受元数据,将接收的元数据保存在本地磁盘后,向云主节点发送附带有元数据版本号的确认消息,云主节点保存确认的元数据版本号;

S303,当边缘节点离线后,云主节点中的消息队列会继续缓存消息,一直到消息队列满队时跳转步骤S304;

S303,当消息队列满队后,消息队列现有的消息保持不变,新的消息不再入队而直接丢弃,并标记消息队列的状态为溢出;

S304,当边缘节点重连云主节点后,云主节点将消息队列中缓存的消息依次下发给边缘节点,然后判断消息队列的状态是否为溢出;如果消息队列的状态不是溢出,则跳转步骤S302;否则如果消息队列的状态是溢出,则云主节点依次检查边缘节点上报的元数据版本号和当前最新的元数据版本号,并将版本号不一致的元数据下发给边缘节点,跳转步骤S302。

可选地,步骤S302中云主节点保存确认的元数据版本号是指云主节点将确认的元数据版本号保存到Etcd数据库中,所述Etcd数据库为键-值key-value类型的数据库,且其中保存有容器集群管理系统中所有的元数据。

可选地,所述将确认的元数据版本号保存到Etcd数据库中时,用于保存的确认的元数据版本号的键-值key-value中,键key保存元数据的资源全名,值value保存边缘节点接收成功的元数据版本号。

此外,本发明还提供一种容器集群管理系统云边元数据传输系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述容器集群管理系统云边元数据传输方法。

此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行所述容器集群管理系统云边元数据传输方法。

此外,本发明还提供一种计算机程序产品,所述计算机程序产品中包括计算机程序/指令,所述计算机程序/指令用于被微处理器编程或配置以执行所述容器集群管理系统云边元数据传输方法。

和现有技术相比,本发明主要具有下述优点:。针对现有容器集群管理系统在云边环境下云边元数据传输流量较大的问题,本发明综合考虑边缘节点重连和边缘群组等边缘常见场景,复用边缘群组内元数据和边缘节点、云主节点缓存元数据,降低了容器集群管理系统的云边元数据传输量,提高了云边元数据传输效率,降低了公网流量成本。

附图说明

图1为本发明实施例中容器集群管理系统的结构示意图。

图2为本发明实施例中边缘群组内群组域元数据复用的方法的流程图。

图3为本发明实施例方法的元数据流示意图。

图4为本发明实施例方法的去中心化Leader节点选举算法流程示意图。

图5为本发明实施例中重连后边缘节点元数据复用和云主节点消息队列元数据复用的方法的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚,下文将基于容器编排系统Kubernetes,对本发明进行进一步的详细说明。

如图1所示,本实施例中的实施例中容器集群管理系统包括通过云边网络相互通信的云节点和边缘节点,且多个边缘节点构成边缘群组,云节点中包括一个用于运行控制平面组件的云主节点,此外还包括下述组件:

Etcd数据库:控制平面组件之一,一个键-值key-value类型的数据库,保存集群所有的元数据;

APIServer:控制平面组件之一,所有组件通过APIServer以HTTP REST(表述性状态传递,Representational State Transfer)API方式读写Etcd数据库中的元数据;

云端管控组件:控制平面组件之一,和边缘管控组件一起建立云边双向传输隧道,为每个边缘节点维护一个消息队列,缓存待下发的元数据;

边缘管控组件:运行于边缘节点,和云端管控组件一起建立云边双向传输隧道,代理边缘的元数据流量,使用分布式选举算法选举出Leader节点,对元数据请求进行分类处理,向Leader节点请求节点域元数据,向云端请求群组域元数据;

边缘节点代理组件:节点代理的一种边缘实现,运行于边缘工作节点,负责与云控制平面通信,创建并管理容器单元实例,相比云节点代理提供了额外的边缘离线自治、边缘服务网格等边缘环境特有的功能;

边缘流量代理组件:流量代理的一种边缘实现,运行于边缘工作节点,与云控制平面通信获得Service、Endpoints、Endpointslices等类型元数据,负责管控容器流量的转发;

如图2和图3所示,本实施例容器集群管理系统云边元数据传输方法包括下述边缘群组内群组域元数据复用的方法:

S101,边缘群组的各个边缘节点使用预设的去中心化算法选举出主导节点Leader(Leader节点),其余的边缘节点自动成为跟随节点Follower(非Leader节点);

S102,当边缘群组的跟随节点Follower需要向云端请求群组域元数据时,则向主导节点Leader发出群组域元数据请求,且主导节点Leader在收到请求后向云端转发来自跟随节点Follower的群组域元数据请求;当边缘群组的跟随节点Follower或者主导节点Leader需要向云端请求节点域元数据时,则直接向云端请求节点域元数据;

S103,主导节点Leader收到云端返回的元数据后,判断元数据的类型是群组域元数据还是节点域元数据,若元数据的类型为群组域元数据,则将收到的群组域元数据转发给请求元数据的跟随节点Follower,否则若元数据的类型为节点域元数据则直接接收节点域元数据;跟随节点Follower收到云端返回的节点域元数据后,直接接收节点域元数据。

在图3中,使用加粗实线条表示的是边缘节点所有类型元数据流,使用细实线条表示的是群组域元数据流,使用细虚线条表示的是节点域元数据流。从图3可以看出,在本实施例容器集群管理系统云边元数据传输方法下,云边之间群组域元数据只传输了一份,降低了云边元数据传输量。

如图4所示,步骤S101中边缘群组的各个边缘节点使用预设的去中心化算法选举出主导节点Leader时,任意边缘节点执行预设的去中心化算法的步骤包括:

S201,该边缘节点主动询问边缘群组的其他边缘节点是否是主导节点Leader,如果找到主导节点Leader,则该边缘节点成为跟随节点Follower,结束并退出,否则进行下一步;

S202,在设定的时间内随机等待一段时间,跳转步骤S203;例如作为一种可选的实施方式,本实施例中设定的时间为5秒,即随机等待1-5秒后跳转步骤S203;

S203,该边缘节点成为候选者Candidate,投自己1票,并请求其他边缘节点投票;

S204,接收其他边缘节点的投票结果,如果得到超过边缘群组中的半数票,则该边缘节点成为主导节点Leader,结束并退出;否则降级为跟随节点Follower,跳转步骤S201。

本实施例中,步骤S103中判断元数据的类型是群组域元数据还是节点域元数据时,若元数据的类型元数据的类型为服务Service、端点Endpoints、端点切片EndpointSlice和节点Node类型的元数据中的一种,则判定元数据的类型为群组域元数据;若元数据的类型元数据的类型为Pod类型的元数据,则判定元数据的类型为节点域元数据。

本实施例中,步骤S103中主导节点Leader收到云端返回的元数据是指主导节点Leader采用异步消息处理机制List-Watch从云端获取云端返回的元数据;所述将收到的元数据转发给请求元数据的跟随节点Follower是指跟随节点Follower采用异步消息处理机制List-Watch从主导节点Leader获取群组域元数据;所述跟随节点Follower收到云端返回的节点域元数据是指跟随节点Follower采用异步消息处理机制List-Watch从云端获取云端返回的节点域元数据。

如图4所示,本实施例方法还包括下述重连后边缘节点元数据复用和云主节点消息队列元数据复用的方法:

S301,云主节点为每个边缘节点建立一个消息队列,缓存待下发给边缘节点的元数据;

S302,当云主节点需要向边缘节点发送元数据时,将待发送的边缘节点放入该边缘节点的消息队列,然后利用消息队列将缓存的元数据利用云边网络发送给边缘节点;边缘节点接受元数据,将接收的元数据保存在本地磁盘后,向云主节点发送附带有元数据版本号的确认消息,云主节点保存确认的元数据版本号;

S303,当边缘节点离线后,云主节点中的消息队列会继续缓存消息,一直到消息队列满队时跳转步骤S304;

S303,当消息队列满队后,消息队列现有的消息保持不变,新的消息不再入队而直接丢弃,并标记消息队列的状态为溢出;

S304,当边缘节点重连云主节点后,云主节点将消息队列中缓存的消息依次下发给边缘节点,然后判断消息队列的状态是否为溢出;如果消息队列的状态不是溢出,则跳转步骤S302;否则如果消息队列的状态是溢出,则云主节点依次检查边缘节点上报的元数据版本号和当前最新的元数据版本号,并将版本号不一致的元数据下发给边缘节点,跳转步骤S302。

本实施例中,步骤S302中云主节点保存确认的元数据版本号是指云主节点将确认的元数据版本号保存到Etcd数据库中,所述Etcd数据库为键-值key-value类型的数据库,且其中保存有容器集群管理系统中所有的元数据。本实施例中将确认的元数据版本号保存到Etcd数据库中时,用于保存的确认的元数据版本号的键-值key-value中,键key保存元数据的资源全名,值value保存边缘节点接收成功的元数据版本号。

本实施例中云主节点首先将元数据缓存在消息队列中,然后消息队列将其中的消息依次下发给边缘节点,边缘节点将元数据保存在本地磁盘后向云主节点发送确认消息,云主节点收到确认消息后保存确认的元数据版本号到Etcd数据库中,然后继续发送消息队列中的下一个元数据。边缘节点重连云主节点后,云主节点首先将该节点消息队列中的消息依次下发,如果消息队列没有溢出标志,则表明边缘节点已经和云主节点的元数据版本保持一致,增量同步完毕。边缘节点重连云端后,如果消息队列存在溢出标志,说明在边缘节点离线期间存在丢失的元数据,此时将消息队列中的消息下发完毕以后,对比边缘节点上报的元数据版本号和Etcd数据库中的元数据版本号,下发不一致的元数据给边缘节点,最大限度地复用节点已缓存元数据。本实施例方法针对边缘群组场景、边缘节点重连云主节点场景和边缘节点长期断连后重连云主节点场景进行综合优化,是一种基于多层次数据复用的云边元数据传输方法。相比于传统的群组元数据复用方法和节点元数据复用方法,本发明方法对两种方法进行综合集成,使得新的方法适用于上述的混合场景,降低了云边元传输数据量;另外,针对云主节点消息队列溢出问题进行优化,改进节点元数据复用方法。传统节点元数据复用方法在消息队列溢出后会直接删除该消息队列,边缘节点重连后会从云主节点重新List元数据,本发明方法中消息队列溢出后冻结,在边缘节点重连后消息队列中的消息可继续下发,然后进行云边元数据版本比较,只下发不一致的元数据,最大限度地复用消息队列和边缘节点中保存的元数据,进一步降低云边传输流量。

综上所述,本实施例容器集群管理系统云边元数据传输方法针对Kubernetes在云边环境下元数据传输量较大的问题,提出一种针对多场景综合优化的云边元数据传输方法,基于多层次数据复用机制,最大限度复用边缘群组内、边缘节点保存和云主节点消息队列缓存的元数据,降低边缘群组场景和边缘节点重连云端场景下的云边元数据传输流量。另外使用稳定性更高的去中心化选举算法,更适用于边缘环境。容器集群管理系统云边元数据传输方法基于Kubernetes元数据同步List-watch机制,以新增组件的形式实现优化的云边元数据传输,达到降低云边元数据传输冗余,降低公网流量成本,提高元数据同步效率的目的。

此外,本实施例还提供一种容器集群管理系统云边元数据传输系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述容器集群管理系统云边元数据传输方法。此外,本实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行所述容器集群管理系统云边元数据传输方法。此外,本实施例还提供一种计算机程序产品,所述计算机程序产品中包括计算机程序/指令,所述计算机程序/指令用于被微处理器编程或配置以执行所述容器集群管理系统云边元数据传输方法。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 一种目标定位模型的训练方法和目标定位方法及装置
  • 一种基于电磁定位的增强现实手术导航系统标定方法
  • 坐标定位方法、坐标定位装置及包括所述坐标定位装置的显示器设备
  • 坐标定位方法、坐标定位装置及包括所述坐标定位装置的显示器设备
技术分类

06120116335294