CN112988380B - 一种基于Kubernetes的集群负载调节方法及存储介质 - Google Patents
一种基于Kubernetes的集群负载调节方法及存储介质 Download PDFInfo
- Publication number
- CN112988380B CN112988380B CN202110211957.0A CN202110211957A CN112988380B CN 112988380 B CN112988380 B CN 112988380B CN 202110211957 A CN202110211957 A CN 202110211957A CN 112988380 B CN112988380 B CN 112988380B
- Authority
- CN
- China
- Prior art keywords
- nodes
- cluster
- node
- busy
- load
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明属于深度学习领域,具体公开了一种基于Kubernetes的集群负载调节方法及存储介质,方法包括:对集群中的节点添加不同的标签,并将添加标签后的节点分配给不同的使用场景;对同一使用场景中的节点的忙闲程度进行打分,得出所有节点的得分并计算得分平均值,统计得分低于得分平均值的节点得到忙碌节点并对忙碌节点添加污点值;根据污点值的添加情况对同一使用场景中的集群负载进行调节。本发明面向多团队共享GPU资源池这一应用场景,通过为节点添加标签划分不同的使用场景,确保不同团队能独占一部分节点,再通过周期性衡量集群的负载情况,使集群做到负载均衡,提高平台的稳定性与可用性。
Description
技术领域
本发明涉及深度学习领域,特别涉及一种基于Kubernetes的集群负载调节方法及存储介质。
背景技术
深度学习的发展为计算机领域的传统问题带来了新的解决方式,它作为学术界的热点议题、工业界的全新机遇,已经受到高度重视与广泛支持。作为执行算法训练、优化网络模型的基础设施,构建实现数据处理与模型训练的深度学习平台已具有重要意义与研究价值。
传统的进行深度学习训练的方法主要是个人或组织购置硬件设施、在电脑或服务器上配置相应的深度学习环境、在构建完成的环境中直接进行训练工作。这一系列的步骤在经济与经验上都具有较高的门槛,难以面向各行各业进行推广,为大众开展深度学习的研发工作提供了不少障碍。对于高校而言,实验室团队往往已经配备一定规模的服务器集群,但学生需要自己手动开展环境配置工作,不仅入门难度较高,还容易对他人的实验环境造成影响。近年来,各大云服务商逐渐开始研发、推出深度学习平台,它们大多能为用户带来训练上的便捷,但对高校实验室多团队协作开发这一应用场景的适应性较差。
在面对多团队共享GPU资源池这一应用场景下,未能确保不同团队能独占一部分节点,同时不能保证集群的负载均衡,且当一个使用场景或团队较大时,意味着分配给该场景或团队的节点较多,有必要保证场景或团队节点的负载均衡。
发明内容
本发明主要提供一种基于Kubernetes的集群负载调节方法及存储介质,能够解决现有技术中在面对多团队共享GPU资源池这一应用场景下,未能确保不同团队能独占一部分节点,同时不能保证集群的负载均衡的问题。
为解决上述技术问题,本发明提供一种基于Kubernetes的集群负载调节方法,包括以下内容:
对集群中的节点添加不同的标签,并将添加标签后的节点分配给不同的使用场景;
对同一使用场景中的节点的忙闲程度进行打分,得出所有节点的得分并计算得分平均值,统计得分低于得分平均值的节点得到忙碌节点;
将所述忙碌节点按得分升序排列,并对所述忙碌节点添加污点值;
根据所述污点值的添加情况对同一使用场景中的集群负载进行调节。
优选地,所述对所述忙碌节点添加污点值包括:对排序靠前的忙碌节点添加第一污点值NoScheduler,对剩余的忙碌节点添加第二污点值PreferNoScheduler。
优选地,所述将添加标签后的节点分配给不同的使用场景包括:当用户指定应用场景、提交训练需求并创建Pod时,根据所述Pod指定的信息,选择有相应标签的节点进行调度。
优选地,不将所述Pod调度到添加了第一污点值NoScheduler的忙碌节点上,尽量不将所述Pod调度到添加了第二污点值PreferNoSched uler的忙碌节点上。
Score(pi)=λcpu×Ccpu×Score(cpui)+λmemory×Score(memoryi),其中,Ccpu表示第i个节点的CPU核数,Score(cpui)表示CPU频率,Score(memoryi)表示内存大小,λcpu表示Ccpu的权重,λmemory表示Score(memoryi)的权重;
所述Load(ni)表示总负载,计算公式如下:
Load(ni)=λcpu×U(cpui)+λmemory×U(memoryi),其中,U(cpui)表示第i个节点的CPU使用量,为U(memoryi)表示内存使用量。
优选地,根据所述污点值的添加情况对同一使用场景中的集群负载进行调节包括:将所述Pod调度到未被添加污点值的节点上,直至集群达到负载均衡。
优选地,根据所述污点值的添加情况对同一使用场景中的集群负载进行调节包括:集群进入新的负载情况后,删除为节点添加的污点值,继续监测负载并调度所述Pod。
优选地,所述方法还包括:定期监测集群中每个节点的忙闲程度。
优选地,所述定期监测集群中每个节点的忙闲程度包括:根据使用需求设置节点计分时的权值因子以及计时器监控周期参数,定期检查集群中每个节点的负载情况。
本发明还提供一种存储介质,其上存储有执行一种基于Kubernete s的集群负载调节方法的指令。
本发明的有益效果是:(1)区别于现有技术的情况,本发明对集群中的节点添加不同的标签,并将添加标签后的节点分配给不同的使用场景,在面对多团队共享GPU资源池这一应用场景下,能确保不同团队能独占一部分节点,同时对使用场景中的节点的忙闲程度进行打分,统计得分低于得分平均值的节点得到忙碌节点并添加污点值,对节点的状态进行更精细的划分;根据所述污点值的添加情况进行集群负载调节保证集群的负载均衡;(2)打分的计算公式中加入了CPU与内存的权重因子,提高了打分的灵活度,以便应对不同的使用环境;(3)根据使用需求设置节点计分时的权值因子以及计时器监控周期参数,定期检查集群中每个节点的负载情况,保证集群负载的稳定性。
附图说明
图1是本发明一种基于Kubernetes的集群负载调节方法的流程示意图;
图2是本发明提供的带有周期监测的集群负载调节过程示意图。
具体实施方式
为了使本发明的目的、技术方案和有益效果更加清楚和完整,以下实施例结合附图对本发明作进一步地阐述。
实施例1
本发明对节点添加标签的目的是将节点分配给不同的使用场景或是不同团队使用,负载调节是在同一场景或同一团队内部进行调整。当一个使用场景或团队较大时,意味着分配给该场景或团队的节点较多,有必要保证场景或团队节点的负载均衡。
由此,本发明提供一种基于Kubernetes的集群负载调节方法,如图1所示,所述方法包括以下内容:
对集群中的节点添加不同的标签,并将添加标签后的节点分配给不同的使用场景;
对同一使用场景中的节点的忙闲程度进行打分,得出所有节点的得分并计算得分平均值,统计得分低于得分平均值的节点得到忙碌节点;
将所述忙碌节点按得分升序排列,并对所述忙碌节点添加污点值;
根据所述污点值的添加情况对同一使用场景中的集群负载进行调节。
该方案的原理是:首先对集群中的节点添加不同的标签,并将添加标签后的节点分配给不同的使用场景,保证不同使用场景能独占一部分节点,避免不同使用场景的资源侵占;针对同一个使用场景,当一个使用场景较大时,意味着分配给该场景的节点较多,有必要保证场景节点的负载均衡,在保证在已打标签的节点内部调度的基础上,对同一使用场景中的节点的忙闲程度进行打分,得出所有节点的得分并计算得分平均值,统计得分低于得分平均值的节点得到忙碌节点并添加污点值,尽可能地将Pod调度到未被添加污点值的节点上,直至集群基本达到负载均衡。
其中,为节点添加污点值是为了对节点状态进行更精细的划分。如果为节点添加污点值之后,除非有污点容忍,否则无法调度此节点,污点容忍是指Pod如添加污点容忍,则调度时会忽略节点上的污点,正常调度。
进一步地,所述对所述忙碌节点添加污点值包括:对排序靠前的忙碌节点添加第一污点值NoScheduler,对剩余的忙碌节点添加第二污点值PreferNoScheduler。
进一步地,Pod是Kubernetes中能够创建和部署的最小单元,是Kubernetes集群中的一个应用实例,总是部署在同一个节点Node上。Pod中包含了一个或多个容器,还包括了存储、网络等各个容器共享的资源。
进一步地,所述将添加标签后的节点分配给不同的使用场景包括:当用户指定应用场景、提交训练需求并创建Pod时,根据所述Pod指定的信息,选择有相应标签的节点进行调度。
如果为节点添加NoSchedule,则Pod除非有污点容忍,否则无法被调度到此节点;如果为节点添加PreferNoSchedule,则Pod一般不会被调度到此节点,除非集群中没有其它节点可供调度。
进一步地,不将所述Pod调度到添加了第一污点值NoScheduler的忙碌节点上,尽量不将所述Pod调度到添加了第二污点值PreferNoSch eduler的忙碌节点上。
Score(pi)=λcpu×Ccpu×Score(cpui)+λmemory×Score(memoryi),其中,Ccpu表示第i个节点的CPU核数,Score(cpui)表示CPU频率,Score(memoryi)表示内存大小,λcpu表示Ccpu的权重,λmemory表示Score(memoryi)的权重;
所述Load(ni)表示总负载,计算公式如下:
Load(ni)=λcpu×U(cpui)+λmemory×U(memoryi),其中,U(cpui)表示第i个节点的CPU使用量,为U(memoryi)表示内存使用量。
其中,λcpu+λmemory=1,通过计算节点得分平均值,获得得分低于平均值的节点,并将这些节点记录为忙碌节点。
进一步地,根据所述污点值的添加情况对同一使用场景中的集群负载进行调节包括:将所述Pod调度到未被添加污点值的节点上,直至集群达到负载均衡。
进一步地,根据所述污点值的添加情况对同一使用场景中的集群负载进行调节包括:集群进入新的负载情况后,删除为节点添加的污点值,继续监测负载并调度所述Pod。
该技术方案在面对多团队共享GPU资源池这一应用场景下,能确保不同团队能独占一部分节点,同时对所述集群中的节点的忙闲程度进行打分,统计得分低于得分平均值的节点得到忙碌节点列表;并对所述忙碌节点添加污点值;根据所述污点值的添加情况进行集群负载调节保证集群的负载均衡。
本发明还提供一种存储介质,其上存储有执行一种基于Kubernete s的集群负载调节方法的指令。
实施例2
在实施例1的基础上,提供的带有周期监测的集群负载调节方法,进一步地,所述方法还包括:定期监测集群中每个节点的忙闲程度。
进一步地,所述定期监测集群中每个节点的忙闲程度包括:根据使用需求设置节点计分时的权值因子以及计时器监控周期参数,定期检查集群中每个节点的负载情况。
如图2所示,根据实际使用需求,首先对集群中的计算节点添加相应的标签。当用户指定应用场景、提交训练需求、创建Pod时,节点标签选择器会根据该Pod指定的信息,选择有相应标签的节点进行调度。
其次,根据使用需求设置节点计分时的权值因子以及计时器监控周期等参数。按照计时器设定的周期时间,定期检查集群中每个节点的负载情况。
然后通过使用集群中节点CPU占用率、内存利用率等数据,在调度器的打分阶段进行计算、衡量节点忙闲程度。
Score(pi)=λcpu×Ccpu×Score(cpui)+λmemory×Score(memoryi),其中,Ccpu表示第i个节点的CPU核数,Score(cpui)表示CPU频率,Score(memoryi)表示内存大小,λcpu表示Ccpu的权重,λmemory表示Score(memoryi)的权重;
所述Load(ni)表示总负载,计算公式如下:
Load(ni)=λcpu×U(cpui)+λmemory×U(memoryi),其中,U(cpui)表示第i个节点的CPU使用量,为U(memoryi)表示内存使用量。
其中,λcpu+λmemory=1,通过计算节点总得分平均值,若节点得分低于平均值,则该节点记录为忙碌节点,若节点得分不低于平均值,则程序结束。
将忙碌节点列表按得分升序排列,定义一个不超过1的N_Sbusy值,所述N_Sbusy代表列表中选取的靠前的忙碌节点个数占总节点个数的百分比,N_Sbusy的选取根据实际使用情况来选取,为前N_Sbusy的忙碌节点添加污点值NoScheduler,表示不将Pod调度到此节点;为剩余节点添加污点值PreferNoScheduler,表示尽量不将Pod调度到此节点。
尽可能地将Pod调度到未被添加污点值的节点上,直至集群基本达到负载均衡。集群进入新的负载情况后,删除为节点添加的污点值,继续监测负载并调度Pod。
该方案根据使用需求设置节点计分时的权值因子以及计时器监控周期参数,定期检查集群中每个节点的负载情况,周期性的调整集群的负载,保证集群负载的均衡,提高系统稳定性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (4)
1.一种基于Kubernetes的集群负载调节方法,其特征在于,包括以下内容:
对集群中的节点添加不同的标签,并将添加标签后的节点分配给不同的使用场景;所述将添加标签后的节点分配给不同的使用场景包括:当用户指定应用场景、提交训练需求并创建Pod时,根据所述Pod指定的信息,选择有相应标签的节点进行调度;
对同一使用场景中的节点的忙闲程度进行打分,得出所有节点的得分并计算得分平均值,统计得分低于得分平均值的节点得到忙碌节点;
所述对同一使用场景中的节点的忙闲程度进行打分的计算公式为:,Score(pi)表示第 个节点的性能得分,计算公式如下:,其中, 表示第 个节点的CPU核数, 表示CPU频率, 表示内存大小,表示 的权重, 表示的权重;
所述Load(ni)表示总负载,计算公式如下:
将所述忙碌节点按得分升序排列,并对所述忙碌节点添加污点值;所述对所述忙碌节点添加污点值包括:在序列中选取一个污点临界值,对得分低于所述污点临界值的忙碌节点添加第一污点值NoSchedule,对剩余的忙碌节点添加第二污点值PreferNoSchedule;
根据所述污点值的添加情况对同一使用场景中的集群负载进行调节;
所述根据所述污点值的添加情况对同一使用场景中的集群负载进行调节,包括:
不将所述Pod调度到添加了第一污点值NoSchedule的忙碌节点上,不将所述Pod调度到添加了第二污点值PreferNoSchedule的忙碌节点上或在没有可调度的空闲节点时,将Pod调度到添加了第二污点值PreferNoSchedule的忙碌节点上;
所述方法还包括:定期监测集群中每个节点的忙闲程度;
所述定期监测集群中每个节点的忙闲程度包括:根据使用需求设置节点计分时的权值因子以及计时器监控周期参数,定期检查集群中每个节点的负载情况。
2.根据权利要求1所述的一种基于Kubernetes的集群负载调节方法,其特征在于,根据所述污点值的添加情况对同一使用场景中的集群负载进行调节包括:将所述Pod调度到未被添加污点值的节点上,直至集群达到负载均衡。
3.根据权利要求2所述的一种基于Kubernetes的集群负载调节方法,其特征在于,根据所述污点值的添加情况对同一使用场景中的集群负载进行调节还包括:
集群进入新的负载情况后,删除为节点添加的污点值,继续监测负载并调度所述Pod。
4.一种存储介质,其特征在于,其上存储有执行权利要求1-3中任意一项所述一种基于Kubernetes的集群负载调节方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110211957.0A CN112988380B (zh) | 2021-02-25 | 2021-02-25 | 一种基于Kubernetes的集群负载调节方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110211957.0A CN112988380B (zh) | 2021-02-25 | 2021-02-25 | 一种基于Kubernetes的集群负载调节方法及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112988380A CN112988380A (zh) | 2021-06-18 |
CN112988380B true CN112988380B (zh) | 2022-06-17 |
Family
ID=76350680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110211957.0A Active CN112988380B (zh) | 2021-02-25 | 2021-02-25 | 一种基于Kubernetes的集群负载调节方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112988380B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108519911A (zh) * | 2018-03-23 | 2018-09-11 | 上饶市中科院云计算中心大数据研究院 | 一种基于容器的集群管理系统中资源的调度方法和装置 |
CN109783218A (zh) * | 2019-01-24 | 2019-05-21 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes容器集群的与时间相关联的容器调度方法 |
CN109918198A (zh) * | 2019-02-18 | 2019-06-21 | 中国空间技术研究院 | 一种基于用户特征预测的仿真云平台负载调度系统及方法 |
CN111444009A (zh) * | 2019-11-15 | 2020-07-24 | 北京邮电大学 | 一种基于深度强化学习的资源分配方法及装置 |
CN112114949A (zh) * | 2020-09-18 | 2020-12-22 | 广州小沙鸥科技有限公司 | 云计算的服务调度方法和系统 |
CN112130997A (zh) * | 2020-09-22 | 2020-12-25 | 新华三大数据技术有限公司 | 一种资源分配方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10360128B2 (en) * | 2017-01-23 | 2019-07-23 | American Express Travel Related Services Company, Inc. | System and method for dynamic scaling of concurrent processing threads |
CN109960585B (zh) * | 2019-02-02 | 2021-05-14 | 浙江工业大学 | 一种基于kubernetes的资源调度方法 |
CN110764915A (zh) * | 2019-10-29 | 2020-02-07 | 西安邮电大学 | 一种针对kubernetes主节点选择的优化方法 |
-
2021
- 2021-02-25 CN CN202110211957.0A patent/CN112988380B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108519911A (zh) * | 2018-03-23 | 2018-09-11 | 上饶市中科院云计算中心大数据研究院 | 一种基于容器的集群管理系统中资源的调度方法和装置 |
CN109783218A (zh) * | 2019-01-24 | 2019-05-21 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes容器集群的与时间相关联的容器调度方法 |
CN109918198A (zh) * | 2019-02-18 | 2019-06-21 | 中国空间技术研究院 | 一种基于用户特征预测的仿真云平台负载调度系统及方法 |
CN111444009A (zh) * | 2019-11-15 | 2020-07-24 | 北京邮电大学 | 一种基于深度强化学习的资源分配方法及装置 |
CN112114949A (zh) * | 2020-09-18 | 2020-12-22 | 广州小沙鸥科技有限公司 | 云计算的服务调度方法和系统 |
CN112130997A (zh) * | 2020-09-22 | 2020-12-25 | 新华三大数据技术有限公司 | 一种资源分配方法及装置 |
Non-Patent Citations (3)
Title |
---|
"Horizontal Pod Autoscaling in Kubernetes for Elastic Container Orchestration";TT Nguyen;《Sensors》;20200831;第20卷(第16期);第4621篇 * |
"Kubernetes K8S之调度器kube-scheduler详解";踏歌行666;《https://www.cnblogs.com/zhanglianghhh/p/13875203.html》;20201025;第1-6页 * |
"开源云上的Kubernetes弹性调度";张可颖;《计算机技术与发展》;20190228;第29卷(第02期);第109-114页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112988380A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110837410B (zh) | 任务调度方法、装置、电子设备及计算机可读存储介质 | |
EP3525096A1 (en) | Resource load balancing control method and cluster scheduler | |
Shanthikumar et al. | A unifying view of hybrid simulation/analytic models and modeling | |
CN110221915B (zh) | 节点调度方法和装置 | |
AU2018100381A4 (en) | A physical resource scheduling method in cloud cluster | |
Yin et al. | Two-agent single-machine scheduling with release times and deadlines | |
CN108762687B (zh) | Io服务质量控制方法、装置、设备及存储介质 | |
CN111654416B (zh) | 一种物联网测试云平台和方法 | |
Tang et al. | Budget‐constraint stochastic task scheduling on heterogeneous cloud systems | |
CN115543577B (zh) | 基于协变量的Kubernetes资源调度优化方法、存储介质及设备 | |
CN103677960A (zh) | 一种能耗约束的虚拟机博弈重放置方法 | |
CN112132384A (zh) | 工作效率评估方法、装置、存储介质及计算机设备 | |
CN104346220B (zh) | 一种任务调度方法与系统 | |
CN115202847A (zh) | 任务的调度方法和装置 | |
CN108520329A (zh) | 基于经纪人画像的二手房客户精准自动分配方法及装置 | |
CN110826786A (zh) | 目的地点人口数量的预测方法、装置及存储介质 | |
Miao et al. | Efficient flow-based scheduling for geo-distributed simulation tasks in collaborative edge and cloud environments | |
CN112988380B (zh) | 一种基于Kubernetes的集群负载调节方法及存储介质 | |
CN111930469B (zh) | 一种基于云计算的高校大数据竞赛管理系统及方法 | |
Yang et al. | Trust-based scheduling strategy for cloud workflow applications | |
Zhu et al. | A multi-resource scheduling scheme of Kubernetes for IIoT | |
CN111597023A (zh) | 一种基于学习状态的集群智能调度方法及装置 | |
CN115293275A (zh) | 数据识别方法、装置、电子设备和存储介质 | |
CN115309520A (zh) | 任务迁移方法、装置、电子设备及存储介质 | |
CN113901283A (zh) | 一种社交网络数据处理方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |