CN117311999A - 一种服务集群的资源调度方法、存储介质及电子设备 - Google Patents
一种服务集群的资源调度方法、存储介质及电子设备 Download PDFInfo
- Publication number
- CN117311999A CN117311999A CN202311633098.XA CN202311633098A CN117311999A CN 117311999 A CN117311999 A CN 117311999A CN 202311633098 A CN202311633098 A CN 202311633098A CN 117311999 A CN117311999 A CN 117311999A
- Authority
- CN
- China
- Prior art keywords
- node
- pod
- occupation
- value
- dimension
- 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
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000003860 storage Methods 0.000 title claims abstract description 20
- 238000004590 computer program Methods 0.000 claims description 7
- 238000003064 k means clustering Methods 0.000 claims description 5
- 230000003287 optical effect Effects 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
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
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
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
本发明涉及资源调度领域,特别是涉及一种服务集群的资源调度方法、存储介质及电子设备。包括:根据新增pod的加载时间,确定新增pod对应的运行时段;若运行时段为第一类运行时段,则根据新增pod的CPU占用信息Ck及内存占用信息Dk,对新增pod进行第一调度处理,以将新增pod运行在对应的node节点上。本发明中在确定目标加载节点时,不仅考虑了新增pod的资源占用信息,同时还考虑了新增pod加载时间对应的运行时段中,要加载pod的资源占用变化特征,由此可以在配置对应的目标加载节点时,不仅满足当前pod的使用需求,同时预留了对应的资源,可以保证在后续时段中,集群中各节点的资源占用会更加均衡。
Description
技术领域
本发明涉及资源调度领域,特别是涉及一种服务集群的资源调度方法、存储介质及电子设备。
背景技术
Kubernetes(通常称为K8s,K8s是将8个字母“ubernete”替换为“8”的缩写)是一个以容器为中心的基础架构,可以实现在物理集群或虚拟机集群上调度和运行容器,提供容器自动部署、扩展和管理的开源平台。满足了应用程序在生产环境中的一些通用需求:应用实例副本、水平自动扩展、命名与发现、负载均衡、滚动升级、资源监控等。
在K8s集群中包括了多个pod及node。pod可以理解为容器的外壳,它为容器做了一层抽象的封装,pod里面运行容器,pod的特点是可以将多个容器加入到同一个网络名称空间中。同一个pod可以共享储存卷。node是kubernetes集群中的工作节点,node可以是任何形式的计算设备。一个pod上无论是有一个容器还是有多个容器,一旦将此pod调度到某个node上运行时,这一个pod内的所有容器只能运行在同一个node上。
现有的K8s虽然具有根据当前pod的资源占用以及集群中各node的资源剩余情况,进行资源调度的能力,以尽量使每一个node节点上的资源占用较为均衡。但是在不同的使用场景中,由于工作繁忙时段不同且不同时段中建立的pod的资源占用特征也存在差异,仅根据上述特征进行资源调度,无法为未来时段的pod预留对应的资源。如图2及图3所示,由此依然会在后续时段中出现,集群中各node节点的资源占用不均衡的情况。
发明内容
针对上述技术问题,本发明采用的技术方案为:
根据本发明的一个方面,提供了一种服务集群的资源调度方法,应用于第一服务系统,服务系统包括多个node节点,node节点用于运行至少一个pod;
资源调度方法包括如下步骤:
根据新增pod的加载时间,确定新增pod对应的运行时段;
若运行时段为第一类运行时段,则根据新增pod的CPU占用信息Ck及内存占用信息Dk,对新增pod进行第一调度处理,以将新增pod运行在对应的node节点上;第一类运行时段为在对应的运行时段中,加载至第一服务系统中的多个pod的CPU占用信息和/或内存占用信息的波动率大于第一波动阈值的运行时段;
第一调度处理包括:
获取第一服务系统中每一node节点的当前可用资源信息;其中,当前可用资源信息包括node节点的当前CPU可用量及当前内存可用量;
确定新增pod对应的优先调度维度;优先调度维度为运行时段中波动率更大的资源维度;优先调度维度为CPU占用维度或内存占用维度;
获取运行时段中优先调度维度对应的低占用上限值Ds及高占用下限值Gx;
若新增pod对应的优先调度维度为CPU占用维度,且Ck<Ds,则根据Ck及Ds从多个node节点中确定出第一初始加载节点;第一初始加载节点为当前CPU可用量在[Ck,Ds]中的node节点;
根据Dk从多个第一初始加载节点中,获取至少一个第一中间加载节点,第一中间加载节点为当前内存可用量符合Dk对应的使用条件的第一初始加载节点;
从多个第一中间加载节点中,获取当前CPU可用量最小的第一中间加载节点,作为新增pod对应的第一目标加载节点。
进一步的,在获取运行时段中优先调度维度对应的低占用上限值Ds及高占用下限值Gx之后,该方法还包括:
若新增pod对应的优先调度维度为CPU占用维度,且Ck>Gx,则根据Ck从多个node节点中确定出第二初始加载节点;第二初始加载节点为当前CPU可用量大于Ck的node节点;
根据Dk从多个第二初始加载节点中,获取至少一个第二中间加载节点,第二中间加载节点为当前内存可用量符合Dk对应的使用条件的第二初始加载节点;
从多个第二中间加载节点中,获取当前CPU可用量最大的第二中间加载节点,作为新增pod对应的第二目标加载节点。
进一步的,运行时段对应的类型按照如下步骤确定:
获取多个历史运行周期中第一服务系统中已加载的pod的加载信息,加载信息包括对应pod的加载时间、pod的CPU占用值及pod的内存占用值;
将每一历史运行周期均划分为相同的运行时段;
根据pod的加载时间,获取每一运行时段对应的加载信息;
根据每一运行时段中包括的多个pod的CPU占用值,确定出每一运行时段对应的CPU占用波动值;
根据每一运行时段中包括的多个pod的内存占用值,确定出每一运行时段对应的内存占用波动值;
若CPU占用波动值大于第一波动阈值或内存占用波动值大于第二波动阈值,则确定对应的运行时段为第一类运行时段。
进一步的,在确定出运行时段对应的CPU占用波动值及内存占用波动值之后,运行时段对应的类型的确定步骤还包括:
若CPU占用波动值小于第一波动阈值且内存占用波动值小于第二波动阈值,则确定对应的运行时段为第二类运行时段。
进一步的,获取运行时段中优先调度维度对应的低占用上限值Ds及高占用下限值Gx,包括:
对运行时段中优先调度维度对应的多个历史数值,按照大小进行K-Means聚类处理,生成两个数值族群,其中,值较小的数值族群为低值族群,值较大的数值族群为高值族群;
将低值族群中的最大值,作为低占用上限值;
将高值族群中的最小值,作为高占用下限值。
进一步的,使用方差计算每一运行时段对应的CPU占用波动值及内存占用波动值。
进一步的,确定新增pod对应的优先调度维度,包括:
获取新增pod对应的运行时段中的CPU占用波动值及内存占用波动值;
若CPU占用波动值大于内存占用波动值,则确定CPU占用维度为新增pod对应的优先调度维度;
若内存占用波动值大于CPU占用波动值,则确定内存占用维度为新增pod对应的优先调度维度。
进一步的,在获取运行时段中优先调度维度对应的低占用上限值Ds及高占用下限值Gx之后,方法还包括:
若新增pod对应的优先调度维度为内存占用维度,且Dk>Gx,则根据Dk从多个node节点中确定出第三初始加载节点;第三初始加载节点为当前内存可用量大于Dk的node节点;
根据Ck从多个第三初始加载节点中,获取至少一个第三中间加载节点,第三中间加载节点为当前CPU可用量符合Ck对应的使用条件的第三初始加载节点;
从多个第三中间加载节点中,获取当前内存可用量最大的第三中间加载节点,作为新增pod对应的第三目标加载节点。
根据本发明的第二个方面,提供了一种非瞬时性计算机可读存储介质,非瞬时性计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述的一种服务集群的资源调度方法。
根据本发明的第三个方面,提供了一种电子设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的一种服务集群的资源调度方法。
本发明至少具有以下有益效果:
本发明中先根据新增pod的加载时间,可以确定出该pod对应的运行时段,然后根据其对应的运行时段的类型来进行具体的资源调度。具体的,当运行时段为第一类运行时段时,也即在该时段中加载的pod的CPU占用信息和/或内存占用信息的波动率较大。由于,波动较大所以需要按照本发明中的第一调度处理来将pod加载至对应的node上,以保证集群中的各个node的资源使用率更加均衡,进而保证系统的顺畅运行。
由于,pod的资源占用主要包括CPU及内存资源的占用,所以本发明中的第一调度处理先根据CPU占用信息的波动率和内存占用信息的波动率,确定出其中需要优先进行调度的资源维度,然后,根据低占用上限值Ds、高占用下限值Gx以及新增pod的资源占用信息,来从多个node节点中确定出多个中间加载节点,然后再通过新增pod的另一资源占用维度信息,来从多个中间加载节点中确定出对应的目标加载节点。本发明中根据新增pod的资源占用信息以及其对应的运行时段的特征,来共同确定出目标加载节点。又在确定目标加载节点时,不仅考虑了新增pod的资源占用信息,同时还考虑了新增pod加载时间对应的运行时段中,要加载pod的资源占用变化特征,由此可以在配置对应的目标加载节点时,不仅满足当前pod的使用需求,同时为后续时段加载的pod预留了对应的资源,进而可以保证在后续时段中,集群中各node节点的资源占用会更加均衡。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种服务集群的资源调度方法的流程图;
图2为现有的K8s中不同时刻下各节点的CPU资源占用率图;
图3为现有的K8s中不同时刻下各节点的内存资源占用率图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
作为本发明的一个可能的实施例,如图1所示,公开了一种服务集群的资源调度方法,该方法应用于第一服务系统,服务系统包括多个node节点,node节点用于运行至少一个pod。具体的,本发明中的第一服务系统可以为有K8s集群构成的服务系统。每一个pod用于为用户提供至少一个对应的服务。
资源调度方法包括如下步骤:
S100:根据新增pod的加载时间,确定新增pod对应的运行时段。
通常在不同的应用场景中,由于提供的服务以及用户的类型存在差异,所以使用对应服务的繁忙时段及空闲时段也会存在不同。对应的,pod的加载也存在繁忙时段及空闲时段。而该种变化规律一般会以对应场景中的运行周期为循环周期重复出现。如以日常出行为例,通常会在每一个工作日的上下班高峰期,会出现较大量的打车服务请求,而在其他时段则较少。该种规律会以一天(运行周期)为周期不断重复出现。
所以,根据上述特征一般会将使用场景中的运行周期划分为多个运行时段,以根据每一个运行时段对应的新增pod的特征来,更好选择对应的node节点来进行挂载。具体的,若运行周期为一天,则运行时段可以按照一个小时或30分钟或其他时间间隔进行划分。
具体的,运行时段对应的类型按照如下步骤确定:
S101:获取多个历史运行周期中第一服务系统中已加载的pod的加载信息,加载信息包括对应pod的加载时间、pod的CPU占用值及pod的内存占用值。
S102:将每一历史运行周期均划分为相同的运行时段。
S103:根据pod的加载时间,获取每一运行时段对应的加载信息。
S104:根据每一运行时段中包括的多个pod的CPU占用值,确定出每一运行时段对应的CPU占用波动值。
S105:根据每一运行时段中包括的多个pod的内存占用值,确定出每一运行时段对应的内存占用波动值。
具体的,可以使用方差计算每一运行时段对应的CPU占用波动值及内存占用波动值。
S106:若CPU占用波动值大于第一波动阈值或内存占用波动值大于第二波动阈值,则确定对应的运行时段为第一类运行时段。
S107:若CPU占用波动值小于第一波动阈值且内存占用波动值小于第二波动阈值,则确定对应的运行时段为第二类运行时段。
由于,同一使用场景中每一个运行周期对应的运行情况大致相同,所以可以根据多个历史运行周期中产生的历史数据,来确定出每一个运行时段中CPU占用波动值及内存占用波动值。同时使用多个历史运行周期中产生的历史数据,可以增加统计数据的数据量,以保证最终计算的波动值的准确度。
S200:若运行时段为第一类运行时段,则根据新增pod的CPU占用信息Ck及内存占用信息Dk,对新增pod进行第一调度处理,以将新增pod运行在对应的node节点上。第一类运行时段为在对应的运行时段中,加载至第一服务系统中的多个pod的CPU占用信息和/或内存占用信息的波动率大于第一波动阈值的运行时段。新增pod在加载至目标节点之前,K8s中的资源配置单元会为其配置对应的资源。由此,可以通过K8s获取到每一新增pod的CPU占用信息Ck及内存占用信息Dk。
通常波动较小的运行时段(第二类运行时段),则表示每一个加载的pod的情况大致一样,所以在选择对应的目标加载节点时,不太需要考虑后续时段中会出现突变的现象。可以按照现有常规资源调度方式及加载,如可以为获取剩余可用资源最多的node节点,作为目标加载节点。或使用K8s现有的资源调度策略进行配置。
但是,若为波动较大的运行时段(第一类运行时段),则表示每一个加载的pod的情况相差加大,所以在选择对应的目标加载节点时,需要考虑后续时段中出现的突变现象。可以按照本发明的第一调度处理进行调度。具体的,第一调度处理包括:
S201:获取第一服务系统中每一node节点的当前可用资源信息。其中,当前可用资源信息包括node节点的当前CPU可用量及当前内存可用量。
S202:确定新增pod对应的优先调度维度。优先调度维度为运行时段中波动率更大的资源维度。优先调度维度为CPU占用维度或内存占用维度。
具体的,S202包括:
S212:获取新增pod对应的运行时段中的CPU占用波动值及内存占用波动值。
S222:若CPU占用波动值大于内存占用波动值,则确定CPU占用维度为新增pod对应的优先调度维度。
S232:若内存占用波动值大于CPU占用波动值,则确定内存占用维度为新增pod对应的优先调度维度。
由于,pod的资源占用主要包括CPU及内存资源的占用,所以本发明中的第一调度处理先根据CPU占用信息的波动率和内存占用信息的波动率,确定出两个资源占用维度中,最需要优先进行调度的资源维度,以进行优先考虑。
S203:获取运行时段中优先调度维度对应的低占用上限值Ds及高占用下限值Gx。
由于,波动值较大,则表明该运行时段中最少会有两种特征状态的pod。如资源占用相对较小的pod,及资源占用相对较大的pod。根据该特征,可以得到低资源占用pod中的资源占用上限值Ds,以及稿资源占用pod中的资源占用下限值Gx。依次来为后续的资源调度作为参考因素。
一方面若优先调度维度为CPU占用维度,其对应的调度方法如下:
S204:若新增pod对应的优先调度维度为CPU占用维度,且Ck<Ds,则根据Ck及Ds从多个node节点中确定出第一初始加载节点。第一初始加载节点为当前CPU可用量在[Ck,Ds]中的node节点。
S205:根据Dk从多个第一初始加载节点中,获取至少一个第一中间加载节点,第一中间加载节点为当前内存可用量符合Dk对应的使用条件的第一初始加载节点。
S206:从多个第一中间加载节点中,获取当前CPU可用量最小的第一中间加载节点,作为新增pod对应的第一目标加载节点。
当Ck<Ds时,则说明当前的pod为低资源占用的pod。在该情况下,需要将该新增pod加载在CPU可用量能够满足的Ck使用,且最小CPU可用量对应的node节点中。该调度可以使用低占用的pod,进一步的将集群中的剩余的零散的低可用资源进行利用。可以避免较小的pod加载至具有较大CPU可用量node节点上,进而对大可用量的node节点造成破坏。由此,可以保留较多的高可用资源的node节点,以为后期可能出现的高占用pod预留足够的资源,以便后续的高占用pod可以顺利的加载到对应的节点上。
另外,在S203:获取运行时段中优先调度维度对应的低占用上限值Ds及高占用下限值Gx之后,该方法还包括:
S214:若新增pod对应的优先调度维度为CPU占用维度,且Ck>Gx,则根据Ck从多个node节点中确定出第二初始加载节点。第二初始加载节点为当前CPU可用量大于Ck的node节点。
S215:根据Dk从多个第二初始加载节点中,获取至少一个第二中间加载节点,第二中间加载节点为当前内存可用量符合Dk对应的使用条件的第二初始加载节点。
S216:从多个第二中间加载节点中,获取当前CPU可用量最大的第二中间加载节点,作为新增pod对应的第二目标加载节点。
当Ck>Gx时,则说明当前的pod为高资源占用的pod。在该情况下,需要将该新增pod加载在CPU可用量能够满足的Ck使用,且最大CPU可用量对应的node节点中。该调度可以先使用高占用的pod,将集群中的高可用资源进行利用,以保证高占用pod的正常使用。同时,由于,是对最大的CPU可用量进行占用,所以高node节点剩余的CPU可用量,还可以供占用小的pod使用,甚至可以共一个高占用的pod使用。
另外,还可以将S216替换为:从多个第二中间加载节点中,获取当前CPU可用量最小的第二中间加载节点,作为新增pod对应的第二目标加载节点。由此,可以保证集群中,可以尽可能多的将CPU可用量较大的node节点预留下来,以为后续到来的高占用pod预留足够的资源。
另一方面,若优先调度维度为内存占用维度。其对应的调度方法,与上述优先调度维度为CPU占用维度对应的调度方法(S204-S206及S214-S216)基本相同,仅是优先考虑的资源占用类型发生了对调。
具体的,若Dk>Gx,则目标加载节点的确定方法如下:
S224:若新增pod对应的优先调度维度为内存占用维度,且Dk>Gx,则根据Dk从多个node节点中确定出第三初始加载节点。第三初始加载节点为当前内存可用量大于Dk的node节点。
S225:根据Ck从多个第三初始加载节点中,获取至少一个第三中间加载节点,第三中间加载节点为当前CPU可用量符合Ck对应的使用条件的第三初始加载节点。
S226:从多个第三中间加载节点中,获取当前内存可用量最大的第三中间加载节点,作为新增pod对应的第三目标加载节点。
同理,若Dk<Ds,则目标加载节点的确定方法,与S204-S206的步骤基本相同,在此不在赘述。
本发明中根据新增pod的资源占用信息以及其对应的运行时段的特征,来共同确定出目标加载节点。又在确定目标加载节点时,不仅考虑了新增pod的资源占用信息,同时还考虑了新增pod加载时间对应的运行时段中,要加载pod的资源占用变化特征,由此可以在配置对应的目标加载节点时,不仅满足当前pod的使用需求,同时为后续时段加载的pod预留了对应的资源,进而可以保证在后续时段中,集群中各node节点的资源占用会更加均衡。
作为本发明的另一个可能的实施例,S203:获取运行时段中优先调度维度对应的低占用上限值Ds及高占用下限值Gx,包括:
S213:对运行时段中优先调度维度对应的多个历史数值,按照大小进行K-Means聚类处理,生成两个数值族群,其中,值较小的数值族群为低值族群,值较大的数值族群为高值族群。
以内存占用为例,如多个历史数值分别为2M、4M、1M、3M、4M、2M、1.5M、3M、8M、9M、8M、10M、8M、9M、11M。则分类后的低值族群中包括2M、4M、1M、3M、4M、2M、1.5M及3M。低值族群中包括8M、9M、8M、10M、8M、9M及11M。
由于,用户请求的高占用服务和低占用服务基本都相同,所以对应的pod的资源占用也会出现高低两个值域,进而可以使用K-Means聚类进行准确区分。
S223:将低值族群中的最大值,作为低占用上限值。
S233:将高值族群中的最小值,作为高占用下限值。
通常,在一个运行时段中用户发起了多种服务请求,且多种服务请求中会存在高资源占用及低资源占用的服务请求,由此才会出现加载的多个pod的资源占用波动较大的情况。为了能够更加准确的确定出,该运行时段中出现的高占用及低占用的情况。所以本实施例中使用K-Means聚类,分别获取CPU占用中的高占用族群及低占用族群;及内存占用中的高占用族群及低占用族群。由此可以更加的准确的获取到对应的低占用上限值及高占用下限值,以后后续的资源调度提供更加准确的依据。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
根据本发明的这种实施方式的电子设备。电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:上述至少一个处理器、上述至少一个储存器、连接不同系统组件(包括储存器和处理器)的总线。
其中,储存器存储有程序代码,程序代码可以被处理器执行,使得处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
储存器可以包括易失性储存器形式的可读介质,例如随机存取储存器(RAM)和/或高速缓存储存器,还可以进一步包括只读储存器(ROM)。
储存器还可以包括具有一组(至少一个)程序模块的程序/实用工具,这样的程序模块包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线可以为表示几类总线结构中的一种或多种,包括储存器总线或者储存器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
电子设备也可以与一个或多个外部设备(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,和/或与使得该电子设备能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口进行。并且,电子设备还可以通过网络适配器与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器通过总线与电子设备的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种服务集群的资源调度方法,其特征在于,应用于第一服务系统,所述服务系统包括多个node节点,node节点用于运行至少一个pod;
所述资源调度方法包括如下步骤:
根据新增pod的加载时间,确定所述新增pod对应的运行时段;
若所述运行时段为第一类运行时段,则根据所述新增pod的CPU占用信息Ck及内存占用信息Dk,对所述新增pod进行第一调度处理,以将所述新增pod运行在对应的node节点上;所述第一类运行时段为在对应的运行时段中,加载至第一服务系统中的多个pod的CPU占用信息和/或内存占用信息的波动率大于第一波动阈值的运行时段;
所述第一调度处理包括:
获取第一服务系统中每一node节点的当前可用资源信息;其中,当前可用资源信息包括node节点的当前CPU可用量及当前内存可用量;
确定所述新增pod对应的优先调度维度;所述优先调度维度为运行时段中波动率更大的资源维度;所述优先调度维度为CPU占用维度或内存占用维度;
获取所述运行时段中优先调度维度对应的低占用上限值Ds及高占用下限值Gx;
若新增pod对应的优先调度维度为CPU占用维度,且Ck<Ds,则根据Ck及Ds从多个所述node节点中确定出第一初始加载节点;所述第一初始加载节点为当前CPU可用量在[Ck,Ds]中的node节点;
根据Dk从多个第一初始加载节点中,获取至少一个第一中间加载节点,所述第一中间加载节点为当前内存可用量符合Dk对应的使用条件的第一初始加载节点;
从多个所述第一中间加载节点中,获取当前CPU可用量最小的第一中间加载节点,作为所述新增pod对应的第一目标加载节点。
2.根据权利要求1所述的方法,其特征在于,在获取所述运行时段中优先调度维度对应的低占用上限值Ds及高占用下限值Gx之后,所述方法还包括:
若新增pod对应的优先调度维度为CPU占用维度,且Ck>Gx,则根据Ck从多个所述node节点中确定出第二初始加载节点;所述第二初始加载节点为当前CPU可用量大于Ck的node节点;
根据Dk从多个第二初始加载节点中,获取至少一个第二中间加载节点,所述第二中间加载节点为当前内存可用量符合Dk对应的使用条件的第二初始加载节点;
从多个所述第二中间加载节点中,获取当前CPU可用量最大的第二中间加载节点,作为所述新增pod对应的第二目标加载节点。
3.根据权利要求1所述的方法,其特征在于,所述运行时段对应的类型按照如下步骤确定:
获取多个历史运行周期中第一服务系统中已加载的pod的加载信息,所述加载信息包括对应pod的加载时间、pod的CPU占用值及pod的内存占用值;
将每一历史运行周期均划分为相同的运行时段;
根据pod的加载时间,获取每一运行时段对应的加载信息;
根据每一运行时段中包括的多个pod的CPU占用值,确定出每一运行时段对应的CPU占用波动值;
根据每一运行时段中包括的多个pod的内存占用值,确定出每一运行时段对应的内存占用波动值;
若CPU占用波动值大于第一波动阈值或内存占用波动值大于第二波动阈值,则确定对应的所述运行时段为第一类运行时段。
4.根据权利要求3所述的方法,其特征在于,在确定出运行时段对应的CPU占用波动值及内存占用波动值之后,所述运行时段对应的类型的确定步骤还包括:
若CPU占用波动值小于第一波动阈值且内存占用波动值小于第二波动阈值,则确定对应的所述运行时段为第二类运行时段。
5.根据权利要求3所述的方法,其特征在于,获取所述运行时段中优先调度维度对应的低占用上限值Ds及高占用下限值Gx,包括:
对运行时段中优先调度维度对应的多个历史数值,按照大小进行K-Means聚类处理,生成两个数值族群,其中,值较小的数值族群为低值族群,值较大的数值族群为高值族群;
将低值族群中的最大值,作为低占用上限值;
将高值族群中的最小值,作为高占用下限值。
6.根据权利要求3所述的方法,其特征在于,
使用方差计算每一运行时段对应的CPU占用波动值及内存占用波动值。
7.根据权利要求3所述的方法,其特征在于,确定所述新增pod对应的优先调度维度,包括:
获取所述新增pod对应的运行时段中的CPU占用波动值及内存占用波动值;
若CPU占用波动值大于内存占用波动值,则确定CPU占用维度为所述新增pod对应的优先调度维度;
若内存占用波动值大于CPU占用波动值,则确定内存占用维度为所述新增pod对应的优先调度维度。
8.根据权利要求1所述的方法,其特征在于,在获取所述运行时段中优先调度维度对应的低占用上限值Ds及高占用下限值Gx之后,所述方法还包括:
若新增pod对应的优先调度维度为内存占用维度,且Dk>Gx,则根据Dk从多个所述node节点中确定出第三初始加载节点;所述第三初始加载节点为当前内存可用量大于Dk的node节点;
根据Ck从多个第三初始加载节点中,获取至少一个第三中间加载节点,所述第三中间加载节点为当前CPU可用量符合Ck对应的使用条件的第三初始加载节点;
从多个所述第三中间加载节点中,获取当前内存可用量最大的第三中间加载节点,作为所述新增pod对应的第三目标加载节点。
9.一种非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的一种服务集群的资源调度方法。
10.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任一项所述的一种服务集群的资源调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311633098.XA CN117311999B (zh) | 2023-12-01 | 2023-12-01 | 一种服务集群的资源调度方法、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311633098.XA CN117311999B (zh) | 2023-12-01 | 2023-12-01 | 一种服务集群的资源调度方法、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117311999A true CN117311999A (zh) | 2023-12-29 |
CN117311999B CN117311999B (zh) | 2024-01-26 |
Family
ID=89288786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311633098.XA Active CN117311999B (zh) | 2023-12-01 | 2023-12-01 | 一种服务集群的资源调度方法、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117311999B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118245197A (zh) * | 2024-05-27 | 2024-06-25 | 中航信移动科技有限公司 | 一种多类型集群协同调度方法、存储介质及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170339065A1 (en) * | 2016-05-20 | 2017-11-23 | Shoretel, Inc. | Hybrid cloud deployment for hybrid unified communications |
CN111124829A (zh) * | 2019-12-22 | 2020-05-08 | 北京浪潮数据技术有限公司 | 一种kubernetes计算节点状态监测方法 |
CN114579271A (zh) * | 2022-02-28 | 2022-06-03 | 阿里巴巴(中国)有限公司 | 任务调度方法、分布式系统及存储介质 |
CN115202810A (zh) * | 2022-06-23 | 2022-10-18 | 山东产业技术研究院智能计算研究院 | 一种Kubernetes工作节点分配方法及系统 |
US20230035310A1 (en) * | 2021-07-28 | 2023-02-02 | Vmware, Inc. | Systems that deploy and manage applications with hardware dependencies in distributed computer systems and methods incorporated in the systems |
CN116257324A (zh) * | 2023-03-03 | 2023-06-13 | 赢火虫信息科技(上海)有限公司 | 一种服务集群弹性伸缩方法、装置、电子设备及存储介质 |
-
2023
- 2023-12-01 CN CN202311633098.XA patent/CN117311999B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170339065A1 (en) * | 2016-05-20 | 2017-11-23 | Shoretel, Inc. | Hybrid cloud deployment for hybrid unified communications |
CN111124829A (zh) * | 2019-12-22 | 2020-05-08 | 北京浪潮数据技术有限公司 | 一种kubernetes计算节点状态监测方法 |
US20230035310A1 (en) * | 2021-07-28 | 2023-02-02 | Vmware, Inc. | Systems that deploy and manage applications with hardware dependencies in distributed computer systems and methods incorporated in the systems |
CN114579271A (zh) * | 2022-02-28 | 2022-06-03 | 阿里巴巴(中国)有限公司 | 任务调度方法、分布式系统及存储介质 |
CN115202810A (zh) * | 2022-06-23 | 2022-10-18 | 山东产业技术研究院智能计算研究院 | 一种Kubernetes工作节点分配方法及系统 |
CN116257324A (zh) * | 2023-03-03 | 2023-06-13 | 赢火虫信息科技(上海)有限公司 | 一种服务集群弹性伸缩方法、装置、电子设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118245197A (zh) * | 2024-05-27 | 2024-06-25 | 中航信移动科技有限公司 | 一种多类型集群协同调度方法、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117311999B (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111966500B (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN111813545B (zh) | 一种资源配置方法、装置、介质和设备 | |
CN109753356A (zh) | 一种容器资源调度方法、装置及计算机可读存储介质 | |
CN112363813A (zh) | 资源调度方法、装置、电子设备和计算机可读介质 | |
CN117311999B (zh) | 一种服务集群的资源调度方法、存储介质及电子设备 | |
CN112540841B (zh) | 任务调度的方法、装置、处理器与电子设备 | |
US12026536B2 (en) | Rightsizing virtual machine deployments in a cloud computing environment | |
CN112667405B (zh) | 信息处理方法、装置、设备及存储介质 | |
US20220229701A1 (en) | Dynamic allocation of computing resources | |
CN112068957A (zh) | 资源分配方法、装置、计算机设备及存储介质 | |
CN113641413A (zh) | 目标模型加载更新方法及装置、可读介质和电子设备 | |
CN111190719A (zh) | 优化集群资源分配的方法、装置、介质及电子设备 | |
CN113886086A (zh) | 云平台计算资源分配方法、系统、终端及存储介质 | |
CN111694670B (zh) | 资源分配方法、装置、设备和计算机可读介质 | |
CN112148448B (zh) | 资源分配方法、装置、设备和计算机可读介质 | |
CN114090201A (zh) | 资源调度方法、装置、设备及存储介质 | |
CN114253663A (zh) | 一种虚拟机资源的调度方法和装置 | |
CN112148497A (zh) | 一种磁盘资源管理方法、装置及电子设备 | |
CN113760528A (zh) | 基于多云平台的资源处理方法和装置 | |
CN111625343A (zh) | 容器调度方法、装置、计算机设备及存储介质 | |
CN110765136A (zh) | 标识符的管理方法、装置、介质及设备 | |
CN117891618B (zh) | 人工智能模型训练平台的资源任务处理方法及装置 | |
US20240354149A1 (en) | Rightsizing virtual machine deployments in a cloud computing environment | |
CN116820539B (zh) | 一种基于互联网的系统软件运行维护系统及方法 | |
US11782490B2 (en) | Software-defined fail-safe power draw control for rack power distribution units |
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 |