当前位置: 首页 > 专利查询>浙江大学专利>正文

一种基于节点负载感知的集群工作负载调度方法技术

技术编号:39414120 阅读:8 留言:0更新日期:2023-11-19 16:05
本发明专利技术公开了一种基于节点负载感知的集群工作负载调度方法,通过采集集群节点资源历史使用情况数据,得到集群节点资源使用量,并计算集群节点过去一段时间资源最大使用量。进行工作负载调度时,将工作负载的资源申请量与集群每个节点过去一段时间的资源最大使用量相加,并除以集群资源总量,得到集群节点的预调度资源使用率,最后根据集群节点预调度资源使用率,计算每个节点的分数,并且选择分数最高的节点进行调度。本发明专利技术实现了均衡集群各节点资源真实利用率,降低了高负载和低负载节点出现的概率,提升了集群节点可靠性,并且达到了提升集群整体资源利用率的目的。了提升集群整体资源利用率的目的。了提升集群整体资源利用率的目的。

【技术实现步骤摘要】
一种基于节点负载感知的集群工作负载调度方法


[0001]本专利技术涉及网络通信
,具体地,涉及一种基于节点负载感知的集群工作负载调度方法。

技术介绍

[0002]随着云计算和容器技术的蓬勃发展,以Docker为核心的容器技术已经在开发者和科技公司中迅速获得了广泛的应用。而在容器编排领域,Kubernetes则崭露头角,逐渐成为了不可或缺的工具。其丰富的企业级和生产级功能,使得它能够有效地管理大规模容器集群,实现高可用性、自动扩展和负载均衡等重要任务。因此,Kubernetes已经成为了事实上的容器编排标准,为企业提供了强大的工具,帮助他们更好地构建、部署和管理现代化的应用程序。
[0003]然而,Kubernetes的默认调度器存在一个显著的局限性,即在进行容器调度时缺乏对负载的动态感知能力。该调度器主要依赖于节点上静态资源的可用量以及用户工作负载的静态资源需求量来制定调度策略。然而,在实际运行中,工作负载的资源需求通常会随时间变化而波动,导致了集群中各个节点的资源利用不均衡问题。
[0004]这一不均衡现象可能导致一些节点承受了过高的资源负载,从而可能降低了应用服务的性能和可用性。与此同时,其他节点可能承载了较低的资源负载,这意味着集群中的宝贵资源未能得到充分利用,从而带来资源浪费的问题。

技术实现思路

[0005]本专利技术的目的在于针对现有技术的不足,提供了一种基于节点负载感知的集群工作负载调度方法。
[0006]本专利技术的目的是通过以下技术方案来实现的:
>[0007]本专利技术公开了一种基于节点负载感知的集群工作负载调度方法,包括:
[0008]采集集群节点资源历史使用情况数据;
[0009]根据集群节点资源历史使用情况数据计算集群节点资源使用量;
[0010]根据集群节点资源使用量计算集群节点在过去一段时间内的资源最大使用量;
[0011]调度工作负载时,将工作负载的资源申请量与集群每个节点过去一段时间资源最大使用量相加,得到集群节点预调度资源使用量;
[0012]使用集群节点预调度资源申请量除以节点资源总量,得到预调度资源使用率;
[0013]根据集群节点预调度资源使用率计算集群节点调度总分数;
[0014]将工作负载调度到分数最高的节点。
[0015]作为进一步地改进,本专利技术所述的采集集群节点资源历史使用情况数据,用于计算集群节点过去一段时间的资源最大使用量,具体为:
[0016]采集集群节点CPU资源使用量nodeCpuUsed,集群节点内存使用量nodeMemUsed,计算集群每个节点过去10分钟、1小时和一天内CPU使用量的峰值nCU
10m
、nCU
1h
和nCU
1d
,以及集
群每个节点过去10分钟、1小时和一天内内存使用量的峰值nMU
10m
、nMU
1h
和nMU
1d

[0017]作为进一步地改进,本专利技术所述将工作负载的资源申请量与集群每个节点过去一段时间资源最大使用量相加,得到集群节点预调度资源使用量,具体为:
[0018]将工作负载CPU资源申请量podCpuRequest、内存资源申请量podMemRequest,与集群节点过去资源使用量峰值相加,得到集群节点预调度资源使用量:
[0019]preCpuUsed
n
=podCpuRequest+nCU
n
,n∈(10m,1h,1d)
[0020]preMemUsed
n
=podMemRequest+nMU
n
,n∈(10m,1h,1d)。
[0021]作为进一步地改进,本专利技术所述使用预调度资源申请量除以节点资源总量,得到预调度资源使用率,具体为:
[0022]使用集群节点预调度CPU资源使用量preCpuUsed
n
和内存资源使用量preMemUsed
n
除以集群节点资源总量,得到集群节点预调度资源使用率:
[0023][0024][0025]作为进一步地改进,本专利技术所述根据集群节点预调度资源使用率计算集群节点调度总分数,具体为:
[0026]使用集群节点预调度CPU资源使用率preCpuUsage和内存使用率preMemUsage,计算集群节点预调度CPU和内存分数:
[0027][0028][0029]将集群节点CPU预调度分数和内存预调度分数加权平均,得到工作负载预调度到该节点总分数:
[0030][0031]本专利技术的有益效果如下:
[0032]本专利技术使用较为简单的数据采集手段,实现了一种基于节点负载感知的集群工作负载调度方法。通过采集集群节点资源历史使用情况数据,得到集群节点资源使用量,并计算集群节点过去一段时间资源最大使用量。进行工作负载调度时,将工作负载的资源申请量与集群每个节点过去一段时间的资源最大使用量相加,并除以集群资源总量,得到集群节点的预调度资源使用率,最后根据集群节点预调度资源使用率,计算每个节点的分数,并且选择分数最高的节点进行调度。这一专利技术一定程度上解决Kubernetes默认调度器对集群节点负载无感知的问题,实现了均衡集群各节点资源真实利用率,降低了高负载和低负载节点出现的概率,提升了集群节点可靠性,并且达到了提升集群整体资源利用率的目的。
附图说明
[0033]图1是基于基于节点负载感知的集群工作负载调度方法流程图。
具体实施方式
[0034]下面通过结合说明书附图,通过具体实施例,对本专利技术的技术方案作进一步地说明:
[0035]本专利技术的目的是针对现有的Kubernetes默认调度器在调度时对节点真实负载无感知的问题,提出了一种基于节点负载感知的集群工作负载调度方法,图1是本专利技术的数据流程图;
[0036]本专利技术的具体实施方法如下:
[0037]NodeExporter、Promethues和InfluxDB等工具,实现对集群节点真实负载的高效采集与存储,并在工作负载调度时,基于节点实际负载进行分数的计算。通过使用简洁高效的数据采集手段,本方法实现了对节点负载的准确感知,从而在工作负载调度中运用实际负载数据计算分数,有效地避免了节点负载不均衡的情况。其实施方法既简便又灵活,大大减少了应用间的干扰,显著提升了节点资源利用率。
[0038]步骤一、通过NodeExporter和Promethues组件采集集群节点CPU资源使用量nodeCpuUsed,集群节点内存使用量nodeMemUsed,至少采集1天的数据,本实施例中为1天;
[0039]步骤二、控制器通过获得的集群节点CPU和内存使用情况数据,计算集群每个节点过去10分钟、1小时和一天内CPU使用量的峰值nCU
10m
、nCU
1h
和nCU
1d...

【技术保护点】

【技术特征摘要】
1.一种基于节点负载感知的集群工作负载调度方法,其特征在于,包括:采集集群节点资源历史使用情况数据;根据集群节点资源历史使用情况数据计算集群节点资源使用量;根据集群节点资源使用量计算集群节点在过去一段时间内的资源最大使用量;调度工作负载时,将工作负载的资源申请量与集群每个节点过去一段时间资源最大使用量相加,得到集群节点预调度资源使用量;使用集群节点预调度资源申请量除以节点资源总量,得到预调度资源使用率;根据集群节点预调度资源使用率计算集群节点调度总分数;将工作负载调度到分数最高的节点。2.根据权利要求1所述的基于节点负载感知的集群工作负载调度方法,其特征在于,所述的采集集群节点资源历史使用情况数据,用于计算集群节点过去一段时间的资源最大使用量,具体为:采集集群节点CPU资源使用量nodeCpuUsed,集群节点内存使用量nodeMemUsed,计算集群每个节点过去10分钟、1小时和一天内CPU使用量的峰值nCU
10m
、nCU
1h
和nCU
1d
,以及集群每个节点过去10分钟、1小时和一天内内存使用量的峰值nMU
10m
、nMU
1h
和nMU
1d
。3.根据权利要求1所述的基于节点负载感知的集群工作负载调度方法,其特征在于,所述将工作负载的资源申请量与集群每个节点过去一段时间资源最大使用量相加,得到集群节点预...

【专利技术属性】
技术研发人员:严捷伟才振功张典典汪雨薇吴菲祺
申请(专利权)人:浙江大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1