一种基于聚类分析的容器多维资源均衡调度方法及系统

文档序号:33639827发布日期:2023-03-29 01:45阅读:32来源:国知局
一种基于聚类分析的容器多维资源均衡调度方法及系统

1.本发明属于计算机的容器虚拟化技术领域,具体涉及一种基于聚类分析的容器多维资源均衡调度方法及系统。


背景技术:

2.近年来,容器虚拟化技术正逐渐成为云计算领域的研究热点,被广泛应用于云计算平台和数据中心的资源管理、系统运维和软件部署中。kubernetes等容器编排系统旨在管理大规模集群中的容器化应用,能够在数千台计算机上部署、运行数十万个作业。
3.在数据中心集群中,工作节点拥有多种资源,如cpu、内存、网络、磁盘等。资源调度机制负责动态管理计算、内存等资源,是kubernetes集群中提高集群资源利用率时需要考虑的重要问题。2021年腾讯云对1000多云客户进行了资源利用情况分析,发现计算节点的平均资源利用率仅为10%左右,大量的资源碎片是造成数据中心资源利用率低的重要因素之一。资源碎片产生的主要原因是由于不同类型的业务容器对资源的需求不同,导致容器的资源请求与物理机的资源匹配度低,例如,有的业务属于cpu密集型任务,对cpu资源消耗较多,而有的业务属于内存密集型任务,对内存资源消耗较多,当一个节点上已调度的容器多为cpu密集型时,占用的cpu资源较多,即使该节点的内存利用率较低,内存资源还很充足,该节点也可能会因为cpu资源不足而无法调度新的容器,此时该节点的内存资源就得不到使用而浪费,成为资源碎片。在容器调度过程中,将资源需求不同的应用部署到同一节点上能减少节点内部资源的不平衡,减少资源碎片的数量,从而可以更充分地利用资源,提升集群的总体资源利用率。国内外学者已围绕容器集群的资源利用率、资源成本、维护开销等开展了大量研究,但在容器多维资源均衡调度方面的研究还比较少,且现有方法多为仅考虑cpu和内存两种资源,或仅考虑网络流量的负载均衡,对于cpu、内存、网络、磁盘等资源综合考虑进行调度的方法较少。


技术实现要素:

4.本发明要解决的技术问题:针对不同类型业务容器对资源需求不同导致的节点资源碎片问题,综合考虑待调度容器的资源请求和节点的当前资源使用情况,提出一种基于聚类分析的容器多维资源均衡调度方法及系统,本发明能够降低节点资源的不均衡度,减少资源碎片数量,从而提升集群的资源利用率。
5.为了解决上述技术问题,本发明采用的技术方案为:
6.一种基于聚类分析的容器多维资源均衡调度方法,包括:
7.1)确定待调度容器队列中的当前容器;
8.2)执行预选调度过程:针对集群中所有工作节点进行预选调度,以过滤不满足当前容器的调度条件的工作节点、得到所有满足当前容器的调度条件的候选工作节点集合;
9.3)获取候选工作节点集合中每一个候选工作节点的当前资源使用率;
10.4)使用标准化欧式距离分别计算当前容器的资源请求、候选工作节点集合中的各
个候选工作节点的当前资源使用率二者的资源互补度;
11.5)根据资源互补度对候选工作节点集合中的各个候选工作节点进行评分,选择评分最高的节点作为当前容器对应的目标节点进行当前容器和工作节点的绑定操作。
12.可选地,步骤2)中进行预选调度包括:针对每一个工作节点,判断包括该工作节点可调度、该工作节点的可用资源满足当前容器的请求量、该工作节点的名称与当前容器指定的工作节点名称一致、该工作节点的标签包含当前容器的标签选择器指定的标签、该工作节点的可用端口满足当前容器需求、该工作节点挂载的存储卷和当前容器配置文件中的存储卷不冲突在内的各条硬约束条件是否成立,若硬约束条件全部成立则判定该工作节点为满足当前容器的调度条件的候选工作节点,否则判定该工作节点不满足当前容器的调度条件。
13.可选地,步骤3)中的当前资源使用率包括cpu、内存、带宽和磁盘中至少一种资源的当前使用率。
14.可选地,步骤4)包括:
15.4.1)针对当前容器的资源请求进行标准化处理;
16.4.2)分别计算当前容器的资源请求、候选工作节点集合中的各个候选工作节点的当前资源使用率二者的资源相异度;
17.4.3)根据资源相异度计算当前容器的资源请求、候选工作节点集合中的各个候选工作节点的当前资源使用率二者的资源互补度。
18.可选地,步骤4.1)中进行标准化处理的函数表达式为:
[0019][0020]
上式中,r

il
为针对当前容器的资源请求的第i个待调度容器的第l维资源属性值r
il
的标准化处理结果,min(r
l
)为所有待调度容器的第l维资源属性r
l
的最小值,max(r
l
)为所有待调度容器的第l维资源属性r
l
的最大值,标准化处理结果r

il
的值在[0,1]区间。
[0021]
可选地,步骤4.2)中资源相异度的计算函数表达式为:
[0022][0023]
上式中,d(pi,nj)为用于表示资源相异度的当前容器的资源请求pi和第j个候选工作节点的当前资源使用率nj之间的欧式距离,其最大值为其值越大资源相异度越大;当前容器的资源请求pi的表达式为:pi={r
i1
,r
i2
,

,r
is
},其中r
i1
~r
is
分别为当前容器对第1~s种资源的请求量,s为资源的总维数;第j个候选工作节点的当前资源使用率nj的表达式为:nj={u
j1
,u
j2
,

,u
js
},其中u
j1
~u
js
分别为第j个候选工作节点的中第1~s种资源的当前资源使用率,u
jl
为第j个候选工作节点的中第l种资源的当前资源使用率。
[0024]
可选地,步骤4.3)中资源互补度的计算函数表达式为:
[0025][0026]
上式中,corr(pi,nj)表示当前容器的资源请求pi和第j个候选工作节点的当前资源使用率nj之间的资源互补度,资源互补度的值在[0,1]之间,资源互补度的值越大表示资源互补度越高,当前容器越适合调度到第j个候选工作节点上;d(pi,nj)表示当前容器的资源请求pi和第j个候选工作节点的当前资源使用率nj之间的资源相异度。
[0027]
可选地,步骤5)中根据资源互补度对候选工作节点集合中的各个候选工作节点进行评分的函数表达式为:
[0028]
score(nj)=corr(pi,nj)*maxnodescore,
[0029]
上式中,score(nj)表示第j个候选工作节点的得分,corr(pi,nj)表示当前容器的资源请求pi和第j个候选工作节点的当前资源使用率nj之间的资源互补度,maxnodescore为得分的最大值。
[0030]
此外,本发明还提供一种基于聚类分析的容器多维资源均衡调度系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述基于聚类分析的容器多维资源均衡调度方法。
[0031]
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行所述基于聚类分析的容器多维资源均衡调度方法。
[0032]
和现有技术相比,本发明主要有以下优点:本发明方法包括过滤不满足当前容器的调度条件的工作节点得到候选工作节点集合,获取候选工作节点集合中每一个候选工作节点的当前资源使用率;使用标准化欧式距离分别计算当前容器的资源请求、候选工作节点集合中的各个候选工作节点的当前资源使用率二者的资源互补度,实现了基于标准化欧式距离的聚类分析;根据资源互补度对候选工作节点集合中的各个候选工作节点进行评分,选择评分最高的节点作为当前容器对应的目标节点进行当前容器和工作节点的绑定操作,本发明充分考虑容器的资源需求和候选工作节点的当前资源状态,为待调度容器选择资源互补度最高的节点,使节点的各维资源使用更加均衡,减少了资源碎片的数量,提高了集群的资源利用率。
附图说明
[0033]
图1为本发明实施例一方法的基本流程示意图。
[0034]
图2为本发明实施例一方法的详细流程示意图。
具体实施方式
[0035]
实施例一:
[0036]
为了使本发明的目的、技术方案及优点更加清楚明白,以下将以kubernetes容器编排系统为例,结合附图和实施例对本发明进行进一步详细说明。
[0037]
需要说明的是,本发明基于聚类分析的容器多维资源均衡调度方法及系统并不依赖于kubernetes容器编排系统,其同样也可以适用于其它容器编排系统。本发明基于聚类分析的容器多维资源均衡调度方法及系统调度的对象当前容器可以是单个容器,也可以是多个容器的集合,例如对于kubernetes容器编排系统而言,可以调度的最小单元不是容器,而是容器集合pod,每个pod包含一个或多个逻辑相关的容器。kubernetes调度器负责按照特定的调度策略,为集群中待调度的pod选择合适的工作节点。
[0038]
如图1所示,本实施例基于聚类分析的容器多维资源均衡调度方法,包括:
[0039]
1)确定待调度容器队列中的当前容器,本实施例具体为从确定待调度pod队列中的pod;
[0040]
2)执行预选调度过程:针对集群中所有工作节点进行预选调度,以过滤不满足当前容器的调度条件的工作节点、得到所有满足当前容器的调度条件的候选工作节点集合;
[0041]
3)获取候选工作节点集合中每一个候选工作节点的当前资源使用率;
[0042]
4)使用标准化欧式距离分别计算当前容器的资源请求、候选工作节点集合中的各个候选工作节点的当前资源使用率二者的资源互补度;
[0043]
5)根据资源互补度对候选工作节点集合中的各个候选工作节点进行评分,选择评分最高的节点作为当前容器对应的目标节点进行当前容器和工作节点的绑定操作。
[0044]
本实施例中,步骤2)中进行预选调度包括:针对每一个工作节点,判断包括该工作节点可调度、该工作节点的可用资源满足当前容器的请求量、该工作节点的名称与当前容器指定的工作节点名称一致、该工作节点的标签包含当前容器的标签选择器指定的标签、该工作节点的可用端口满足当前容器需求、该工作节点挂载的存储卷和当前容器配置文件中的存储卷不冲突在内的各条硬约束条件是否成立,若硬约束条件全部成立则判定该工作节点为满足当前容器的调度条件的候选工作节点,否则判定该工作节点不满足当前容器的调度条件。
[0045]
本实施例中,步骤3)中的当前资源使用率包括cpu、内存、带宽和磁盘中至少一种资源的当前使用率。
[0046]
如图1和图2所示,本实施例中步骤4)包括:
[0047]
4.1)针对当前容器的资源请求进行标准化处理;
[0048]
4.2)分别计算当前容器的资源请求、候选工作节点集合中的各个候选工作节点的当前资源使用率二者的资源相异度;
[0049]
4.3)根据资源相异度计算当前容器的资源请求、候选工作节点集合中的各个候选工作节点的当前资源使用率二者的资源互补度。
[0050]
本实施例中,步骤4.1)中进行标准化处理的函数表达式为:
[0051][0052]
上式中,r

il
为针对当前容器的资源请求的第i个待调度容器的第l维资源属性值r
il
的标准化处理结果,min(r
l
)为所有待调度容器的第l维资源属性r
l
的最小值,max(r
l
)为所有待调度容器的第l维资源属性r
l
的最大值,标准化处理结果r

il
的值在[0,1]区间。
[0053]
本实施例中,为了同时考虑待调度容器的资源请求和工作节点的资源使用情况,计算二者之间的资源互补度,可以借助聚类分析中常用的相异度的概念。数据对象的相异性根据描述对象的属性值评估,是两个对象差异程度的数值度量。如果待调度容器的资源请求和工作节点资源使用率的相异度越高,则表示二者的资源互补度越高,容器调度到该节点后其多维资源使用率通常会越均衡,反之,容器调度到该节点后通常会进一步加剧其资源使用率的不均衡。在经典的聚类分析算法中,常用“距离”来描述数据对象之间的相异度,两个对象之间的“距离”越远,相异度越高,相反,对象之间的“距离”越近,相异性越低。其中欧氏距离是最常用的数据对象间距离度量方法,同时,为了解决属性值相差较大带来的问题,避免具有较大值域的变量左右计算结果,需要标准化数据对象,消除不同属性特征之间的差异,使得每一个属性对距离的贡献率相同。
[0054]
本实施例中,步骤4.2)中资源相异度的计算函数表达式为:
[0055][0056]
上式中,d(pi,nj)为用于表示资源相异度的当前容器的资源请求pi和第j个候选工作节点的当前资源使用率nj之间的欧式距离,其最大值为其值越大资源相异度越大;当前容器的资源请求pi的表达式为:pi={r
i1
,r
i2
,

,r
is
},其中r
i1
~r
is
分别为当前容器对第1~s种资源的请求量,s为资源的总维数;第j个候选工作节点的当前资源使用率nj的表达式为:nj={u
j1
,u
j2
,

,u
js
},其中u
j1
~u
js
分别为第j个候选工作节点的中第1~s种资源的当前资源使用率,u
jl
为第j个候选工作节点的中第l种资源的当前资源使用率。
[0057]
本实施例中,步骤4.3)中资源互补度的计算函数表达式为:
[0058][0059]
上式中,corr(pi,nj)表示当前容器的资源请求pi和第j个候选工作节点的当前资源使用率nj之间的资源互补度,资源互补度的值在[0,1]之间,资源互补度的值越大表示资源互补度越高,当前容器越适合调度到第j个候选工作节点上;d(pi,nj)表示当前容器的资源请求pi和第j个候选工作节点的当前资源使用率nj之间的资源相异度。
[0060]
本实施例中,步骤5)中根据资源互补度对候选工作节点集合中的各个候选工作节点进行评分的函数表达式为:
[0061]
score(nj)=corr(pi,nj)*maxnodescore,
[0062]
上式中,score(nj)表示第j个候选工作节点的得分,corr(pi,nj)表示当前容器的资源请求pi和第j个候选工作节点的当前资源使用率nj之间的资源互补度,maxnodescore为得分的最大值,在kubernetes中,默认为100。
[0063]
综上所述,本实施例基于聚类分析的容器多维资源均衡调度方法针对kubernetes中不同类型业务pod对资源需求不同导致的节点资源碎片问题,提出一种基于聚类分析的多维资源均衡调度方法,即根据待调度pod的资源需求和集群工作节点的资源利用率,利用标准化欧式距离计算二者的资源互补度,本实施例方法可基于kubernetes调度框架以插件的形式实现一种优选调度策略。本实施例方法能够降低节点资源的不均衡度,减少资源碎片数量,从而提升资源的利用率。
[0064]
此外,本实施例还提供一种基于聚类分析的容器多维资源均衡调度系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行前述基于聚类分析的容器多维资源均衡调度方法。此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序用于被微处理器编程或配置以执行前述基于聚类分析的容器多维资源均衡调度方法。
[0065]
实施例二:
[0066]
本实施例与实施例一基本相同,其主要区别为步骤5)中根据资源互补度对候选工作节点集合中的各个候选工作节点进行评分的方式有所不同,本实施例中具体为采用多个调度插件分别对候选工作节点进行打分以获得第j个候选工作节点的总得分:
[0067]
scorej=ω1*score1+ω2*score2+


t
*score
t

[0068]
上式中,scorej表示第j个候选工作节点的总得分,ωi和scorei分别表示第i个优选调度算法的权重和对该节点的评分,t为调度插件的数量。最终从所有候选工作节点选择评分最高的节点作为目标节点,进行pod和节点的绑定操作。通过这种方式,可实现多种打
分方式的加权融合,以避免某一种打分方式过于单一的问题。从而,同样也可以实现根据待调度pod的资源需求和集群工作节点的资源利用率,降低节点资源的不均衡度,减少资源碎片数量,从而提升资源的利用率。
[0069]
此外,本实施例还提供一种基于聚类分析的容器多维资源均衡调度系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行前述基于聚类分析的容器多维资源均衡调度方法。此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序用于被微处理器编程或配置以执行前述基于聚类分析的容器多维资源均衡调度方法。
[0070]
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1