首页 / 专利库 / 电脑编程 / 算法 / 一种针对教育桌面云应用的容器集群调度方法及平台

一种针对教育桌面应用的容器集群调度方法及平台

阅读:736发布:2023-05-27

专利汇可以提供一种针对教育桌面应用的容器集群调度方法及平台专利检索,专利查询,专利分析的服务。并且一种针对教育桌面 云 应用的容器集群调度方法及平台属于虚拟化容器技术领域;用户 请求 的响应时间过长;本方法包括根据教育桌面云应用的特征,设置一个集中式存储系统,记录容器创建请求调度信息;通过Agent机制采集每个 节点 的内存资源和CPU资源,Agent与Server使用心跳机制将信息及自身健康状况 定时同步 到Server;当Server收到创建容器的请求时,Server对容器进行调度,进行过滤可用节点阶段,然后进行并发排序阶段,判断是否选出节点,若是,则方法结束;若否,则进行资源排序阶段,选出节点,方法结束;本方法通过并发排序阶段,并结合节点的计算资源得分共同选择出一个综合考虑资源与并发的节点,从而提高了业务响应的效率;本平台能够满足教育应用特点的调度需求。,下面是一种针对教育桌面应用的容器集群调度方法及平台专利的具体信息内容。

1.一种针对教育桌面应用的容器集群调度方法,其特征在于,包括以下步骤:
步骤a、根据教育桌面云应用的特征,设置一个集中式存储系统,记录容器创建请求调度信息;
步骤b、通过Agent机制采集每个节点的内存资源和CPU资源,Agent与Server使用心跳机制将信息及自身健康状况定时同步到Server;
步骤c、预设节点并发创建容器数目的最大值和启动并发排序过程的容器数目,供用户能够根据节点主机的不同分别自定义设置;
步骤d、当Server收到创建容器的请求时,Server对容器进行调度,进行过滤可用节点阶段,过滤可用节点阶段根据节点健康状况,申请创建容器请求所需的内存资源与CPU资源,节点剩余内存资源与CPU资源对节点进行过滤,如果节点剩余资源满足创建容器所需要的资源,则将其放入候选列表;
步骤e、遍历候选列表,通过集中式存储系统查询每个节点当前正在创建的容器数目,如果正在创建的容器数目不小于设置的允许并发创建容器的数目的最大值,则将其从候选列表中移出,这一阶段候选列表输出的结果将作为下一阶段的输入;
步骤f、进行并发排序阶段,判断是否选出节点,若是,则方法结束;若否,则进行资源排序阶段,选出节点,方法结束。
2.根据权利要求1所述一种针对教育桌面云应用的容器集群调度方法,其特征在于,所述调度信息包括容器调度到哪个节点、容器的实时状态、以及容器创建的起止时间与创建结果。
3.根据权利要求1所述一种针对教育桌面云应用的容器集群调度方法,其特征在于,所述并发排序阶段对候选列表中的节点进行排序,排名最高的节点作为最终进行调度的节点;
两个节点排序的规则决定于节点当前正在创建的容器数目和启动并发排序过程的容器数目,如果两个节点当前正在创建的容器数目均小于启动并发排序过程的容器数目,则在此阶段无法判断两个节点的次序;
如果一个节点当前正在创建的容器数目小于启动并发排序过程的容器数目,另一个节点当前正在创建的容器数目大于启动并发排序过程的容器数目,则当前正在创建的容器数目小于启动并发排序过程的容器数目的节点排名高于另一个节点;
如果两个节点当前正在创建的容器数目均大于启动并发排序过程的容器数目,则分别对节点进行求差,使用预设节点并发创建容器的数目的最大值减去启动并发排序过程的容器数目,差值大的节点排名高于另一个节点。
4.根据权利要求1所述一种针对教育桌面云应用的容器集群调度方法,其特征在于,所述资源排序阶段对并发排序阶段无法排序的节点进行排序,对每个节点上已经调度运行的所有请求所需的cpu资源和memory资源进行求和,使用如下公式对节点进行打分,空闲资源越多的节点分数越高;
score=cpu((capacity-sum(requested))10/capacity)+
memory((capacity-sum(requested))10/capacity)
为避免一个节点上cpu被大量分配、而memory大量剩余的情况,使用如下公式对分数进行均衡,每种资源的Fraction的定义是请求的资源/节点上的可用资源,variance算法计算每两种资源Fraction之间的“距离”,而最后分数高的是资源Fraction差距小的节点;
score=10-variance(cpuFraction,memoryFraction,volumeFraction)*10分数越高的排名则越高,选取排名最高的节点作为调度的节点返回。
5.一种实现权利要求1所述一种针对教育桌面云应用的容器集群调度方法的调度平台,其特征在于,包括调度系统、容器群集、业务端、接入模和配置模块;所述调度系统包括Server节点模块、Agent模块和zookeeper模块;所述接入模块依次与配置模块、业务端通信;所述业务端的输出端与Server节点模块通信,所述Server节点模块与容器群集通信,所述容器集群每个节点上部署Agent模块与Server节点模块通信,所述Server节点模块中部署调度器,所述Server节点模块和容器群集均与zookeeper模块通信;
所述Server节点模块用于调度管理监控整个集群节点;
所述Agent模块用于与Server通信,汇报所在节点的状况,接受Server节点模块的命令并与所在主机容器运行时交互,采集的所在节点的资源;
所述接入模块用于提供多种模式包括图形界面供终端用户直接使用及开放API供第三方应用接入;
所述配置模块用于供使用者对可选参数如并发创建容器的数目的最大值、启动并发排序过程的容器数目及动态过滤条件阈值进行配置。
6.根据权利要求5所述一种针对教育应用的虚拟化容器的集群服务器的调度平台,其特征在于,所述采集的所在节点的资源包括中央处理器、内存、磁盘和端口的资源。
7.根据权利要求5所述一种针对教育应用的虚拟化容器的集群服务器的调度平台,其特征在于,所述Agent模块若与Server模块的连接失败,则Agent模块所在的节点是失效的。

说明书全文

一种针对教育桌面应用的容器集群调度方法及平台

技术领域

[0001] 本发明属于虚拟化容器技术领域,尤其涉及一种针对教育桌面云应用的容器集群调度方法及平台。

背景技术

[0002] 教育桌面云是虚拟化技术在教育行业中的解决方案,是桌面虚拟化技术发展到一定阶段的结果,其在数字校园信息化建设的进程中应用桌面虚拟化部署安全可靠的云桌面,提高学校教育信息化平,提升教学质量和学习效率。
[0003] 传统的虚拟机需要模拟整台机器包括硬件,每台虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给它的资源将全部被占用。容器技术是和宿主机共享硬件资源,操作系统可以实现资源的动态分配。从虚拟化层面来看,传统虚拟化技术是对硬件资源的虚拟,容器技术则是对进程的虚拟,从而可提供更轻量级的虚拟化,实现进程和资源的隔离。
[0004] 单台宿主机能承载的容器数量是有限的,需要以集群的方式运行及管理跨主机的容器,教育行业应用的特点在于在同一时间段申请使用容器的人数极多,而现有容器集群调度方法只提供以集群节点的CPU和内存为调度依据,没有考虑以下情况:集群节点资源配置互相之间是有差异的,当多用户并发申请容器时,调度结果可能会将多个容器分配到同一个节点,这导致了单个节点短时间内创建容器过多,无法充分利用集群优势,在业务端表现为用户请求的响应时间变长。

发明内容

[0005] 本发明克服了上述现有技术的不足,提供一种针对教育桌面云应用的容器集群调度方法及平台,本发明通过加入了并发排序阶段,并结合节点的计算资源得分共同选择出一个综合考虑资源与并发的节点,从而提高了业务响应的效率。
[0006] 本发明的技术方案:
[0007] 技术方案一
[0008] 一种针对教育桌面云应用的容器集群调度方法,包括以下步骤:
[0009] 步骤a、根据教育桌面云应用的特征,设置一个集中式存储系统,记录容器创建请求调度信息;
[0010] 步骤b、通过Agent机制采集每个节点的内存资源和CPU资源,Agent与Server使用心跳机制将信息及自身健康状况定时同步到Server;
[0011] 步骤c、预设节点并发创建容器数目的最大值和启动并发排序过程的容器数目,供用户能够根据节点主机的不同分别自定义设置;
[0012] 步骤d、当Server收到创建容器的请求时,Server对容器进行调度,进行过滤可用节点阶段,过滤可用节点阶段根据节点健康状况,申请创建容器请求所需的内存资源与CPU资源,节点剩余内存资源与CPU资源对节点进行过滤,如果节点剩余资源满足创建容器所需要的资源,则将其放入候选列表;
[0013] 步骤e、遍历候选列表,通过集中式存储系统查询每个节点当前正在创建的容器数目,如果正在创建的容器数目不小于设置的允许并发创建容器的数目的最大值,则将其从候选列表中移出,这一阶段候选列表输出的结果将作为下一阶段的输入;
[0014] 步骤f、进行并发排序阶段,判断是否选出节点,若是,则方法结束;若否,则进行资源排序阶段,选出节点,方法结束。
[0015] 进一步地,所述调度信息包括容器调度到哪个节点、容器的实时状态、以及容器创建的起止时间与创建结果。
[0016] 进一步地,所述并发排序阶段对候选列表中的节点进行排序,排名最高的节点作为最终进行调度的节点;
[0017] 两个节点排序的规则决定于节点当前正在创建的容器数目和启动并发排序过程的容器数目,如果两个节点当前正在创建的容器数目均小于启动并发排序过程的容器数目,则在此阶段无法判断两个节点的次序;
[0018] 如果一个节点当前正在创建的容器数目小于启动并发排序过程的容器数目,另一个节点当前正在创建的容器数目大于启动并发排序过程的容器数目,则当前正在创建的容器数目小于启动并发排序过程的容器数目的节点排名高于另一个节点;
[0019] 如果两个节点当前正在创建的容器数目均大于启动并发排序过程的容器数目,则分别对节点进行求差,使用预设节点并发创建容器的数目的最大值减去启动并发排序过程的容器数目,差值大的节点排名高于另一个节点。
[0020] 进一步地,所述资源排序阶段对并发排序阶段无法排序的节点进行排序,对每个节点上已经调度运行的所有请求所需的cpu资源和memory资源进行求和,使用如下公式对节点进行打分,空闲资源越多的节点分数越高;
[0021] score=cpu((capacity-sum(requested))10/capacity)+
[0022] memory((capacity-sum(requested))10/capacity)
[0023] 为避免一个节点上cpu被大量分配、而memory大量剩余的情况,使用如下公式对分数进行均衡,每种资源的Fraction的定义是请求的资源/节点上的可用资源,variance算法计算每两种资源Fraction之间的“距离”,而最后分数高的是资源Fraction差距小的节点;
[0024] score=10-variance(cpuFraction,memoryFraction,volumeFraction)*10[0025] 分数越高的排名则越高,选取排名最高的节点作为调度的节点返回。
[0026] 技术方案二
[0027] 一种实现技术方案一所述一种针对教育桌面云应用的容器集群调度方法的调度平台,包括调度系统、容器群集、业务端、接入模和配置模块;所述调度系统包括Server节点模块、Agent模块和zookeeper模块;所述接入模块依次与配置模块、业务端通信;所述业务端的输出端与Server节点模块通信,所述Server节点模块与容器群集通信,所述容器集群每个节点上部署Agent模块与Server节点模块通信,所述Server节点模块中部署调度器,所述Server节点模块和容器群集均与zookeeper模块通信;
[0028] 所述Server节点模块用于调度管理监控整个集群节点;
[0029] 所述Agent模块用于与Server通信,汇报所在节点的状况,接受Server节点模块的命令并与所在主机容器运行时交互,采集的所在节点的资源;
[0030] 所述接入模块用于提供多种模式包括图形界面供终端用户直接使用及开放API供第三方应用接入;
[0031] 所述配置模块用于供使用者对可选参数如并发创建容器的数目的最大值、启动并发排序过程的容器数目及动态过滤条件阈值进行配置。
[0032] 进一步地,所述采集的所在节点的资源包括中央处理器、内存、磁盘和端口的资源。
[0033] 进一步地,所述Agent模块若与Server模块的连接失败,则Agent模块所在的节点是失效的。
[0034] 本发明相对于现有技术具有以下有益效果:
[0035] 本发明提供了一种针对教育桌面云应用的容器集群调度方法及平台,本方法通过加入了并发排序阶段,并结合节点的计算资源得分共同选择出一个综合考虑资源与并发的节点,从而提高了新建容器的速率,从而提高了业务响应的效率。
[0036] 本平台通过结合本发明的容器集群调度方法,能够满足教育应用特点的调度需求,提高了业务的响应速度。附图说明
[0037] 图1是本发明流程图
[0038] 图2是本发明结构图。

具体实施方式

[0039] 以下将结合附图对本发明进行详细说明。
[0040] 具体实施方式一
[0041] 一种针对教育桌面云应用的容器集群调度方法,如图1所示,包括以下步骤:
[0042] 步骤a、根据教育桌面云应用的特征,设置一个集中式存储系统,记录容器创建请求调度信息;
[0043] 步骤b、通过Agent机制采集每个节点的内存资源和CPU资源,Agent与Server使用心跳机制将信息及自身健康状况定时同步到Server;
[0044] 步骤c、预设节点并发创建容器数目的最大值和启动并发排序过程的容器数目,供用户能够根据节点主机的不同分别自定义设置;
[0045] 步骤d、当Server收到创建容器的请求时,Server对容器进行调度,进行过滤可用节点阶段,过滤可用节点阶段根据节点健康状况,申请创建容器请求所需的内存资源与CPU资源,节点剩余内存资源与CPU资源对节点进行过滤,如果节点剩余资源满足创建容器所需要的资源,则将其放入候选列表;
[0046] 步骤e、遍历候选列表,通过集中式存储系统查询每个节点当前正在创建的容器数目,如果正在创建的容器数目不小于设置的允许并发创建容器的数目的最大值,则将其从候选列表中移出,这一阶段候选列表输出的结果将作为下一阶段的输入;
[0047] 步骤f、进行并发排序阶段,判断是否选出节点,若是,则方法结束;若否,则进行资源排序阶段,选取排名最高的节点作为创建容器的主机,方法结束。
[0048] 具体地,所述调度信息包括容器调度到哪个节点、容器的实时状态、以及容器创建的起止时间与创建结果。
[0049] 具体地,所述并发排序阶段对候选列表中的节点进行排序,排名最高的节点作为最终进行调度的节点;
[0050] 两个节点排序的规则决定于节点当前正在创建的容器数目和启动并发排序过程的容器数目,如果两个节点当前正在创建的容器数目均小于启动并发排序过程的容器数目,则在此阶段无法判断两个节点的次序;
[0051] 如果一个节点当前正在创建的容器数目小于启动并发排序过程的容器数目,另一个节点当前正在创建的容器数目大于启动并发排序过程的容器数目,则当前正在创建的容器数目小于启动并发排序过程的容器数目的节点排名高于另一个节点;
[0052] 如果两个节点当前正在创建的容器数目均大于启动并发排序过程的容器数目,则分别对节点进行求差,使用预设节点并发创建容器的数目的最大值减去启动并发排序过程的容器数目,差值大的节点排名高于另一个节点。
[0053] 具体地,所述资源排序阶段对并发排序阶段无法排序的节点进行排序,对每个节点上已经调度运行的所有请求所需的cpu资源和memory资源进行求和,使用如下公式对节点进行打分,空闲资源越多的节点分数越高;
[0054] score=cpu((capacity-sum(requested))10/capacity)+
[0055] memory((capacity-sum(requested))10/capacity)
[0056] 其中score为节点的分值,cpu为cpu资源占的分值,memory为内存资源占的分值,capacity为节点的全部资源,sum(requested)为节点已经调度运行的所有请求所需的资源之和。
[0057] 为避免一个节点上cpu被大量分配、而memory大量剩余的情况,使用如下公式对分数进行均衡,每种资源的Fraction的定义是请求的资源/节点上的可用资源,variance算法计算每两种资源Fraction之间的“距离”,而最后分数高的是资源Fraction差距小的节点;
[0058] score=10-variance(cpuFraction,memoryFraction,volumeFraction)*10[0059] 其中,cpuFraction是请求的cpu资源/节点上的可用cpu资源,memoryFraction是请求的内存资源/节点上的可用内存资源,volumeFraction是请求的磁盘资源/节点上的可用磁盘资源,variance计算cpu,内存,磁盘资源两两之间的距离。
[0060] 分数越高的排名则越高,选取排名最高的节点作为调度的节点返回。
[0061] 具体实施方式二
[0062] 一种实现具体实施方式一所述一种针对教育桌面云应用的容器集群调度方法的调度平台,如图2所示,包括调度系统、容器群集、业务端、接入模块和配置模块;所述调度系统包括Server节点模块、Agent模块和zookeeper模块;所述接入模块依次与配置模块、业务端通信;所述业务端的输出端与Server节点模块通信,所述Server节点模块与容器群集通信,所述容器集群每个节点上部署Agent模块与Server节点模块通信,所述Server节点模块中部署调度器,所述Server节点模块和容器群集均与zookeeper模块通信;
[0063] 所述Server节点模块用于调度管理监控整个集群节点;
[0064] 所述Agent模块用于与Server通信,汇报所在节点的状况,接受Server节点模块的命令并与所在主机容器运行时交互,采集的所在节点的资源;
[0065] 所述接入模块用于提供多种模式包括图形界面供终端用户直接使用及开放API供第三方应用接入;
[0066] 所述配置模块用于供使用者对可选参数如并发创建容器的数目的最大值、启动并发排序过程的容器数目及动态过滤条件阈值进行配置。
[0067] 具体地,所述采集的所在节点的资源包括中央处理器(Central Processing Unit,简称CPU)、内存、磁盘和端口的资源。
[0068] 具体地,所述Agent模块若与Server模块的连接失败,则Agent模块所在的节点是失效的。
[0069] 工作原理:调度系统使用zookeeper模块保存集群节点容器创建请求调度信息,节点创建容器状态记录在集中式存储系统consul中,当业务端请求容器创建时,Server节点模块接收到请求,将请求转发给调度器处理,调度器首先根据Agent模块汇总的节点信息对节点进行过滤,排除资源不满足需求的节点。
[0070] 调度器将过滤后得到的节点放入候选列表,通过zookeeper模块查询集群节点当前创建请求的信息和采集的节点资源信息,进行并发排序阶段,如果这一阶段能够选取到节点,则将节点返回给调用方进行处理。如果未选取到节点,则进行节点计算资源排序阶段,选取到最佳的节点后,使用信号量进行并发限制,将请求转发给所选节点对应的Agent模块进行处理,Agent模块收到请求后,在本机调用容器运行时,启动容器,启动完成后将启动结果返回给Server节点模块。
[0071] 所述接入模块提供可视化网页,当用户点击网页上的添加容器按钮及填入适当的容器目标信息时,从该集群的节点中按照本发明的方法选择一个节点,节点选择出来后,将创建L容器的请求发送给该节点,节点收到请求,会根据容器的创建请求信息,调用Docker运行时的命令。
[0072] 当用户点击网页上的添加主机按钮及填入适当的主机信息时,平台会连接到指定主机上,在主机内启动一个Agent模块,用于监控管理当前主机的Docker环境,Agent模块会与平台建立心跳连接,如果一段时间内失去心跳,则平台认为该节点当前不可用,在选取节点时会排除该节点。
[0073] 当用户点击网页上的删除主机按钮时,平台会首先通过Agent模块停止掉该主机上所有的容器,最后停止Agent模块,并将该主机存储在Zookeeper模块和平台数据库中的信息删除掉。
[0074] 当用户点击网页上与容器相关的其它按钮时,平台会将对容器进行的操作转发给容器所在主机的Agent模块上,由Agent模块与Docker运行时进行交互完成任务。
[0075] 本发明通过接入模块能够集成到第三方应用高效实验平台中,第三方应用高校实验平台是一个针对高校计算机类专业的在线实验平台,为用户提供了全时段、跨区域、多终端接入的在线学习环境,学习环境是基于容器实现的图形化界面。第三方应用通过本发明提供的对外公开接口创建容器,用户进入平台学习环境页面时,第三方应用调用对外公开接口发起一个申请容器的请求,容器调度系统按照本发明提供的容器调度方法进行选择节点创建容器,最终将容器信息返回给第三方应用。通过本发明提供的方法和对外公开接口,第三方应用能够高效稳定的提供给用户申请的容器,降低了业务有损的险。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈