一种批调度器的调度方法、装置及介质与流程

文档序号:31210236发布日期:2022-08-20 03:25阅读:75来源:国知局
一种批调度器的调度方法、装置及介质与流程

1.本技术涉及计算机技术领域,特别是涉及一种批调度器的调度方法、装 置及介质。


背景技术:

2.在一个计算机集群中,可能会有成千上万个容器在运行,手动管理这么 多的容器是一件几乎不可能的事情。kubernetes(通常称为k8s,是来自google 云平台的开源容器集群管理系统,用于自动部署、扩展和管理容器化 (containerized)应用程序)是一个能够自动化管理大规模容器的开源平台,它 能完成容器的部署和复制、容器的扩缩容、维持容器间的负载均衡等重要功 能。在kubernetes中,pod是一组容器的集合,是最基本的调度单位。podgroup 是一组pod副本。kubernetes的控制器,关联一个podgroup,管理podgroup 中pod的生命周期。控制器常用于分布式计算任务,满足这类任务中pod需 要成批调度的场景。与之对应的,kubernetes批调度器用来协调集群计算资源, 负责为一组pod选择一些最佳的节点资源设备来运行。
3.批调度器必须遵循这样一个基本原则:当一个podgroup申请了资源,但 集群当前节点资源设备的资源余量无法满足它的申请资源量时,可能没有或 者只有部分pod能够分配到足够资源,如果这些pod的数量低于podgroup限 制的最小值时,这个podgroup中的所有pod都不会被成功调度(分配计算资 源)。因此批调度器会遇到这样一种困境:有两个podgroup a和podgroup b 先后被创建,集群当前资源余量满足podgroup b的申请资源量,但无法满足 podgroup a的申请资源量,那podgroup b会调度成功,podgroup a将继续 等待集群释放资源。如果集群中不断地有类似于podgroup b这样可以立刻被 调度成功的podgroup被创建出来,集群资源余量可能会很长时间都无法积累 到podgroup a的资源申请量,导致任务podgroup a超长时间等待甚至饿死。
4.由此可见,提供一种超时podgroup的资源调度分配方法,是本领域人员 亟待解决的技术问题。


技术实现要素:

5.本技术的目的是提供一种避免podgroup超长时间等待甚至饿死的批调度 器的调度方法。
6.为解决上述技术问题,本技术提供一种批调度器的调度方法,包括:
7.判断待调度podgroup的等待时间是否超过预设时间;
8.若所述待调度podgroup的等待时间超过预设时间,判断节点资源设备的 全部资源量与预留资源量的差值,是否大于一个pod的pod申请资源量;
9.若所述差值大于所述pod申请资源量,将当前所述节点资源设备作为所 述pod的待选节点资源设备;
10.从所有所述待选节点资源设备中选取所述pod的目标节点资源设备;
11.判断所述目标节点资源设备的剩余可用资源量是否小于所述pod申请资 源量;
12.若所述剩余可用资源量小于所述pod申请资源量,将所述目标节点资源 设备的原所述预留资源量更新为原所述预留资源量与所述pod申请资源量的 和;
13.当所述待调度podgroup中满足分配条件的所述pod的数量大于预设最小 值时,将所述待调度podgroup调度至对应的所述目标节点资源设备。
14.优选地,上述批调度器的调度方法中,若判断所述目标节点资源设备的 剩余可用资源量不小于所述pod申请资源量,则还包括:
15.将所述目标节点资源设备的原所述剩余可用资源量更新为原所述剩余可 用资源量与所述pod申请资源量的差值,原所述预留资源量更新为原所述预 留资源量与所述pod申请资源量的和;
16.当所述待调度podgroup中满足分配条件的所述pod的数量大于预设最小 值时,将所述待调度podgroup调度至对应的所述目标节点资源设备。
17.优选地,上述批调度器的调度方法中,所述判断待调度podgroup的等待 时间是否超过预设时间之前,还包括:
18.接收所述待调度podgroup、所述pod、所述节点资源设备的数据信息。
19.优选地,上述批调度器的调度方法中,所述当所述待调度podgroup中满 足分配条件的所述pod的数量大于预设最小值时,将所述待调度podgroup调 度至对应的所述目标节点资源设备,包括:
20.判断当前所述待调度podgroup中全部所述pod对应的所述目标节点资源 设备的所述预留资源量是否均小于所述剩余可用资源量;
21.若是,将当前所述待调度podgroup中所述pod调度至对应的所述目标节 点资源设备。
22.优选地,上述批调度器的调度方法中,若判断待调度podgroup的等待时 间没有超过预设时间,则还包括:
23.判断所述节点资源设备的所述剩余可用资源量是否大于所述pod申请资 源量;
24.若是,将当前所述节点资源设备作为当前所述pod的待选节点资源设备;
25.从所有所述待选节点资源设备中选取当前所述pod的目标节点资源设备。
26.优选地,上述批调度器的调度方法中,所述从所有所述待选节点资源设 备中选取当前所述pod的目标节点资源设备之后,还包括:
27.判断当前所述待调度podgroup中所述pod对应的所述目标节点资源设备 的所述剩余可用资源量大于所述pod申请资源量的所述pod的数量是否不小 于所述预设最小值;
28.若是,将当前所述待调度podgroup中的所述pod调度至对应的所述目标 节点资源设备。
29.优选地,上述批调度器的调度方法中,若当前所述待调度podgroup中所 述pod对应的所述目标节点资源设备的所述剩余可用资源量大于所述pod申 请资源量的所述pod的数量小于所述预设最小值,则还包括:
30.取消调度当前所述待调度podgroup,等待下一次调度周期。
31.为解决上述技术问题,本技术还提供一种批调度器的调度装置,包括:
32.第一判断模块,用于判断待调度podgroup的等待时间是否超过预设时间; 若所述
待调度podgroup的等待时间超过预设时间,触发第二判断模块;
33.所述第二判断模块,用于判断节点资源设备的全部资源量与预留资源量 的差值,是否大于一个pod的pod申请资源量;若所述差值大于所述pod申 请资源量,触发选择模块;
34.所述选择模块,用于将当前所述节点资源设备作为所述pod的待选节点 资源设备;
35.筛选模块,用于从所有所述待选节点资源设备中选取所述pod的目标节 点资源设备;
36.第三判断模块,用于判断所述目标节点资源设备的剩余可用资源量是否 小于所述pod申请资源量;若所述剩余可用资源量小于所述pod申请资源量, 触发更新模块;
37.所述更新模块,用于将所述目标节点资源设备的原所述预留资源量更新 为原所述预留资源量与所述pod申请资源量的和;
38.调度模块,用于当所述待调度podgroup中满足分配条件的所述pod的数 量大于预设最小值时,将所述待调度podgroup调度至对应的所述目标节点资 源设备。
39.为解决上述技术问题,本技术还提供一种批调度器的调度装置,包括:
40.存储器,用于存储计算机程序;
41.处理器,用于执行所述计算机程序时实现所述的批调度器的调度方法的 步骤。
42.为解决上述技术问题,本技术还提供一种计算机可读存储介质,所述计 算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实 现所述的批调度器的调度方法的步骤。
43.本技术所提供的批调度器的调度方法,包括:判断待调度podgroup的等 待时间是否超过预设时间;若待调度podgroup的等待时间超过预设时间,判 断节点资源设备的全部资源量与预留资源量的差值,是否大于一个pod的pod 申请资源量;若差值大于pod申请资源量,将当前节点资源设备作为pod的 待选节点资源设备;从所有待选节点资源设备中选取pod的目标节点资源设 备;判断目标节点资源设备的剩余可用资源量是否小于pod申请资源量;若 剩余可用资源量小于pod申请资源量,将目标节点资源设备的原预留资源量 更新为原预留资源量与pod申请资源量的和;当待调度podgroup中满足分配 条件的pod的数量大于预设最小值时,将待调度podgroup调度至对应的目标 节点资源设备。当podgroup等待时间超过预设时间时,且此时仍然没有足够 的剩余可用资源量调度当前pod,本技术通过选择合适的目标节点资源设备为 当前pod设置预留资源量,当剩余可用资源一旦达到预留资源量,则为当前 pod调度目标节点资源设备,防止因为不断有其他的podgroup调度节点资源 设备,导致节点资源设备一直无法积累到足够的资源量为podgroup调度,导 致podgroup超长时间等待甚至饿死。
44.另外,本技术还提供一种装置及介质,与上述方法对应,效果同上。
附图说明
45.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图 做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例, 对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据 这些附图获得其他的附图。
46.图1为本技术实施例提供的一种批调度器的调度方法的流程图;
47.图2为本技术实施例提供的另一种批调度器的调度方法的流程图;
48.图3为本技术实施例提供的一种批调度器的调度装置的示意图;
49.图4为本技术实施例提供的另一种批调度器的调度装置的结构图。
具体实施方式
50.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而 不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出 创造性劳动前提下,所获得的所有其他实施例,都属于本技术保护范围。
51.本技术的核心是提供一种批调度器的调度方法、装置及介质。
52.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体 实施方式对本技术作进一步的详细说明。
53.云计算是一种将计算机集群资源池化并通过网络进行数据传输来向用户 提供服务的技术。在传统的云计算中,资源池化的过程是使用虚拟化技术实 现的,它将计算机硬件与软件相互隔离。后来,容器技术出现,它能实现与 虚拟化技术类似的功能,并且更加轻量化。docker项目的出现让容器技术真 正火热起来,它通过对整个操作系统中的文件和目录进行打包,从而保证开 发、测试、生产环境的一致性,大大降低了应用发布的复杂度。
54.kubernetes是一个可移植、可扩展的开源平台,用于管理容器化的工作 负载和服务,可促进声明式配置和自动化。kubernetes拥有一个庞大且快速 增长的生态系统,其服务、支持和工具的使用范围广泛。kubernetes提供了一 个可弹性运行分布式系统的框架。kubernetes会满足你的扩展要求、故障转移、 部署模式等。然而,在一个计算机集群中,可能会有成千上万个容器在运行, 手动管理这么多的容器是一件几乎不可能的事情。在kubernetes中,pod是一 组容器的集合,是最基本的调度单位。podgroup是一组pod副本。控制器常 用于分布式计算任务,满足这类任务中pod需要成批调度的场景。与之对应 的,kubernetes批调度器用来协调集群计算资源,负责为一组pod选择一些最 佳的节点资源设备来运行。pod控制器是管理pod的中间层,使用了pod控 制器之后,我们只需要告诉pod控制器,想要多少个什么样的pod就可以了, 他就会创建出满足条件的pod并确保每一个pod处于用户期望的状态,如果 pod在运行中出现故障,控制器会基于指定策略重启或者重建pod。
55.由于现有的批调度器调度原则:当一个podgroup申请了资源,但集群当 前节点资源设备的资源余量无法满足它的申请资源量时,可能没有或者只有 部分pod能够分配到足够资源,如果这些pod的数量低于podgroup限制的最 小值时,这个podgroup中的所有pod都不会被成功调度(分配计算资源)。 导致集群资源余量可能会很长时间都无法积累到podgroup的资源申请量,导 致podgrou超长时间等待甚至饿死(在操作系统理论中,饿死指的是一个进 程一直及以后也不会得到运行,处于永久性等待的状态)。
56.为解决上述技术问题,图1为本技术实施例提供的一种批调度器的调度 方法的流程图,如图1所示,包括:
57.s11:判断待调度podgroup的等待时间是否超过预设时间;若待调度 podgroup的等待时间超过预设时间,进入步骤s12;
58.当一个podgroup在上一个调度周期没有被成功调度,就会进入等待,本 实施例不限制具体的预设时间,根据实际需要设计即可。本实施例提到的预 设时间,当podgroup的等待时间超过这个预设时间之后,选择在后续的进程 不会再使其继续等待积累到podgroup的资源申请量的节点资源设备出现才为 其分配节点资源设备。
59.s12:判断节点资源设备的全部资源量与预留资源量的差值,是否大于一 个pod的pod申请资源量;若差值大于pod申请资源量,进入步骤s13;
60.podgroup是一组pod副本,pod是一组容器的集合,是最基本的调度单 位。为podgroup调度节点资源设备,即为podgroup中的每一个pod调度节 点资源设备。因此,步骤s12是为podgroup中的每一个pod进行判断。pod 需要的总资源量,为pod申请资源量。每一个节点资源设备的全部资源量为 已使用资源量和剩余可用资源量的和,本实施例提到的预留资源量指的是这 个节点资源设备为其他pod预留下来的资源量,这一部分资源量相当于其他 pod预定好的,不会再分给其他pod。每一个节点资源设备的预留资源量初始 值为0,这个预留资源量的值是可变的,当有其它超时pod在上一个调度周期, 或者本调度周期之前先选定了这个节点资源设备,该节点资源设备的预留资 源量就会发生改变,导致该节点资源设备的全部资源量为已使用资源量、剩 余可用资源量和预留资源量的和。
61.本实施例判断节点资源设备的全部资源量与预留资源量的差值,是否大 于一个pod的pod申请资源量;即,使用已使用资源量和剩余可用资源量的 和值为pod筛选节点资源设备剩余可用资源量,这样比值使用剩余可用资源 量为pod筛选节点资源设备扩大了可选择的范围。
62.本技术不限制资源类型,例如cpu资源、内存资源、暂态存储资源和扩 展资源等。每一种资源都需要经过判断筛选。
63.s13:将当前节点资源设备作为pod的待选节点资源设备;
64.s14:从所有待选节点资源设备中选取pod的目标节点资源设备;
65.在一个节点资源设备集群中,可能有多个节点资源设备通过步骤s12的 筛选,将这部分满足筛选条件的节点资源设备作为待选节点资源设备。再从 这部分待选节点资源设备中,选取一个最优的节点资源设备,作为目标节点 资源设备。
66.s15:判断目标节点资源设备的剩余可用资源量是否小于pod申请资源量; 若剩余可用资源量小于pod申请资源量,进入步骤s16;
67.步骤s15判断目标节点资源设备的剩余可用资源量是否小于pod申请资 源量,若该目标节点资源设备的预留资源量为0,则剩余可用资源量为全部资 源量与已使用资源量的差值,若该目标节点资源设备的预留资源量不为0,则 说明此时有一部分资源量已预留给其他pod,则此时剩余资源量为全部资源量 与已使用资源量和预留资源量的差值。
68.若剩余可用资源量小于pod申请资源量,则说明此时剩余可用资源量不 足以调度给当前pod,当已使用资源量释放一部分成为剩余资源量的时候,则 可将当前目标节点资源设备调度给当前pod。
69.s16:将目标节点资源设备的原预留资源量更新为原预留资源量与pod申 请资源量的和;
70.步骤s16将目标节点资源设备的原预留资源量更新为原预留资源量与 pod申请资源量的和,即更新当前目标节点资源设备的预留资源量,在目标节 点资源设备为当前pod
预留足够的申请资源量。
71.s17:当待调度podgroup中满足分配条件的pod的数量大于预设最小值 时,将待调度podgroup调度至对应的目标节点资源设备。
72.本实施例提到的分配条件指的是当前目标节点资源设备的剩余可用资源 量大于等于目标节点资源设备的预留资源量,什么此时目标节点资源设备有 足够的资源量为pod所调度。
73.本实施例提到的预设最小值可以为0,即当待调度podgroup中所有的pod 都满足分配条件时,才为待调度podgroup调度节点资源设备,也可以不为0, 其中一部分满足分配条件,就为待调度podgroup调度节点资源设备,根据实 际需要设计即可。
74.具体地,判断待调度podgroup的等待时间是否超过预设时间;若待调度 podgroup的等待时间超过预设时间,判断节点资源设备的全部资源量与预留 资源量的差值,是否大于一个pod的pod申请资源量;若差值大于pod申请 资源量,将当前节点资源设备作为pod的待选节点资源设备;从所有待选节 点资源设备中选取pod的目标节点资源设备;判断目标节点资源设备的剩余 可用资源量是否小于pod申请资源量;若剩余可用资源量小于pod申请资源 量,将目标节点资源设备的原预留资源量更新为原预留资源量与pod申请资 源量的和;当待调度podgroup中满足分配条件的pod的数量大于预设最小值 时,将待调度podgroup调度至对应的目标节点资源设备。当podgroup等待 时间超过预设时间时,且此时仍然没有足够的剩余可用资源量调度当前pod, 本技术通过选择合适的目标节点资源设备为当前pod设置预留资源量,当剩 余可用资源一旦达到预留资源量,则为当前pod调度目标节点资源设备,防 止因为不断有其他的podgroup调度节点资源设备,导致节点资源设备一直无 法积累到足够的资源量为podgroup调度,导致podgroup超长时间等待甚至 饿死。
75.根据上述实施例,步骤s15若判断目标节点资源设备的剩余可用资源量 不小于pod申请资源量,如图2所示,则还包括:
76.s21:将目标节点资源设备的原剩余可用资源量更新为原剩余可用资源量 与pod申请资源量的差值,原预留资源量更新为原预留资源量与pod申请资 源量的和;
77.当待调度podgroup中满足分配条件的pod的数量大于预设最小值时,将 待调度podgroup调度至对应的目标节点资源设备。
78.若判断目标节点资源设备的剩余可用资源量不小于pod申请资源量,则 说明此时目标节点资源设备的剩余可用资源量就足以pod调度,不需要等待 已使用资源释放,则将目标节点资源设备的原剩余可用资源量更新为原剩余 可用资源量与pod申请资源量的差值,原预留资源量更新为原预留资源量与 pod申请资源量的和,即将剩余可用资源量预留出pod申请资源量。避免后续 调度占用了这部分资源量。
79.本实施例提到的分配条件指的是当前目标节点资源设备的剩余可用资源 量大于等于目标节点资源设备的预留资源量,什么此时目标节点资源设备有 足够的资源量为pod所调度。
80.本实施例提到的预设最小值可以为0,即当待调度podgroup中所有的pod 都满足分配条件时,才为待调度podgroup调度节点资源设备,也可以不为0, 其中一部分满足分配条件,就为待调度podgroup调度节点资源设备,根据实 际需要设计即可。
81.根据上述实施例,步骤s11判断待调度podgroup的等待时间是否超过预 设时间之
前,还包括:
82.s22:接收待调度podgroup、pod、节点资源设备的数据信息。
83.在一个调度周期之前,获取此时待调度podgroup、pod、节点资源设备 的数据信息,这为一个瞬时值,此后的一个调度周期使用此时获取到的瞬时 数据信息进行调度,以防止数据实时变化,导致计算出现误差。
84.根据上述实施例,步骤s17当待调度podgroup中满足分配条件的pod的 数量大于预设最小值时,将待调度podgroup调度至对应的目标节点资源设备, 包括:
85.判断当前待调度podgroup中全部pod对应的目标节点资源设备的预留资 源量是否均小于剩余可用资源量;
86.若是,将当前待调度podgroup中pod调度至对应的目标节点资源设备。
87.本实施例中,优选地,预设最小值为零,全部的pod满足分配条件,才 进行资源调度。分配条件为pod对应的目标节点资源设备的预留资源量小于 剩余可用资源量,即pod的目标节点资源设备的剩余可用资源大于或等于之 前计算的预留资源量。例如,在之前的判断中,剩余资源量小于pod申请资 源量,将目标节点资源设备的原预留资源量更新为原预留资源量与pod申请 资源量的和,这种情况下,当以使用资源释放一部分后,剩余资源量增加, 不小于预留资源量,则为pod调度此节点资源设备。在之前的判断中,剩余 资源量小于pod申请资源量,则直接按照目标节点资源设备的原剩余可用资 源量更新为原剩余可用资源量与pod申请资源量的差值,原预留资源量更新 为原预留资源量与pod申请资源量的和的方案进行调度,即使用目标节点资 源设备的剩余可用资源量为pod调度。
88.根据上述实施例,步骤s11若判断待调度podgroup的等待时间没有超过 预设时间,则还包括:
89.判断节点资源设备的剩余可用资源量是否大于pod申请资源量;
90.若是,将当前节点资源设备作为当前pod的待选节点资源设备;
91.从所有待选节点资源设备中选取当前pod的目标节点资源设备。
92.本实施例指的是当一个正常的待调度podgroup进入调度周期后,为其 pod进行资源调度,优先的,使用剩余可用资源为该待调度podgroup中的pod 进行调度,以提高调度的有效率。
93.判断当前待调度podgroup中pod对应的目标节点资源设备的剩余可用资 源量大于pod申请资源量的pod的数量是否不小于预设最小值;
94.若是,将当前待调度podgroup中的pod调度至对应的目标节点资源设备。
95.本实施例提到的预设最小值可以为0,即当待调度podgroup中所有的pod 都满足分配条件时,才为待调度podgroup调度节点资源设备,也可以不为0, 其中一部分满足分配条件,就为待调度podgroup调度节点资源设备,根据实 际需要设计即可。
96.即判断能够使用节点资源设备的剩余资源量为待调度podgroup中的pod 调度的pod的数量,若这个数量大于等于预设最小值,则开始调度待调度 podgroup。
97.若当前待调度podgroup中pod对应的目标节点资源设备的剩余可用资源 量大于pod申请资源量的pod的数量小于预设最小值,则还包括:
98.取消调度当前待调度podgroup,等待下一次调度周期。
99.当满足条件的pod的数量小于预设最小值时,放弃在本调度周期内调度 当前待调
度podgroup,这个待调度podgroup会在下一个调度周期重新进行 判断调度,从待调度podgroup创建开始,便开始计算等待时间,每一个调度 周期都实现判断其等待时间是否超过预设时间,以选择相应的调度方案。
100.在上述实施例中,对于批调度器的调度方法进行了详细描述,本技术还 提供批调度器的调度装置对应的实施例。需要说明的是,本技术从两个角度 对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于 硬件的角度。
101.图3为本技术实施例提供的一种批调度器的调度装置的示意图,如图3 所示,批调度器的调度装置,包括:
102.第一判断模块31,用于判断待调度podgroup的等待时间是否超过预设时 间;若待调度podgroup的等待时间超过预设时间,触发第二判断模块32;
103.第二判断模块32,用于判断节点资源设备的全部资源量与预留资源量的 差值,是否大于一个pod的pod申请资源量;若差值大于pod申请资源量, 触发选择模块33;
104.选择模块33,用于将当前节点资源设备作为pod的待选节点资源设备;
105.筛选模块34,用于从所有待选节点资源设备中选取pod的目标节点资源 设备;
106.第三判断模块35,用于判断目标节点资源设备的剩余可用资源量是否小 于pod申请资源量;若剩余可用资源量小于pod申请资源量,触发更新模块 36;
107.更新模块36,用于将目标节点资源设备的原预留资源量更新为原预留资 源量与pod申请资源量的和;
108.调度模块37,用于当待调度podgroup中满足分配条件的pod的数量大 于预设最小值时,将待调度podgroup调度至对应的目标节点资源设备。
109.具体的,第一判断模块31判断待调度podgroup的等待时间是否超过预 设时间;若待调度podgroup的等待时间超过预设时间,触发第二判断模块32 判断节点资源设备的全部资源量与预留资源量的差值,是否大于一个pod的 pod申请资源量;若差值大于pod申请资源量,触发选择模块33将当前节点 资源设备作为pod的待选节点资源设备;筛选模块34从所有待选节点资源设 备中选取pod的目标节点资源设备;第三判断模块35判断目标节点资源设备 的剩余可用资源量是否小于pod申请资源量;若剩余可用资源量小于pod申 请资源量,触发更新模块36将目标节点资源设备的原预留资源量更新为原预 留资源量与pod申请资源量的和;调度模块37当待调度podgroup中满足分 配条件的pod的数量大于预设最小值时,将待调度podgroup调度至对应的目 标节点资源设备。
110.当podgroup等待时间超过预设时间时,且此时仍然没有足够的剩余可用 资源量调度当前pod,本技术通过选择合适的目标节点资源设备为当前pod 设置预留资源量,当剩余可用资源一旦达到预留资源量,则为当前pod调度 目标节点资源设备,防止因为不断有其他的podgroup调度节点资源设备,导 致节点资源设备一直无法积累到足够的资源量为podgroup调度,导致 podgroup超长时间等待甚至饿死。
111.另外,第三判断模块35判断目标节点资源设备的剩余可用资源量不小于 pod申请资源量,触发更新子单元,用于将目标节点资源设备的原剩余可用资 源量更新为原剩余可用资源量与pod申请资源量的差值,原预留资源量更新 为原预留资源量与pod申请资源量的和;
112.还包括,接收模块,用于接收待调度podgroup、pod、节点资源设备的 数据信息;
113.调度模块37包括第一判断子单元,用于判断当前待调度podgroup中全 部pod对应的目标节点资源设备的预留资源量是否均小于剩余可用资源量; 若是,触发第一调度子单元,用于将当前待调度podgroup中pod调度至对应 的目标节点资源设备;
114.第一判断模块31若判断待调度podgroup的等待时间没有超过预设时间, 则触发第二判断子单元,用于判断节点资源设备的剩余可用资源量是否大于 pod申请资源量;若是,触发第二选择子单元,用于将当前节点资源设备作为 当前pod的待选节点资源设备;还包括,筛选子单元,从所有待选节点资源 设备中选取当前pod的目标节点资源设备;
115.第三判断子单元,判断当前待调度podgroup中pod对应的目标节点资源 设备的剩余可用资源量大于pod申请资源量的pod的数量是否不小于预设最 小值,若是,触发第二调度子单元,用于将当前待调度podgroup中的pod调 度至对应的目标节点资源设备;若否,触发取消子单元,用于取消调度当前 待调度podgroup,等待下一次调度周期。
116.由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的 实施例请参见方法部分的实施例的描述,这里暂不赘述。
117.图4为本技术实施例提供的另一种批调度器的调度装置的结构图,如图4 所示,批调度器的调度装置包括:存储器40,用于存储计算机程序;
118.处理器41,用于执行计算机程序时实现如上述实施例(批调度器的调度 方法)获取用户操作习惯信息的方法的步骤。
119.本实施例提供的批调度器的调度装置可以包括但不限于智能手机、平板 电脑、笔记本电脑或台式电脑等。
120.其中,处理器41可以包括一个或多个处理核心,比如4核心处理器、8核 心处理器等。处理器41可以采用数字信号处理器(digital signal processor, dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可 编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来 实现。处理器41也可以包括主处理器和协处理器,主处理器是用于对在唤醒 状态下的数据进行处理的处理器,也称中央处理器(central processing unit, cpu);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。 在一些实施例中,处理器41可以在集成有图像处理器(graphics processingunit,gpu),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实 施例中,处理器41还可以包括人工智能(artificial intelligence,ai)处理器, 该ai处理器用于处理有关机器学习的计算操作。
121.存储器40可以包括一个或多个计算机可读存储介质,该计算机可读存储 介质可以是非暂态的。存储器40还可包括高速随机存取存储器,以及非易失 性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存 储器40至少用于存储以下计算机程序401,其中,该计算机程序被处理器41加 载并执行之后,能够实现前述任一实施例公开的批调度器的调度方法的相关 步骤。另外,存储器40所存储的资源还可以包括操作系统402和数据403等, 存储方式可以是短暂存储或者永久存储。其中,操作系统402可以包括 windows、unix、linux等。数据403可以包括但不限于实现批调度器的调度方 法所涉及到的数据等。
122.在一些实施例中,批调度器的调度装置还可包括有显示屏42、输入输出 接口43、通信接口44、电源45以及通信总线46。
123.本领域技术人员可以理解,图4中示出的结构并不构成对批调度器的 调度装置的限定,可以包括比图示更多或更少的组件。
124.本技术实施例提供的批调度器的调度装置,包括存储器和处理器,处理 器在执行存储器存储的程序时,能够实现如下方法:批调度器的调度方法。 判断待调度podgroup的等待时间是否超过预设时间;若待调度podgroup的 等待时间超过预设时间,判断节点资源设备的全部资源量与预留资源量的差 值,是否大于一个pod的pod申请资源量;若差值大于pod申请资源量,将 当前节点资源设备作为pod的待选节点资源设备;从所有待选节点资源设备 中选取pod的目标节点资源设备;判断目标节点资源设备的剩余可用资源量 是否小于pod申请资源量;若剩余可用资源量小于pod申请资源量,将目标 节点资源设备的原预留资源量更新为原预留资源量与pod申请资源量的和; 当待调度podgroup中满足分配条件的pod的数量大于预设最小值时,将待调 度podgroup调度至对应的目标节点资源设备。当podgroup等待时间超过预 设时间时,且此时仍然没有足够的剩余可用资源量调度当前pod,本技术通过 选择合适的目标节点资源设备为当前pod设置预留资源量,当剩余可用资源 一旦达到预留资源量,则为当前pod调度目标节点资源设备,防止因为不断 有其他的podgroup调度节点资源设备,导致节点资源设备一直无法积累到足 够的资源量为podgroup调度,导致podgroup超长时间等待甚至饿死。
125.最后,本技术还提供一种计算机可读存储介质对应的实施例。计算机可 读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述批 调度器的调度方法实施例(可以是服务器侧对应的方法、也可以是诊断设备 侧对应的方法,还可以是服务器侧和诊断设备侧对应的方法)中记载的步骤。
126.可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并 作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。 基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部 分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机 软件产品存储在一个存储介质中,执行本技术各个实施例方法的全部或部分 步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(random access memory,ram)、磁 碟或者光盘等各种可以存储程序代码的介质。
127.本实施例提供的计算机可读存储介质,其上存储有计算机程序,当处理 器执行该程序时,可实现以下方法:批调度器的调度方法,判断待调度 podgroup的等待时间是否超过预设时间;若待调度podgroup的等待时间超 过预设时间,判断节点资源设备的全部资源量与预留资源量的差值,是否大 于一个pod的pod申请资源量;若差值大于pod申请资源量,将当前节点资 源设备作为pod的待选节点资源设备;从所有待选节点资源设备中选取pod 的目标节点资源设备;判断目标节点资源设备的剩余可用资源量是否小于pod 申请资源量;若剩余可用资源量小于pod申请资源量,将目标节点资源设备 的原预留资源量更新为原预留资源量与pod申请资源量的和;当待调度 podgroup中满足分配条件的pod的数量大于预设最小值时,将待调度 podgroup调度至对应的目标节点资源设备。当podgroup等待时间超过预设 时间时,且此时仍然没有足够的剩余可用资源量调度当前pod,本技术通过选 择合适的目标节点资源设备为当前pod设置预留资源量,当剩余可用资源一 旦达到预留资源量,则为当前pod调度目标节点资源设备,防止因为不断有 其他的podgroup调度节点资
源设备,导致节点资源设备一直无法积累到足够 的资源量为podgroup调度,导致podgroup超长时间等待甚至饿死。
128.以上对本技术所提供的批调度器的调度方法、装置及介质进行了详细介 绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是 与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对 于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的 比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的 普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若 干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
129.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅 仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或 者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语
ꢀ“
包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括 一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没 有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所 固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素, 并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同 要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1