CN115168057B - 基于k8s集群的资源调度方法及装置 - Google Patents
基于k8s集群的资源调度方法及装置 Download PDFInfo
- Publication number
- CN115168057B CN115168057B CN202211071960.8A CN202211071960A CN115168057B CN 115168057 B CN115168057 B CN 115168057B CN 202211071960 A CN202211071960 A CN 202211071960A CN 115168057 B CN115168057 B CN 115168057B
- Authority
- CN
- China
- Prior art keywords
- dynamic
- pod
- resource pool
- static
- created
- 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
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000003068 static effect Effects 0.000 claims abstract description 242
- 230000004044 response Effects 0.000 claims description 14
- 238000012544 monitoring process Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 description 10
- 238000013468 resource allocation Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
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
-
- 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/5011—Pool
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于k8s集群的资源调度方法及装置。该基于k8s集群的资源调度方法包括:响应于客户端的动态应用创建请求,确认能否利用动态资源池创建动态pod,所述动态pod为所述动态应用的pod;若不能利用动态资源池创建动态pod,从静态资源池分配资源而执行所述动态pod的创建。本申请可以提高集群中资源利用率。
Description
技术领域
本申请涉及资源调度技术领域,特别是涉及一种基于k8s集群的资源调度方法及装置。
背景技术
随着科技的发展,尤其是大数据时代的到来,通过计算机处理的业务越来越多,需要占用的计算机资源也越来越多,传统的基于客户/服务器模型的集中处理已经无法承载日趋复杂的网络应用,于是出现了分布式处理。但是,分布式处理系统中当前使用的资源调度方案存在集群资源利用率较低的问题。
发明内容
本申请提供一种基于k8s集群的资源调度方法及装置,可以提高集群中资源利用率。
为达到上述目的,本申请提供一种基于k8s集群的资源调度方法,该方法包括:
响应于客户端的动态应用创建请求,确认能否利用动态资源池创建动态pod(为方便描述,也可将pod称为实例),动态pod为动态应用的pod;
若不能利用动态资源池创建动态pod,从静态资源池分配资源而执行动态pod的创建。
其中,若不能利用动态资源池创建动态pod,从静态资源池分配资源而执行动态pod的创建,包括:
若不能利用动态资源池创建动态pod,确认能否利用静态资源池创建动态pod;
若能够利用静态资源池创建动态pod,从静态资源池分配资源而执行动态pod的创建。
其中,从静态资源池分配资源而执行动态pod的创建,之后包括;
响应于客户端的静态应用创建请求,若在不能利用静态资源池创建静态pod、且静态资源池存在被动态pod占用的情况的情况下,驱逐静态资源池上运行的动态pod,静态pod为静态应用的pod;
从静态资源池分配资源,以执行静态pod的创建。
其中,若在不能利用静态资源池创建静态pod、且静态资源池存在被动态pod占用的情况的情况下,驱逐静态资源池上运行的动态pod,包括:
若静态资源池存在被动态pod占用的情况,确认驱逐静态资源池上运行的动态pod后、静态资源池上的剩余资源能否满足静态pod的资源配置要求;
若确认驱逐静态资源池上运行的动态pod后、资源池上的剩余资源能够满足静态pod的资源配置要求,依次执行驱逐静态资源池上运行的动态pod、和从静态资源池分配资源,以执行静态pod的创建的步骤。
其中,驱逐静态资源池上运行的动态pod,包括:
对静态资源池上运行的动态pod进行驱逐,直至静态资源池能够满足静态pod的资源配置要求。
其中,确认能否利用动态资源池创建动态pod,之后包括:
若能,从动态资源池分配资源,以执行动态pod的创建。
其中,响应于客户端的动态应用创建请求,确认能否利用动态资源池创建动态pod,包括:
若动态应用创建请求声明的副本数量为预设数量,则依次确认能否利用动态资源池创建预设数量个动态pod中每个动态pod;
若能,则从动态资源池分配资源,以执行每个能够利用动态资源池创建的动态pod的创建;
若否,则从静态资源池分配资源,以执行每个不能利用动态资源池创建的动态pod的创建。
其中,响应于客户端的动态应用创建请求,确认能否利用动态资源池创建动态pod,包括:
响应于动态应用创建请求,生成动态应用的副本控制器;
执行动态pod的创建,之后包括:
通过副本控制器持续监控预设数量个动态pod的状态。
其中,
确认能否利用动态资源池创建动态pod,包括:判定动态资源池中是否存在能够满足动态pod的资源配置要求的节点;若动态资源池中存在能够满足动态pod的资源配置要求的节点,则能够利用动态资源池创建动态pod;若动态资源池中不存在能够满足动态pod的资源配置要求的节点,则不能利用动态资源池创建动态pod;
从静态资源池分配资源而执行动态pod的创建,包括:在静态资源池的其中一个能够满足动态pod的资源配置要求的节点上进行动态pod的创建。
为达到上述目的,本申请还提供一种电子设备,该电子设备包括处理器;处理器用于执行指令以实现上述方法。
为达到上述目的,本申请还提供一种计算机可读存储介质,其用于存储指令/程序数据,指令/程序数据能够被执行以实现上述方法。
本申请在接收到客户端的动态应用创建请求后,确认能否利用动态资源池创建动态pod,其中,动态pod为该动态应用的pod;若不能利用动态资源池创建动态pod,则利用静态资源池进行动态pod的创建,即在动态资源池无可用资源、但静态资源池有资源剩余时,允许使用静态资源池中的资源创建动态pod,如此能够在静态应用处于业务低峰时,静态应用未使用的静态资源可被动态应用等其他应用申请使用,可以避免资源的浪费,从而提高集群中资源利用率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请基于k8s集群的资源调度方法一实施方式的流程示意图;
图2是本申请基于k8s集群的资源调度方法中资源池的划分示意图;
图3是本申请基于k8s集群的资源调度方法另一实施方式的流程示意图;
图4是本申请基于k8s集群的资源调度方法又一实施方式的流程示意图;
图5是本申请电子设备一实施方式的结构示意图;
图6是本申请计算机可读存储介质一实施方式的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。另外,除非另外指明(例如,“或另外”或“或在替代方案中”),否则如本文所使用的术语“或”指代非排他性的“或”(即,“和/或”)。并且,本文所描述的各种实施例不一定相互排斥,因为一些实施例可以与一个或多个其它实施例组合以形成新的实施例。
具体如图1和图2所示,本实施方式的基于k8s集群的资源调度方法包括以下步骤。其中,k8s集群可以包括若干个节点、管理设备和/或客户端。其中若干个节点可用于构成资源池。需要注意的是,以下步骤编号仅用于简化说明,并不旨在限制步骤的执行顺序,本实施方式的各步骤可以在不违背本申请技术思想的基础上,任意更换执行顺序。
S101:响应于客户端的应用创建请求,判定第一类型的资源池能否满足第一实例的资源配置要求。
可以响应于客户端的应用创建请求,判定第一类型的资源池能否满足第一pod的资源配置要求,其中第一类型为应用创建请求声明的资源池类型,第一pod为应用创建请求所请求创建的应用的pod,以便后续基于判定结果分配满足第一pod资源配置要求的资源池资源而执行第一pod的创建,即本申请资源池划分的类型包括客户端的应用创建请求声明的资源池类型,并且通过该方案可以用客户端请求的类型的资源池创建客户端要求创建的应用的pod,从而通过本申请的方案使得对资源的管理更加清晰明确,以提高集群中资源利用率。
其中,资源池可以包括至少一个节点,而资源池中的节点可用于存储或计算等操作。确认第一类型的资源池能否满足第一pod的资源配置要求可以指:确认第一类型的资源池的至少一个节点中是否存在能够满足第一pod的资源配置要求的节点;若存在,则第一类型的资源池能够满足第一pod的资源配置要求;否则第一类型的资源池不能满足第一pod的资源配置要求。
其中,第一pod的资源配置要求可以包括第一pod的CPU(Central ProcessingUnit,中央处理器)大小要求、内存大小要求、GPU(Graphics Processing Unit,显示核心)的类型及大小要求、和/或磁盘配置要求等资源配置要求。在节点的每一类资源的剩余量均大于第一pod的对应类资源配置要求的情况下,该节点满足第一pod的资源配置要求。例如,节点A的CPU剩余量被量化为3,节点B的CPU剩余量被量化为1,第一pod的CPU要求被量化为2;节点A的内存剩余量被量化为1,节点B的内存剩余量被量化为2,第一pod的内存要求被量化为1;节点A的磁盘剩余量被量化为5,节点B的磁盘剩余量被量化为2,第一pod的磁盘要求被量化为3;如此节点A的每一类资源的剩余量均大于第一pod的对应类资源配置要求,即节点A满足第一pod的资源配置要求;而节点B的某些类资源的剩余量小于第一pod的对应类资源配置要求,从而节点B不满足第一pod的资源配置要求。
可选地,第一pod的数量可以与应用创建请求中声明的副本数量相关。具体地,第一pod的数量可以等于应用创建请求中声明的副本数量,即应用创建请求中要求创建预设数量个副本,就可以基于应用创建请求创建预设数量个第一pod。且应用创建请求可以包含应用的每个副本对应的第一pod的资源配置要求,在步骤S101中,可以分别判定第一类型的资源池能否满足每个副本对应的第一pod的资源配置要求,继而后续可以基于每个副本对应的第一pod资源配置要求的判断结果进行每个副本对应的第一pod的创建。具体地,在步骤S101中,可以依次判定第一类型的资源池能否满足所有副本对应的第一pod的资源配置要求,继而后续可以基于每个副本对应的第一pod资源配置要求的判断结果进行相应第一pod的创建。
为便于对应用的预设数量个第一pod的创建和运行进行管理,可以响应于客户端的应用创建请求,先创建应用的副本控制器,以便利用副本控制器进行应用的预设数量个第一pod的创建和/或运行监控。具体地,可以在判定第一类型的资源池能否满足第一pod的资源配置要求之前,可以先通过副本控制器检查集群中应用的副本(即应用的第一pod)的数量和/或状态是否与应用创建请求中声明的副本的数量和/或状态一致;若一致,则说明已经在集群中创建了相应数量的副本,可以持续监控集群中应用的第一pod的状态;若不一致,则可以判定第一类型的资源池能否满足第一pod的资源配置要求,继而基于判断结果进行第一pod的创建,完成创建之后,可以通过副本控制器持续监控集群中应用的第一pod的状态。
另外,应用创建请求中还可声明所请求创建的应用的类型。例如,应用创建请求可声明所请求创建的应用的类型为静态或动态等类型。
S102:基于判定结果,分配满足第一实例资源配置要求的资源池资源,以执行所述第一实例的创建。
响应于客户端的应用创建请求,判定第一类型的资源池能否满足第一pod的资源配置要求后,可以基于判定结果,分配满足第一pod资源配置要求的资源池资源,以执行第一pod的创建。
可选地,在确认第一类型的资源池能够满足第一pod的资源配置要求的情况下,可以直接使用第一类型的资源池进行第一pod的创建。
具体地,可以在第一类型的资源池中的其中一个能够满足第一pod的资源配置要求的节点上进行第一pod的创建。
在第一类型的资源池中满足第一pod的资源配置要求的节点的数量有多个时,可以通过轮询、权重选择、负载选择或随机选择等方法从第一类型的资源池中的多个满足第一pod的资源配置要求的节点选择一个节点进行第一pod的创建。
在本实施方式中,响应于客户端的应用创建请求,判定第一类型的资源池能否满足第一pod的资源配置要求,其中第一类型为应用创建请求声明的资源池类型,第一pod为应用创建请求所请求创建的应用的pod,接着基于判定结果分配满足第一pod资源配置要求的资源池资源而执行第一pod的创建,即本申请资源池划分的类型包括客户端的应用创建请求声明的资源池类型,并且通过该方案可以用客户端请求的类型的资源池创建客户端要求创建的应用的pod,从而通过本申请的方案使得对资源的管理更加清晰明确,以提高集群中资源利用率。
上述的资源池是虚拟化的资源池,具体可指由集群中的所有节点的资源统一形成的资源池。其中,本申请的资源池可以为K8s资源池。
进一步地,如图2所示,本申请可以对集群中所有节点的资源统一形成的资源池进行细分,例如可细分成静态资源池和动态资源池等类型的资源池。当然,在其他实施例中,资源池的类型也可以是其他类型,例如半静态。
其中,静态资源池和动态资源池都有request和limit配置,其中request和limit相等则为静态资源池,request与limit不相等则为动态资源池,即动态资源池允许配置一定的超卖系数。所有静/动态资源池中pod的request(或limit)之和不大于虚拟化资源池request(或limit)之和。
可选地,静态资源池和动态资源池可分别用于运行静态pod和有弹性需求的动态pod应用(如离线计算任务)。
而静态pod一般为申请固定资源运行的pod,一般属于长期运行服务,生命周期较长。并且在本申请的方案中,静态pod所属应用声明的资源池类型可为静态,如此通过创建时声明资源池类型,静态pod可在静态资源池上创建和运行。
而动态pod一般是根据业务负载调用接口(可以为K8s API接口)创建出来的pod,属于短期(分钟或小时级)运行服务,生命周期较短,执行完特定的任务后即释放资源。并且在本申请的方案中,动态pod所属应用声明的资源池类型可为动态,如此通过创建时声明资源池类型,动态pod一般会在动态资源池上创建和运行。
在资源池包括静态资源池和动态资源池的基础上,本申请提供另一实施方式基于k8s集群的资源调度方法。如图3所示,该基于k8s集群的资源调度方法包括以下步骤。需要注意的是,以下步骤编号仅用于简化说明,并不旨在限制步骤的执行顺序,本实施方式的各步骤可以在不违背本申请技术思想的基础上,任意更换执行顺序。
S201:响应于动态应用创建请求,确认能否利用动态资源池创建动态实例。
可以在接收到客户端的动态应用创建请求后,确认能否利用动态资源池创建动态pod,其中,动态pod为该动态应用创建请求所请求创建的动态应用的pod;若能够利用动态资源池创建动态pod,则基于动态资源池完成动态pod的创建;若不能利用动态资源池创建动态pod,则进入步骤S203,以利用静态资源池进行动态pod的创建,即在动态资源池无可用资源、但静态资源池有资源剩余时,允许使用静态资源池中的资源创建动态pod,如此能够在静态应用处于业务低峰时,静态应用未使用的静态资源可被动态应用等其他应用申请使用,可以避免资源的浪费,从而提升集群总体资源的利用率。
在一实现方式中,在步骤S201中,可以直接尝试利用步骤S202在动态资源池上创建动态pod;若创建成功,则能够利用动态资源池创建动态pod;若创建失败,则不能利用动态资源池创建动态pod,可进入步骤S203。
在又一实现方式中,在步骤S201中,可以通过判定动态资源池能否满足动态pod的资源配置要求的方式,确认能否利用动态资源池创建动态pod。具体地,判定动态资源池中是否存在能够满足动态pod的资源配置要求的节点;若动态资源池中存在能够满足动态pod的资源配置要求的节点,则能够利用动态资源池创建动态pod,此时可进入步骤S202;若动态资源池中不存在能够满足动态pod的资源配置要求的节点,则不能利用动态资源池创建动态pod,此时可进入步骤S203。
S202:从动态资源池分配资源,来执行动态实例的创建。
从动态资源池分配满足资源配置要求的资源,来执行动态pod的创建,即使用动态资源池进行动态pod的创建。
具体地,可以在动态资源池的其中一个能够满足动态pod的资源配置要求的节点上进行动态pod的创建。
S203:确认能否利用静态资源池创建动态实例。
若无法利用动态资源池创建动态pod,则可确认能否利用静态资源池创建动态pod。若确认能够利用静态资源池创建动态pod,则基于静态资源池完成动态pod的创建,如此通过静态资源池允许被动态pod抢占的方式,进一步提升了集群的利用率;若确认不能利用静态资源池创建动态pod,则返回至步骤S201,以待动态资源池或静态资源池有剩余资源时,利用相应资源进行动态pod的创建。
在一实现方式中,在步骤S203中,可以直接尝试利用步骤S204在静态资源池上创建动态pod;若创建成功,则能够利用静态资源池创建动态pod;若创建失败,则不能利用静态资源池创建动态pod,可进入步骤S201。
在又一实现方式中,在步骤S203中,可以通过判定静态资源池能否满足动态pod的资源配置要求的方式,确认能否利用静态资源池创建动态pod。具体地,判定静态资源池中是否存在能够满足动态pod的资源配置要求的节点;若静态资源池中存在能够满足动态pod的资源配置要求的节点,则能够利用静态资源池创建动态pod,此时可进入步骤S204;若静态资源池中不存在能够满足动态pod的资源配置要求的节点,则不能利用静态资源池创建动态pod,此时可返回步骤S201。
S204:从静态资源池分配资源,来执行动态实例的创建。
从静态资源池分配满足资源配置要求的资源,来执行动态pod的创建,即使用静态资源池进行动态pod的创建。另外,还可记录动态pod所在的节点、以及动态pod的使用CPU、内存和磁盘等使用资源情况,以便后续确定静态资源池的已使用资源量,从而便于后续其余pod的调配;并且通过记录静态资源池上运行的动态pod的信息,可以在后续静态资源池无法满足静态pod的资源配置要求时确认是否需要驱逐和/或驱逐多少静态资源池上运行的动态pod,以便尽量保证静态pod的创建需求,从而尽量避免因为动态pod占用导致静态pod无法部署的情况的出现。
可选地,可以在静态资源池中选择合适的节点,并将动态pod调度到该节点上启动pod容器,以进行动态pod的创建。具体地,在步骤S204中,可以在静态资源池中的其中一个能够满足动态pod的资源配置要求的节点上进行动态pod的创建。
在静态资源池中满足动态pod的资源配置要求的节点的数量有多个时,可以通过轮询、权重选择、负载选择或随机选择等方法从静态资源池中的多个满足动态pod的资源配置要求的节点选择一个节点进行动态pod的创建。
另外,在资源池包括静态资源池和动态资源池的基础上,本申请还可提供又一实施方式基于k8s集群的资源调度方法。如图4所示,该基于k8s集群的资源调度方法包括以下步骤。需要注意的是,以下步骤编号仅用于简化说明,并不旨在限制步骤的执行顺序,本实施方式的各步骤可以在不违背本申请技术思想的基础上,任意更换执行顺序。
S301:响应于静态应用创建请求,确认能否利用静态资源池创建静态实例。
在接受到客户端的应用创建请求的情况下,可以确认能否利用静态资源池创建静态pod,其中静态pod为静态应用创建请求所请求创建的静态应用的pod;若能够利用静态资源池创建静态pod,则基于静态资源池完成静态pod的创建;若不能利用静态资源池创建静态pod,则进入步骤S302,以在静态资源池存在被动态pod占用的情况下,驱逐静态资源池上运行的动态pod,使用静态资源池进行静态pod的创建,如此在存在静态pod创建请求时,且静态资源池无资源但有动态pod占用了静态资源池的情况下,可通过驱逐静态资源池中动态pod的方式,确保静态pod在静态资源池充足的情况下优先创建;也可以理解为静态应用的pod优先级默认比动态应用的pod高,在创建新的静态pod且静态资源池资源不足时,新的静态pod会按照优先级抢占静态资源池中被动态pod占用的资源,如此确保了有一定量的资源用来部署静态应用,可以避免所有资源均被动态pod占用而导致静态应用部署时因无可用资源而等待、最终部署失败。
在一实现方式中,在步骤S301中,可以直接尝试利用步骤S304在静态资源池上创建静态pod;若创建成功,则能够利用静态资源池创建静态pod;若创建失败,则不能利用静态资源池创建静态pod,可进入步骤S302。
在又一实现方式中,在步骤S301中,可以通过判定静态资源池能否满足静态pod的资源配置要求的方式,确认能否利用静态资源池创建静态pod。具体地,判定静态资源池中是否存在能够满足静态pod的资源配置要求的节点;若静态资源池中存在能够满足静态pod的资源配置要求的节点,则能够利用静态资源池创建静态pod,此时可进入步骤S304;若静态资源池中不存在能够满足静态pod的资源配置要求的节点,则不能利用静态资源池创建静态pod,此时可返回步骤S302。
S302:确认静态资源池是否存在被动态实例占用的情况。
若不能利用静态资源池创建静态pod,确认静态资源池是否存在被动态pod占用的情况,其中,动态pod为声明的资源池类型为动态的应用的pod,即动态pod为动态应用的pod。若静态资源池存在被动态pod占用的情况,则进入步骤S303,以驱逐静态资源池上运行的动态pod,使用静态资源池进行静态pod的创建,如此通过驱逐静态资源池中动态pod的方式,确保静态pod在静态资源池充足的情况下优先创建;若静态资源池不存在被动态pod占用的情况,则返回至步骤S301,以待静态资源池有足够剩余资源时,利用静态资源池进行静态pod的创建。
S303:驱逐静态资源池上运行的动态实例。
若静态资源池存在被动态pod占用的情况,则可驱逐静态资源池上运行的动态pod,以便后续使用静态资源池进行静态pod的创建。
可选地,在步骤S303之前,可以先判断驱逐静态资源池上占用的动态pod后、静态资源池上的剩余资源能否满足静态pod的资源配置要求;若确认驱逐静态资源池上占用的动态pod后、静态资源池上的剩余资源能够满足静态pod的资源配置要求,则可以执行步骤S303;若确认驱逐静态资源池上占用的动态pod后、静态资源池上的剩余资源不能满足静态pod的资源配置要求,则可以返回步骤S301,直至静态资源池有足够剩余资源时,或者直至驱逐掉动态pod后静态资源池有足够的剩余资源后,利用静态资源池进行静态pod的创建。
进一步地,在步骤S303中,可以对静态资源池上运行的动态pod进行驱逐,直至静态资源池能够满足静态pod的资源配置要求,接着进入步骤S304,以使用静态资源池进行静态pod的创建。即如果对静态资源池上运行的部分动态pod进行驱逐就可使静态资源池满足静态pod的资源配置要求,则在步骤S303中可只对静态资源池上运行的这部分动态pod进行驱逐,可以不对静态资源池上的剩余部分动态pod进行驱逐,如此可以保证集群中资源的利用效率。当然,在其他实施例中,可以将静态资源池上运行的所有动态pod进行驱逐。
另外,若被驱逐后的动态pod被重新调度至动态资源池和/或静态资源池上的一个节点,则该节点可以利用被驱逐前动态pod的中间处理数据继续运行动态pod,以避免被驱逐后的动态pod需要从头开始执行,以提高集群中资源的利用率。
S304:从静态资源池分配资源,来执行静态实例的创建。
若静态资源池能够满足静态pod的资源配置要求,或者驱逐静态资源池上占用的至少部分动态pod后、静态资源池上的剩余资源能够满足静态pod的资源配置要求,则从静态资源池分配满足资源配置要求的资源,来执行静态pod的创建,即使用静态资源池进行静态pod的创建。
可选地,资源调度器可以选择静态资源池中的合适的节点,并将静态pod调度到该节点上启动pod容器,来完成静态pod的创建。
另外,基于本实施方式创建静态pod后,还可记录静态pod所在的节点、以及静态pod的使用CPU、内存和磁盘等使用资源情况,以便后续确定静态资源池的已使用资源量,从而便于后续其余pod的调配。
其中,上述基于k8s集群的资源调度方法可以由k8s集群中的管理设备来执行。
请参阅图5,图5是本申请电子设备20一实施方式的结构示意图。本申请电子设备20包括处理器22,处理器22用于执行指令以实现本申请上述任一实施方式的方法及任意不冲突的组合所提供的方法。
处理器22还可以称为CPU(Central Processing Unit,中央处理器)。处理器22可能是一种集成电路芯片,具有信号的处理能力。处理器22还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器,或者该处理器22也可以是任何常规的处理器等。
电子设备20还可进一步包括存储器21,用于存储处理器22运行所需的指令和数据。
请参阅图6,图6为本申请实施方式中计算机可读存储介质的结构示意图。本申请实施例的计算机可读存储介质30存储有指令/程序数据31,该指令/程序数据31被执行时实现本申请上述方法任一实施例以及任意不冲突的组合所提供的方法。其中,该指令/程序数据31可以形成程序文件以软件产品的形式存储在上述存储介质30中,以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质30包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等设备。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种基于k8s集群的资源调度方法,其特征在于,所述K8s集群的虚拟化资源池包括动态资源池和静态资源池,所述动态资源池用于运行动态pod应用,所述静态资源池用于运行静态pod应用,所述动态资源池和所述静态资源池中的pod的指定配置之和不大于所述虚拟化资源池的指定配置之和,所述方法包括:
所述k8s集群中的管理设备响应于客户端的动态应用创建请求,确认能否利用动态资源池创建动态pod,所述动态pod为所述动态应用的pod;
若不能利用动态资源池创建动态pod,从静态资源池分配资源而执行所述动态pod的创建。
2.根据权利要求1所述的基于k8s集群的资源调度方法,其特征在于,所述从静态资源池分配资源而执行所述动态pod的创建,之后包括;
响应于客户端的静态应用创建请求,若在不能利用所述静态资源池创建静态pod、且所述静态资源池被动态pod占用的情况下,驱逐所述静态资源池上运行的动态pod,所述静态pod为所述静态应用的pod;
从所述静态资源池分配资源,以执行所述静态pod的创建。
3.根据权利要求2所述的基于k8s集群的资源调度方法,其特征在于,所述若在不能利用所述静态资源池创建静态pod、且所述静态资源池被动态pod占用的情况下,驱逐所述静态资源池上运行的动态pod,包括:
若所述静态资源池存在被动态pod占用的情况,确认驱逐所述静态资源池上运行的动态pod后、所述静态资源池上的剩余资源能否满足所述静态pod的资源配置要求;
若确认驱逐所述静态资源池上运行的动态pod后、所述资源池上的剩余资源能够满足所述静态pod的资源配置要求,依次执行所述驱逐所述静态资源池上运行的动态pod、和所述从所述静态资源池分配资源,以执行所述静态pod的创建的步骤。
4.根据权利要求2或3所述的基于k8s集群的资源调度方法,其特征在于,所述驱逐所述静态资源池上运行的动态pod,包括:
对所述静态资源池上运行的动态pod进行驱逐,直至所述静态资源池能够满足静态pod的资源配置要求。
5.根据权利要求1所述的基于k8s集群的资源调度方法,其特征在于,所述确认能否利用动态资源池创建动态pod,之后包括:
若能,从所述动态资源池分配资源,以执行所述动态pod的创建。
6.根据权利要求1所述的基于k8s集群的资源调度方法,其特征在于,所述响应于客户端的动态应用创建请求,确认能否利用动态资源池创建动态pod,包括:
若所述动态应用创建请求声明的副本数量为预设数量,则依次确认能否利用动态资源池创建预设数量个动态pod中每个动态pod;
若能,则从所述动态资源池分配资源,以执行每个能够利用所述动态资源池创建的动态pod的创建;
若否,则从所述静态资源池分配资源,以执行每个不能利用所述动态资源池创建的动态pod的创建。
7.根据权利要求6所述的基于k8s集群的资源调度方法,其特征在于,所述响应于客户端的动态应用创建请求,确认能否利用动态资源池创建动态pod,包括:
响应于所述动态应用创建请求,生成所述动态应用的副本控制器;
所述执行所述动态pod的创建,之后包括:
通过所述副本控制器持续监控预设数量个所述动态pod的状态。
8.根据权利要求1所述的基于k8s集群的资源调度方法,其特征在于,
所述确认能否利用动态资源池创建动态pod,包括:判定所述动态资源池中是否存在能够满足所述动态pod的资源配置要求的节点;若所述动态资源池中存在能够满足所述动态pod的资源配置要求的节点,则能够利用动态资源池创建动态pod;若所述动态资源池中不存在能够满足所述动态pod的资源配置要求的节点,则不能利用动态资源池创建动态pod;
所述从静态资源池分配资源而执行所述动态pod的创建,包括:在所述静态资源池的其中一个能够满足所述动态pod的资源配置要求的节点上进行所述动态pod的创建。
9.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于执行指令以实现权利要求1-8中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令/程序数据,所述指令/程序数据用于被执行以实现权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211071960.8A CN115168057B (zh) | 2022-09-02 | 2022-09-02 | 基于k8s集群的资源调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211071960.8A CN115168057B (zh) | 2022-09-02 | 2022-09-02 | 基于k8s集群的资源调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115168057A CN115168057A (zh) | 2022-10-11 |
CN115168057B true CN115168057B (zh) | 2022-12-20 |
Family
ID=83482126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211071960.8A Active CN115168057B (zh) | 2022-09-02 | 2022-09-02 | 基于k8s集群的资源调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115168057B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114500523A (zh) * | 2021-11-29 | 2022-05-13 | 上海浦东发展银行股份有限公司 | 一种基于容器云平台的固定ip应用发布方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110780998A (zh) * | 2019-09-29 | 2020-02-11 | 武汉大学 | 基于Kubernetes的动态负载均衡资源调度方法 |
CN111399986A (zh) * | 2020-03-24 | 2020-07-10 | 中国建设银行股份有限公司 | Pod资源配额配置方法及装置 |
CN111522639B (zh) * | 2020-04-16 | 2022-11-01 | 南京邮电大学 | Kubernetes集群架构系统下多维资源调度方法 |
CN113568721A (zh) * | 2020-04-29 | 2021-10-29 | 华为技术有限公司 | 一种任务调度方法及相关设备 |
CN113971066A (zh) * | 2020-07-22 | 2022-01-25 | 中国科学院深圳先进技术研究院 | 一种Kubernetes集群资源动态调整方法及电子设备 |
JP7509234B2 (ja) * | 2020-12-01 | 2024-07-02 | 日本電信電話株式会社 | 計算資源クラスタ管理装置、計算資源クラスタ管理方法、および、計算資源クラスタ管理プログラム |
CN114035941A (zh) * | 2021-10-18 | 2022-02-11 | 阿里巴巴(中国)有限公司 | 资源调度系统、方法以及计算设备 |
CN114153604A (zh) * | 2021-11-25 | 2022-03-08 | 中国建设银行股份有限公司 | 一种容器集群控制方法及装置 |
-
2022
- 2022-09-02 CN CN202211071960.8A patent/CN115168057B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114500523A (zh) * | 2021-11-29 | 2022-05-13 | 上海浦东发展银行股份有限公司 | 一种基于容器云平台的固定ip应用发布方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115168057A (zh) | 2022-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110647394B (zh) | 一种资源分配方法、装置及设备 | |
CN111796908B (zh) | 一种资源自动弹性伸缩的系统、方法及云平台 | |
CN112269641B (zh) | 一种调度方法、装置、电子设备及存储介质 | |
CN111427675B (zh) | 一种数据处理方法、装置以及计算机可读存储介质 | |
JP2013513174A (ja) | 仮想マシンのストレージスペースおよび物理ホストを管理するための方法およびシステム | |
EP4242843A1 (en) | Graphics card memory management method and apparatus, device, and system | |
JP2014520346A5 (zh) | ||
CN109766172B (zh) | 一种异步任务调度方法以及装置 | |
CN111880936A (zh) | 资源调度方法、装置、容器集群、计算机设备和存储介质 | |
CN111124643A (zh) | 一种分布式存储中的删除任务调度方法、系统及相关装置 | |
CN112445615A (zh) | 一种线程的调度系统、计算机设备和存储介质 | |
CN111104227A (zh) | 一种K8s平台的资源控制方法、装置及相关组件 | |
CN111798113A (zh) | 资源分配方法、装置、存储介质和电子设备 | |
CN113886089A (zh) | 一种任务处理方法、装置、系统、设备及介质 | |
CN112905334A (zh) | 资源管理方法、装置、电子设备和存储介质 | |
CN112860387A (zh) | 分布式任务调度方法、装置、计算机设备及存储介质 | |
CN113886069A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN114625533A (zh) | 分布式任务调度方法、装置、电子设备及存储介质 | |
CN116185623A (zh) | 任务分配方法、装置、电子设备及存储介质 | |
CN111796933A (zh) | 资源调度方法、装置、存储介质和电子设备 | |
CN112073532B (zh) | 一种资源分配的方法及装置 | |
CN116483546B (zh) | 分布式训练任务调度方法、装置、设备及存储介质 | |
CN111813541B (zh) | 一种任务调度方法、装置、介质和设备 | |
CN110096352B (zh) | 进程管理方法、装置及计算机可读存储介质 | |
CN115168057B (zh) | 基于k8s集群的资源调度方法及装置 |
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 |