一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种容器集群服务动态管理方法及系统与流程

2023-02-01 23:26:28 来源:中国专利 TAG:


1.本发明涉及云计算技术领域,具体地说是一种容器集群服务动态管理方法及系统。


背景技术:

2.虚拟化技术已经成为云计算领域中不可或缺的一部分。容器化技术作为一种轻量虚拟化技术,相较于虚拟化方式,可以更加细粒度地利用资源。伴随着以docker和kubernetes为代表的容器工具迅速发展,容器化技术可以快速构建容器,所提供的标准镜像可以快速构建容器,实现秒级启动,在版本保存上更加轻便和低成本。
3.docker和kubernetes的资源管理机制都提供了默认服务调度设置和手动服务调度配置这两种途径,用户在创建容器时可以使用默认服务调度配置,也可以根据服务需求cpu、内存和i/o资源等,选择节点调度,但是无法在运行过程中根据应用容器的实际资源需求来调整服务调度。kubernetes对所有容器服务的调度采用打分制度,不区分其中运行的应用类型。然而,在实时型应用容器和批处理型应用容器同时运行时,可能会由于资源分配不足或者不平衡导致实时型应用的性能无法达到服务要求;在服务强度(每秒最大请求数)变化时,无法及时动态调整。另外,不限制容器实例的增加,其占用的总资源可能会超过物理机资源限制,使得一些正常运行的容器实例由于资源不足而异常中断;当运行中的容器实例都偏向使用某种单一资源时,会造成该资源竞争激烈,而其他资源都处于空闲状态的现象,导致物理机的整体资源利用率比较低。


技术实现要素:

4.本发明的技术任务是针对以上不足之处,提供一种容器集群服务动态管理方法及系统,能够解决当运行中的容器实例都偏向使用某种单一资源时,会造成该资源竞争激烈,而其他资源都处于空闲状态的现象,导致物理机的整体资源利用率比较低的问题。
5.本发明解决其技术问题所采用的技术方案是:
6.一种容器集群服务动态管理方法,基于信息熵方法实现加权分析服务动态调度机制,包括监控模块和调度模块,
7.监控模块通过插件采集集群节点和工作负载的资源剩余和使用情况,当工作负载某一资源使用情况突增,超过设定阈值,则启动调度模块;
8.调度模块通过基于信息熵的算法计算触发启动调度模块的工作负载与集群节点的契合度,对运行中的工作负载进行动态调度,包括基于信息熵的原理计算出适合工作负载调度的节点以及工作负载调度到指定节点,算法子模块计算各个节点剩余资源与所述工作负载使用资源的相似度,相似度最小的节点则是需要调度的节点。相比kubernetes本身的调度方法,负载会优先调度到和其可利用资源相似的节点,而不是剩余资源最多和可利用资源分布最均匀的节点。
9.把信息中排除了冗余后的平均信息量称为“信息熵”,该方法基于信息熵实现容器
集群服务监控和动态调度,解决运行中工作负载的动态调度问题,弹性伸缩调度负载,负载占有资源持续上升时,进行自适应扩容,并进行容器的重新调度,解决当运行中的容器实例都偏向使用某种单一资源时,会造成该资源竞争激烈,而其他资源都处于空闲状态的现象,导致物理机的整体资源利用率比较低的问题。
10.进一步的,监控模块采用list-watch的缓存机制,当工作负载某一资源使用情况突增超过了预先设置好的阈值,则触发list-watch机制,调度模块开始工作。
11.优选的,所述监控模块包括list-watch缓存机制和agent触发器,
12.list-watch缓存机制从监控中心获取节点资源剩余情况和工作负载资源使用情况;当list-watch缓存机制监控到监控中心节点和工作负载资源使用情况发生变化时,则触发agent触发器的触发机制,触发机制根据具体资源使用情况变化大小判断是否超出次环境设置的阈值,超出阈值时,则触发工作负载的重新调度机制,请求调度模块,进行工作负载的动态调度。
13.进一步的,所述算法子模块计算各个节点剩余资源与所述工作负载使用资源的相似度,其实现过程如下:
14.以各个节点资源使用情况为一个数据集,设数据集规格为n
×
c,其中n代表节点数,c代表资源类型数;数据集中资源数据的不均匀性越大,资源数据的信息熵就越大;
15.计算每个资源类型的权重wk:
16.计算资源类型的信息熵,则
[0017][0018]
其中p(a
k,t
)是属性值a
k,t
的概率,
[0019]
量化资源类型的重要性为:
[0020][0021]
将公式(2)带入到各个节点和工作负载资源使用情况的计算,得出最适合工作负载调度的节点。
[0022]
该调度算法在建模的时候,加入时间元素,从时间轴合理预测了节点资源使用情况,计算出节点使用资源情况是持续上升,还是周期往复,合理预测节点资源未来一段时间使用情况,进行预测试调度。
[0023]
优选的,所述资源使用情况包括各个节点cpu、内存、存储、磁盘使用、网络请求资源使用情况。
[0024]
本发明还要求保护一种容器集群服务动态管理系统,基于容器集群设计controller,controller包括监控模块和调度模块,
[0025]
监控模块通过插件采集集群节点和工作负载的资源剩余和使用情况,当工作负载某一资源使用情况突增,超过设定阈值,则启动调度模块;
[0026]
调度模块通过基于信息熵的算法计算触发启动调度模块的工作负载与集群节点
的契合度,对运行中的工作负载进行动态调度,包括基于信息熵的原理计算出适合工作负载调度的节点以及工作负载调度到指定节点,算法子模块计算各个节点剩余资源与所述工作负载使用资源的相似度,相似度最小的节点则是需要调度的节点。
[0027]
进一步的,所述监控模块包括list-watch缓存机制和agent触发器,
[0028]
list-watch缓存机制从监控中心获取节点资源剩余情况和工作负载资源使用情况;当list-watch缓存机制监控到监控中心节点和工作负载资源使用情况发生变化时,则触发agent触发器的触发机制,所述触发机制根据具体资源使用情况变化大小判断是否超出此环境设置的阈值,超出阈值时,则触发工作负载的重新调度机制,请求调度模块,进行工作负载的动态调度。
[0029]
优选的,所述调度模块包括算法子模块和调度器,算法子模块基于信息熵的原理计算出适合工作负载调度的节点,调度器负责把工作负载调度到指定节点。
[0030]
进一步的,所述算法子模块计算各个节点剩余资源与所述工作负载使用资源的相似度,其实现过程如下:
[0031]
以各个节点资源使用情况为一个数据集,设数据集规格为n
×
c,其中n代表节点数,c代表资源类型数;数据集中资源数据的不均匀性越大,资源数据的信息熵就越大;
[0032]
计算每个资源类型的权重wk:
[0033]
计算资源类型的信息熵,则
[0034][0035]
其中p(a
k,t
)是属性值a
k,t
的概率,
[0036]
量化资源类型的重要性为:
[0037][0038]
将公式(2)带入到各个节点和工作负载资源使用情况的计算,得出最适合工作负载调度的节点。
[0039]
其中,所述资源使用情况包括各个节点cpu、内存、存储、磁盘使用、网络请求资源使用情况。
[0040]
本发明还要求保护一种容器集群服务动态管理装置,该装置能够实现上述的容器集群服务动态管理方法。
[0041]
本发明的一种容器集群服务动态管理方法及系统与现有技术相比,具有以下有益效果:
[0042]
该方法基于信息熵实现容器集群服务监控和动态调度,解决运行中工作负载的动态调度问题,相比kubernetes本身的调度方法,负载会优先调度到和其可利用资源相似的节点,而不是剩余资源最多和可利用资源分布最均匀的节点;
[0043]
能够实现弹性伸缩调度负载,负载占有资源持续上升时,进行自适应扩容,并进行容器的重新调度;
[0044]
调度算法在建模的时候,加入时间元素,从时间轴合理预测了节点资源使用情况,计算出节点使用资源情况是持续上升,还是周期往复,合理预测节点资源未来一段时间使用情况,进行预测试调度。
附图说明
[0045]
图1是本发明实施例提供的容器集群服务动态管理方法架构示图;
[0046]
图2是本发明实施例提供的监控模块的流程示图;
[0047]
图3是本发明实施例提供的调度模块的流程示图。
具体实施方式
[0048]
下面结合附图和具体实施例对本发明作进一步说明。
[0049]
本发明实施例提供了一种容器集群服务动态管理方法,基于容器集群设计一个controller,controller包括监控模块和调度模块,
[0050]
监控模块通过插件采集集群节点和工作负载的资源剩余和使用情况,采用list-watch的缓存机制,当工作负载某一资源使用情况突增超过了预先设置好的阈值,则触发list-watch机制,调度模块开始工作;
[0051]
调度模块通过基于信息熵的算法计算触发list-watch机制的工作负载与集群节点的契合度,对运行中的工作负载进行动态调度,防止某一资源竞争激烈,导致其他资源空闲的问题。包括基于信息熵的原理计算出适合工作负载调度的节点以及工作负载调度到指定节点,算法子模块计算各个节点剩余资源与所述工作负载使用资源的相似度,相似度最小的节点则是需要调度的节点。相比kubernetes本身的调度方法,负载会优先调度到和其可利用资源相似的节点,而不是剩余资源最多和可利用资源分布最均匀的节点。
[0052]
如图2所示,所述监控模块包括list-watch缓存机制和agent触发器,
[0053]
list-watch缓存机制从监控中心获取节点资源剩余情况和工作负载资源使用情况,主要监控cpu、内存、存储、i/o等资源使用情况;当list-watch缓存机制监控到监控中心节点和工作负载资源使用情况发生变化时,则触发agent触发器的触发机制,触发机制根据具体资源使用情况变化大小判断是否超出次环境设置的阈值,超出阈值时,则触发工作负载的重新调度机制,请求controller的调度模块,进行工作负载的动态调度。
[0054]
如图3所示,调度模块包括算法子模块和调度器,所述算法子模块计算各个节点剩余资源与所述工作负载使用资源的相似度,相似度最小的节点则是需要调度的节点。
[0055]
引入基于信息熵的相似度算法对各个节点和工作负载此对资源利用情况进行建模分析,具体建模思路如下:
[0056]
各个节点资源使用情况是不统一,每种类型资源对工作负载运行的影响程度也是不同,所以引入信息熵的概念应用到权重的计算上。这里我们以各个节点cpu、内存、存储、磁盘使用、网络请求等资源使用情况为一个数据集,假设数据集规格为n
×
c(n代表节点数,c代表资源类型数)。数据集中资源数据的不均匀性越大,资源数据的信息熵就越大。
[0057]
现在,我们讨论如何计算每个资源类型的权重wk,根据信息熵公式可以计算资源类型的信息熵,定义如下:
[0058][0059]
这里p(a
k,t
)是属性值a
k,t
的概率,分子表示中的资源使用值与a
k,t
相等的相似度。n是数据集中的节点总数。观察公式(1),可以注意到如果中值的数值rk非常大,那么资源类型的信息熵也会很高。这和实际情况是不一样的。为了降低太多不同值甚至唯一值对资源使用情况的影响,算法重新定义了资源类型的信息熵
[0060][0061]
因此,量化资源类型的重要性为:
[0062][0063]
将公式(3)带入到各个节点和工作负载资源使用情况的计算,得出最适合工作负载调度的节点。
[0064]
该调度算法在建模的时候,加入时间元素,从时间轴合理预测了节点资源使用情况,计算出节点使用资源情况是持续上升,还是周期往复,合理预测节点资源未来一段时间使用情况,进行预测试调度。
[0065]
本发明实施例还提供一种容器集群服务动态管理系统,基于容器集群设计controller,controller包括监控模块和调度模块,
[0066]
监控模块通过插件采集集群节点和工作负载的资源剩余和使用情况,当工作负载某一资源使用情况突增,超过设定阈值,则启动调度模块。
[0067]
所述监控模块包括list-watch缓存机制和agent触发器,
[0068]
list-watch缓存机制从监控中心获取节点资源剩余情况和工作负载资源使用情况;当list-watch缓存机制监控到监控中心节点和工作负载资源使用情况发生变化时,则触发agent触发器的触发机制,所述触发机制根据具体资源使用情况变化大小判断是否超出此环境设置的阈值,超出阈值时,则触发工作负载的重新调度机制,请求调度模块,进行工作负载的动态调度。
[0069]
调度模块通过基于信息熵的算法计算触发启动调度模块的工作负载与集群节点的契合度,对运行中的工作负载进行动态调度,包括基于信息熵的原理计算出适合工作负载调度的节点以及工作负载调度到指定节点,算法子模块计算各个节点剩余资源与所述工作负载使用资源的相似度,相似度最小的节点则是需要调度的节点。
[0070]
所述调度模块包括算法子模块和调度器,算法子模块基于信息熵的原理计算出适合工作负载调度的节点,调度器负责把工作负载调度到指定节点。
[0071]
算法子模块计算各个节点剩余资源与所述工作负载使用资源的相似度,其实现过程如下:
[0072]
以各个节点cpu、内存、存储、磁盘使用、网络请求等资源使用情况为一个数据集,设数据集规格为n
×
c,其中n代表节点数,c代表资源类型数;数据集中资源数据的不均匀性
越大,资源数据的信息熵就越大;
[0073]
计算每个资源类型的权重wk:
[0074]
计算资源类型的信息熵,则
[0075][0076]
其中p(a
k,t
)是属性值a
k,t
的概率,
[0077]
量化资源类型的重要性为:
[0078][0079]
将公式(2)带入到各个节点和工作负载资源使用情况的计算,得出最适合工作负载调度的节点。
[0080]
本发明实施例还提供了一种容器集群服务动态管理装置,该装置能够实现上述实施例中所述的容器集群服务动态管理方法。
[0081]
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
[0082]
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献