CN114064296A - 一种Kubernetes调度方法、装置和存储介质 - Google Patents
一种Kubernetes调度方法、装置和存储介质 Download PDFInfo
- Publication number
- CN114064296A CN114064296A CN202210051545.XA CN202210051545A CN114064296A CN 114064296 A CN114064296 A CN 114064296A CN 202210051545 A CN202210051545 A CN 202210051545A CN 114064296 A CN114064296 A CN 114064296A
- Authority
- CN
- China
- Prior art keywords
- pod
- scheduling
- node
- scheduled
- resource
- 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.)
- Granted
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/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种Kubernetes调度方法、装置和存储介质,按预选算法过滤掉不满足要求的Node节点;为每个Node节点按照资源类型设置队列;为待调度的Pod划分优先级;分析待调度Pod状态;集群资源满足时的Pod按照第一规则计算相似度,寻找第一Node节点进行调度;集群资源不满足时进入抢占调度,设置第一规则计算相似度和第二规则优先级抢占规则,寻找Node节点进行抢占调度;为无法调度的Pod设定最大循环次数,达到最大则优先调度。本发明解决了忽略集群资源实际情况设置优先级,抢占过程中资源不能合理安排,一直无法完成调度的问题。本发明提高了任务运行整体性和整个集群的负载均衡性,减少了资源碎片的产生,提高了调度的时效性,增强了集群管理系统中的资源调度效率。
Description
技术领域
本发明涉及容器编排技术领域,具体为一种实现Kubernetes调度策略方法。
背景技术
Kubernetes是一个开源的系统,主要用于集群中跨主机的集成应用的管理。Kubernetes的一个核心的特性是它动态地管理着容器来保证集群的状态是满足用户需求的。Pod是集群当中调度和管理的最小单元,所有的容器都在Pod里面运行,每个Pod里可以运行一到多个容器。每个集群都由控制节点Master和Node节点所组成(图1)。Scheduler(调度器)的核心是如何从集群中选择合适的Node节点分配给待调度Pod(图2)。
当前kubernetes的资源调度算法大多对Node节点进行评分划分优先级,如内置的LeastRequested、Priority算法,不考虑Node节点的实际资源使用情况,也没有考虑不同业务对资源需求的差异性;Kubernetes内置的优先级抢占的调度策略可能会导致某些Pod永远无法被成功调度,且抢占过程中资源安排不合理。这都会导致Node节点的其他纬度的资源不能被充分的使用,从而产生大量的资源碎片,造成资源的浪费。
发明内容
为解决现有技术中的调度策略存在的忽略集群资源实际情况设置优先级,以及抢占过程中资源不能合理安排的问题,本发明提供一种Kubernetes调度方法,包括:
S1:通过预选算法过滤无用Node节点;
S2:为每个Node节点按照资源类型设置相应队列;
S3:对待调度的Pod进行优先级划分;
S4:分析待调度的Pod状态,A状态为:集群资源满足调度的Pod,B状态为:集群资源不满足调度的Pod;
S5:若待调度的Pod为A状态,按照第一规则,计算相似度,为其寻找第一Node节点进行调度,调度成功;
S6:若待调度的Pod为B状态,进入抢占调度,按照第一规则,计算相似度,为其寻找第一Node节点进行调度;
S7:分析S6中待调度Pod状态,B1状态为:S6中寻找的第一Node节点满足调度,B2状态为:S6中寻找的第一Node节点不满足调度;
S8:若为B1状态,调度成功;若为B2状态,按照设置的第二规则优先级规则进行调度;
S9:分析S9中B2状态中待调度的Pod状态,B21状态为:满足调度;B22状态为:不满足调度;
S10:若为B21状态,调度成功;若为B22状态,返回S4循环;
S11:设定最大循环次数,达到最大循环次数的Pod进行优先调度。
优选的,所述S1中的预选算法为:
a.检查Node节点上是否存在相同主机名的Pod,若有,就排除该Node节点;
b.检查Node节点的端口,若该Pod存在指定端口,若占用就排除该Node节点;
c.检查Node节点是否符合运行该Pod所需的最小空闲资源,若不符合,则删除该Node节点;
d.检查Node节点是否可以使用存储卷,若该Pod定义了存储卷,且不可使用此存储卷,则删除该Node节点。
优选的,所述S2为每一个Node节点按照资源类型设置设置两个队列。
优选的,设置的两个队列分别为高队列和低队列,其中高队列是存放内存比重大的Pod,低队列是存放CPU比重大的Pod。
优选的,所述所述S3中优先级划分规则为,按照Pod对不同类型资源的需求量,结合集群中资源使用的实际情况来,根据权重公式来调度的Pod进行优先级的划分。
优选的,所述S5、S6中相似度计算公式为:
a. Pod的资源需求向量
b. Node节点的资源可用率特征向量
c.Pod与Node节点资源的相似度计算
优选的,所述S8中第二规则优先级抢占规则为,待调度的Pod若为高优先级,则依此回收低队列中Pod资源,将回收的Pod放入等待调度队列中,直到回收资源的可以满足Pod进行调度;若仍不满足则依此依回收高队列中优先级低于待调度Pod的资源,直到可以满足Pod进行调度;待调度的Pod若为低优先级,则依此依回收低队列中优先级低于待调度Pod的资源,直到可以满足Pod进行调度。
优选的,所述S11中设定的最大循环次数采用的计数方式为,每一次待调度Pod从队列出列,队列中所有Pod所对应数值加一,当到达最大循环数时,进行特殊标记并且在下一次调度时优先调度。
优选的,所述最大循环数为3.
一种Kubernetes调度的装置,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的Kubernetes调度方法。
一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被处理器执行时实现如上任一项所述的Kubernetes调度方法。
本发明提供了一种优化的基于kubernetes的资源调度方法,综合Node节点的各个维度的资源实际使用情况、Pod各个维度资源需求量和比重,对调度的优先级和对Node节点选择过程进行优化处理,保证了各个纬度的资源充分均衡的使用,提高了任务运行整体性和整个集群的负载均衡性。对抢占调度设置了第一层的相似度规则和第二层的优先级抢占规则,使抢占的Node节点从整体上更加适合待调度的Pod,减少了资源碎片的产生;设置了最大循环次数解决了一直无法调度的问题,提高了调度的时效性,增强了调度器对基于Kubernetes容器集群管理系统中的资源调度效率。
附图说明
为了更清楚地说明发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1 是Kubernetes系统架构图。
图2是Scheduler调度流程图。
图3是本发明提供的工作流程示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
本实施例提供一种实现Kubernetes调度策略方法,如图3所示,具体包括以下步骤:
S1 Kubernetes调度器监听到等待调度的Pod,开始进行具体调度。
S2在预选过程中,过滤掉一些不满足Pod某些要求的Node节点。预选规则为:
a.检查Node节点上是否存在相同主机名的Pod,若有,就排除该Node节点;
b.检查Node节点的端口,若该Pod存在指定端口,若占用就排除该Node节点;
c.检查Node节点是否符合运行该Pod所需的最小空闲资源,若不符合,则删除该Node节点;
d.检查Node节点是否可以使用存储卷,若该Pod定义了存储卷,且不可使用此存储卷,则删除该Node节点。
预选的目的是过滤掉不满足Pod某些要求的Node节点。例如,如果Node节点上的空闲资源小于Pod的所需资源,则不应在优选阶段考虑该Node节点,就被过滤掉了。为后面的调度过程节约时间,加快了任务部署效率。
S3为每一个Node节点设置两个队列,其中高队列是存放内存比重大的Pod,低队列是存放CPU比重大的Pod。
该步骤考虑不同类型的应用对于资源的需求是不一样的,CPU密集型的应用对于CPU的需求就比较高,内存密集型的应用对于内存的需求就比较高,将每个Node节点设置这两种队列,考虑Node节点的实际资源使用情况,让Node节点的各纬度的资源充分被使用,提高资源的利用率。
S4采集集群中每个维度资源的利用率,为Pod设置优先级顺序做准备,解析待调度的Pod,获取各维度资源的请求量,结合各维度的资源利用率,依据Pod权重公式为Pod动态设置优先级。权重公式为:
a. 计算Podi的各类资源的需求率
b. 计算Node节点j的各类资源的可用率
c. 计算Podi的各类资源的优先级权重值
该步骤确定了待调度的Pod对资源的侧重类型,进而对待调度的Pod按照资源侧重类型的不同,按照优先级的划分到不同的资源列队,从多维度多方面进行调度,加快了调度的效率。
S5分析待调度的Pod状态,A状态为:集群资源满足调度的Pod,B状态为:集群资源不满足调度的Pod;
S6若待调度的Pod为A状态,按照第一规则,计算相似度,计算相似度公式,比较Pod与各个Node节点之间的相似度得分,将Pod调度到得分高的Node节点。
相似度计算公式为:
a.Pod的资源需求向量
b.Node节点的资源可用率特征向量
c.Pod与Node节点资源的相似度计算
Node节点选择过程进行相似度计算处理,使其选择第一Node节点进行调度,从多维度为待调度的Pod选择第一Node节点,避免只是通过CPU和内存的使用率的差值来计算来决定是否调度,造成大量的抢占调度。提高了任务运行整体性和整个集群的负载均衡性。
S6若待调度的Pod为B状态,进入抢占调度,按照第一规则,计算相似度,为其寻找第一Node节点进行调度;回收该Node节点中的已进行调度Pod的资源,以此满足待等待调度Pod的资源需求;若该Node节点满足该待调度Pod的资源需求,则调度成功;
当前系统内置的抢占调度规则是:当一个Pod调度失败后,进入抢占式调度,是简单的高优先级抢占低优先级的规则,抢占的Node节点不能满足等待调度Pod的资源需求时,会一直继续抢占。忽略了对各个维度资源的实际需求,造成了大量的资源碎片。根据相似度计算,则抢占的节点是第一节点,有效减少回收资源的数量,避免产生大量资源碎片。
S7若S6中抢占的Node节点不满足待调度的Pod,按照第二规则优先级抢占规则进一步进行调度。待调度的Pod若为高优先级,则依此回收低队列中Pod资源,将回收的Pod放入等待调度队列中,直到可以满足Pod进行调度;若仍不满足则依此依回收高队列中优先级低于待调度Pod的资源,直到可以满足Pod进行调度。待调度的Pod若为低优先级,则依此依回收低队列中优先级低于待调度Pod的资源,直到可以满足Pod进行调度。
S8当Pod队列中,待调度的Pod可能会因为Node节点无法满足所需要的资源,一直无法进行调度而滞留在队列中,采用计数方式,每一次待调度Pod从队列出列,队列中所有Pod所对应数值加一,但Pod对应数值达到3,则进行特殊标记并且在下一次调度时优先调度。
目前kubernetes内置的优先级抢占的调度策略可能会导致某些Pod永远无法被成功调度。因此优先级调度不但增加了系统的复杂性,还可能带来额外不稳定的因素。为循环次数设置最高限制,避免一直无法调度的情况,保证调度的时效性,减少调度等待时间。
本发明提供了一种优化的基于kubernetes的资源调度方法,综合Node节点的各个维度的资源实际使用情况、Pod各个维度资源需求量和比重,对调度的优先级和对Node节点选择过程进行优化处理,保证了各个纬度的资源充分均衡的使用,提高了任务运行整体性和整个集群的负载均衡性。对抢占调度设置了第一规则相似度规则和第二规则优先级抢占规则,使抢占的Node节点从整体上更加适合待调度的Pod,减少了资源碎片的产生;设置了最大循环次数解决了一直无法调度的问题,提高了调度的时效性,增强了调度器对基于Kubernetes容器集群管理系统中的资源调度效率。
为了说明的目的,前述描述使用具体命名以提供对所述实施方案的透彻理解。然而,对于本领域的技术人员而言将显而易见的是,不需要具体细节即可实践所述实施方案。因此,出于例示和描述的目的,呈现了对本文所述的具体实施方案的前述描述。这些描述并非旨在是穷举性的或将实施方案限制到所公开的精确形式。对于本领域的普通技术人员而言将显而易见的是,鉴于上面的教导内容,许多修改和变型是可行的。另外,当在本文中用于指部件的位置时,上文和下文的术语或它们的同义词不一定指相对于外部参照的绝对位置,而是指部件的参考附图的相对位置。
此外,前述附图和描述包括许多概念和特征,其可以多种方式组合以实现多种有益效果和优点。因此,可组合来自各种不同附图的特征,部件,元件和/或概念,以产生未必在本说明书中示出或描述的实施方案或实施方式。此外,在任何特定实施方案和/或实施方式中,不一定需要具体附图或说明中所示的所有特征,部件,元件和/或概念。应当理解,此类实施方案和/或实施方式落入本说明书的范围。
Claims (10)
1.一种Kubernetes调度方法,其特征在于:
S1:通过预选算法过滤无用Node节点;
S2:为每个Node节点按照资源类型设置相应队列;
S3:对待调度的Pod进行优先级划分;
S4:分析待调度的Pod状态,A状态为:集群资源满足调度的Pod,B状态为:集群资源不满足调度的Pod;
S5:若待调度的Pod为A状态,按照第一规则,计算相似度,为其寻找第一Node节点进行调度,调度成功;
S6:若待调度的Pod为B状态,进入抢占调度,按照第一规则,计算相似度,为其寻找第一Node节点进行调度;
S7:分析S6中待调度Pod状态,B1状态为:S6中寻找的第一Node节点满足调度,B2状态为:S6中寻找的第一Node节点不满足调度;
S8:若为B1状态,调度成功;若为B2状态,按照设置的第二规则优先级规则进行调度;
S9:分析S9中B2状态中待调度的Pod状态,B21状态为:满足调度;B22状态为:不满足调度;
S10:若为B21状态,调度成功;若为B22状态,返回S4循环;
S11:设定最大循环次数,达到最大循环次数的Pod进行优先调度。
2.根据权利要求1所述的Kubernetes调度方法,其特征在于:S1中的预选算法为:
a.检查Node节点上是否存在相同主机名的Pod,若有,就排除该Node节点;
b.检查Node节点的端口,若该Pod存在指定端口,若占用就排除该Node节点;
c.检查Node节点是否符合运行该Pod所需的最小空闲资源,若不符合,则删除该Node节点;
d.检查Node节点是否可以使用存储卷,若该Pod定义了存储卷,且不可使用此存储卷,则删除该Node节点。
3.根据权利要求1所述的Kubernetes调度方法,其特征在于:S2中为每一个Node节点设置两个队列。
4.根据权利要求3所述的Kubernetes调度方法,其特征在于:设置两个队列分别为高队列和低队列,其中高队列是存放内存比重大的Pod,低队列是存放CPU比重大的Pod。
7.根据权利要求3所述的Kubernetes调度方法,其特征在于:所述S8中第二规则为,优先级抢占规则:待调度的Pod若为高优先级,则依此回收低队列中Pod资源,将回收的Pod放入等待调度队列中,直到回收资源的可以满足Pod进行调度;若仍不满足,则依此依回收高队列中优先级低于待调度Pod的资源,直到可以满足Pod进行调度;待调度的Pod若为低优先级,则依此依回收低队列中优先级低于待调度Pod的资源,直到可以满足Pod进行调度。
8.根据权利要求7所述的Kubernetes调度方法,其特征在于:所述S11中设定的最大循环次数采用的计数方式为,每一次待调度Pod从队列出列,队列中所有Pod所对应数值加一,当到达最大循环数时,进行特殊标记并且在下一次调度时优先调度。
9.Kubernetes调度的装置,其特征在于:所述装置包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1~8中任一项所述的Kubernetes调度方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1~8中任一项所述的Kubernetes调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210051545.XA CN114064296B (zh) | 2022-01-18 | 2022-01-18 | 一种Kubernetes调度方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210051545.XA CN114064296B (zh) | 2022-01-18 | 2022-01-18 | 一种Kubernetes调度方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114064296A true CN114064296A (zh) | 2022-02-18 |
CN114064296B CN114064296B (zh) | 2022-04-26 |
Family
ID=80231198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210051545.XA Active CN114064296B (zh) | 2022-01-18 | 2022-01-18 | 一种Kubernetes调度方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114064296B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109960585A (zh) * | 2019-02-02 | 2019-07-02 | 浙江工业大学 | 一种基于kubernetes的资源调度方法 |
WO2020000944A1 (zh) * | 2018-06-25 | 2020-01-02 | 星环信息科技(上海)有限公司 | 基于抢占式调度的资源共享使用方法、系统及设备 |
CN110727512A (zh) * | 2019-09-30 | 2020-01-24 | 星环信息科技(上海)有限公司 | 集群资源调度方法、装置、设备及储存介质 |
CN111522639A (zh) * | 2020-04-16 | 2020-08-11 | 南京邮电大学 | Kubernetes集群架构系统下多维资源调度方法 |
CN112631612A (zh) * | 2020-12-03 | 2021-04-09 | 杭州谐云科技有限公司 | 一种基于遗传算法的kubernetes云平台配置的优化方法 |
CN113010270A (zh) * | 2021-04-08 | 2021-06-22 | 桂林电子科技大学 | 基于Kubernetes平台资源动态负载均衡调度方法及系统 |
-
2022
- 2022-01-18 CN CN202210051545.XA patent/CN114064296B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020000944A1 (zh) * | 2018-06-25 | 2020-01-02 | 星环信息科技(上海)有限公司 | 基于抢占式调度的资源共享使用方法、系统及设备 |
CN109960585A (zh) * | 2019-02-02 | 2019-07-02 | 浙江工业大学 | 一种基于kubernetes的资源调度方法 |
CN110727512A (zh) * | 2019-09-30 | 2020-01-24 | 星环信息科技(上海)有限公司 | 集群资源调度方法、装置、设备及储存介质 |
CN111522639A (zh) * | 2020-04-16 | 2020-08-11 | 南京邮电大学 | Kubernetes集群架构系统下多维资源调度方法 |
CN112631612A (zh) * | 2020-12-03 | 2021-04-09 | 杭州谐云科技有限公司 | 一种基于遗传算法的kubernetes云平台配置的优化方法 |
CN113010270A (zh) * | 2021-04-08 | 2021-06-22 | 桂林电子科技大学 | 基于Kubernetes平台资源动态负载均衡调度方法及系统 |
Non-Patent Citations (1)
Title |
---|
左灿等: "一种改进的Kubernetes动态资源调度方法", 《数据通信》 * |
Also Published As
Publication number | Publication date |
---|---|
CN114064296B (zh) | 2022-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110995614B (zh) | 一种算力资源分配的方法及装置 | |
CN109408215B (zh) | 一种计算节点的任务调度方法和装置 | |
CN104168318B (zh) | 一种资源服务系统及其资源分配方法 | |
CN111768006A (zh) | 一种人工智能模型的训练方法、装置、设备及存储介质 | |
CN105718479B (zh) | 跨idc大数据处理架构下执行策略生成方法、装置 | |
CN112214319B (zh) | 一种计算资源感知的任务调度方法 | |
CN107295090A (zh) | 一种资源调度的方法和装置 | |
CN114579285B (zh) | 一种任务运行系统、方法及计算设备 | |
WO2024021489A1 (zh) | 一种任务调度方法、装置及Kubernetes调度器 | |
CN106201681B (zh) | Hadoop平台下基于预释放资源列表的任务调度方法 | |
Derakhshan et al. | Optimization of tasks in cloud computing based on MAX-MIN, MIN-MIN and priority | |
Omar et al. | Comparative analysis of the essential CPU scheduling algorithms | |
CN114168352B (zh) | 任务的多核调度方法、装置、电子设备及存储介质 | |
CN114064296B (zh) | 一种Kubernetes调度方法、装置和存储介质 | |
CN110084507A (zh) | 云计算环境下分级感知的科学工作流调度优化方法 | |
CN116708451A (zh) | 一种边云协同调度方法及系统 | |
CN111178791A (zh) | 一种任务动态均衡分派方法、系统、电子设备及存储介质 | |
KR20150089665A (ko) | 워크플로우 작업 스케줄링 장치 | |
Kheirollahpour et al. | A heuristic-based task scheduling method for reducing waiting time in cloud environment | |
CN112506640A (zh) | 一种用于加密运算芯片的多处理器架构及调配方法 | |
Kheirollahpour et al. | MCMF: Max-Criticality Max-Feasibility Method for Cloud Task Scheduling | |
CN112363811B (zh) | 一种人工智能计算资源调度方法及计算机可读存储介质 | |
US20230418667A1 (en) | Computing device for handling tasks in a multi-core processor, and method for operating computing device | |
CN112308304B (zh) | 工作流执行时间优化方法及装置 | |
Hafeez et al. | An optimum dynamic time slicing scheduling algorithm using round robin approach |
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 |