具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
云计算技术中在线业务存在明显的潮汐现象,在其业务流量低谷期会导致资源空闲,从而导致浪费;同时,对于离线业务经常由于资源不足导致任务排队时间很长,使得云计算技术的资源利用率低。所以,实现在线业务和离线业务的混合部署对于提高云计算场景下的资源利用率就尤为重要。虽然有些研究提供了在线业务和离线业务混合部署理论方法,但是这些方法通常都是基于虚拟机等单一管理系统的混合部署方法。然而,由于常用的在线业务管理系统(例如kubernetes系统,简称K8s系统)和离线管理系统(例如yarn系统)是相互独立,所以已有的基于虚拟机等单一管理系统方法很难适用于这种多管理系统的云计算场景。那么,如何实现K8s管理的在线业务和yarn管理的离线业务之间资源的混合调度成为了亟需解决的技术问题。
鉴于此,本公开实施例提供了一种为解决上述问题,本申请提供了一种资源调度方案,通过当在线节点的资源空闲时将在线节点拆借给离线业务使用,融合了原本相互独立的在线管理系统和离线管理系统的计算资源,使得在线管理系统的空闲资源可以很好地提供给离线管理系统的离线业务的使用。同时也保证了在线管理系统的在线业务和离线管理系统的离线业务之间的相互隔离,避免互相影响。从而提升了在线管理系统和离线管理系统的资源利用率。
图1示出了本公开实施例的模型的资源调度架构的示意图。参考图1,该模型的资源调度架构100可以包括服务器110、终端120以及提供通信链路的网络130。服务器110和终端120之间可通过有线或无线的网络130连接。其中,服务器110可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
终端120可以是硬件或软件实现。例如,终端120为硬件实现时,可以是具有显示屏并且支持页面显示的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、膝上型便携计算机和台式计算机等等。终端120设备为软件实现时,可以安装在上述所列举的电子设备中;其可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块,在此不做具体限定。
需要说明的是,本申请实施例所提供的资源调度方法可以由服务器110来执行,客户端120向服务器110提交离线业务和/或在线业务,服务器110对离线业务和/或在线业务进行处理后向客户端120返回响应的结果。应了解,图1中的终端、网络和服务器的数目仅为示意,并不旨在对其进行限制。根据实现需要,可以具有任意数目的终端、网络和服务器。
参见图2A-图2B,图2A-图2B示出了根据本公开实施例的资源调度方法的示意性原理图。
图2A中,在线业务管理系统(例如K8s系统)中的在线业务集群210可以包括至少一个在线节点211,例如在线节点211a、211b、211c、211d、211e、211f。在线节点211用于处理客户端(例如图1中的客户端120)提交的在线业务。在线节点211均具有状态标签,且状态标签值为“在线(online)”,以表示该节点可以被在线业务使用。其中,在线业务只能分配至状态标签值为“在线(online)”的在线节点211进行处理。
离线业务管理系统(例如yarn系统)中的离线业务集群220可以包括至少一个离线节点221,例如图2A中的离线节点221a、221b、221c、221d,离线节点221用于处理客户端(例如图1中的客户端120)提交的离线业务。离线节点221均具有状态标签,且状态标签值为“离线(offline)”以表示该节点可以被离线业务使用。其中,离线业务只能分配至状态标签值为“离线(offline)”的离线节点221进行处理。
如此,根据每个节点的状态标签值来确定能调度到每个节点上的业务类型是在线业务还是离线业务,能够防止在线业务或离线业务调度到同一节点上,导致资源竞争。
在一些实施例中,在线节点211上可以同时部署有在线节点代理(例如K8skubelet)和离线节点代理(例如yarn node manager)。在一些实施例中,离线节点代理可以基于在线节点的副本形式部署于在线节点中,以与在线节点代理进行通信,以获取当前在线节点的资源信息(例如,已使用资源量、未使用资源量、资源使用率、总资源量等)。例如,在线节点211中的离线节点代理yarn node manager可以使用K8s daemonset的副本形式部署于在线管理系统K8s中,和在线节点代理K8s kubelet通信获取当前节点的资源信息。
图2A中,在线业务控制器230可以将客户端提交的在线业务分配给在线节点211进行处理。由于在线业务的数量存在明显的潮汐现象,存在一定的规律性,即在线业务的数量存在周期性地变化。当在线业务处于波谷阶段时,例如时间段T1,在线节点211的资源出现空闲。
离线业务控制器240可以将客户端提交的离线业务分配给离线节点221进行处理。而离线业务经常由于资源不足而导致离线业务的排队时间很长,离线业务往往得不到及时地处理。例如,图2A中,时间段T1内离线节点221均被分配有离线业务,且还有更多的离线业务排队等待处理。可见,同样是处于时间段T1内,在线节点211的资源出现空闲,而离线节点221处还有很多离线业务处于排队状态。
此时,混部控制器250可以将在线节点211中的部分资源拆借给离线业务进行处理,从而使得在线业务和离线业务整体的计算资源得到合理地分配和调度。其中,拆借可以指将在线节点211的资源提供至离线业务使用。因此,在一些实施例中,可以根据在线业务的数量的变化周期,当达到预设时间段(例如在线业务的数量处于波谷时期)时,将在线节点211中的空闲资源拆借给离线业务使用。在一些实施例中,还可以根据在线业务集群的资源利用率,当在线节点的资源利用率处于预设范围(例如,低于阈值)时,将在线节点211中的空闲资源拆借给离线业务使用。在一些实施例中,在线节点211中的空闲资源拆借给离线业务使用时,在线业务控制器230可以控制将待拆借的在线节点上的在线业务调度至其他非拆借的在线节点上进行处理。
图2A中,混部控制器250中包括混部策略控制装置251和拆借节点控制装置252。用户可以通过混部策略控制装置251来配置在线节点和离线节点之间的混合调度策略。拆借节点控制装置252根据配置好的混合调度策略对在线节点211中的拆借节点进行调度。
在一些实施例中,混合调度策略可以包括:在线节点211的源信息、离线节点221的目标信息。进一步地,混合调度策略还可以包括:混合调度的预设时间段和/或预设拆借节点数量。
在一些实施例中,在线节点211的源信息可以包括如下至少一种:在线节点211的数量、每个在线节点211的总资源量、每个在线节点211的标识或ID。
在一些实施例中,离线节点221的目标信息可以包括如下至少一种:离线节点221的数量、每个离线节点221的总资源量、每个离线节点221的标识或ID。
在一些实施例中,混合调度的预设时间段可以指能够进行混合调度的时间。例如,在线业务的数量的波谷阶段。进一步地,在一些实施例中,预设时间段可以包括多个波谷阶段。由于在线业务的数量变化具有周期性,所以,可以预先设置该预设时间段。
在一些实施例中,预设拆借节点数量可以指即将拆借的在线节点的数量。例如,预设拆借节点数量可以为m,则混部控制器250在对在线节点进行拆借时,则从在线业务集群210中拆借m个在线节点供离线业务使用。
进一步地,在一些实施例中,混合调度策略包括混合调度的预设时间段和预设拆借节点数量时,每个预设时间段可以有对应的预设拆借节点数量,以表示该预设时间段中可以调度的在线节点的数量。例如,混合调度策略配置有多个预设时间段T1、T2、……,预设时间段T1对应的预设拆借节点数量为M1,预设时间段T2对应的预设拆借节点数量为M2。也就是说,每个预设时间段的拆借数量可以不同。因为每个拆借周期可能在线业务的数量变化不同,有时候会很少(例如晚上),此时可以多拆借一些在线节点;有时候比晚上多但又比高峰期少,此时可少拆借一些在线节点,以提供更灵活的混合策略。
图2A中,当处于在线业务的波谷时期或在线节点的资源利用率处于预设范围时,混部控制器250可以从在线节点211中确定拆借节点,例如,可以设置默认的在线节点作为拆借节点,也可以随机选择在线节点作为拆借节点,还可以对在线节点211按照混合调度策略中的筛选规则进行排序,以筛选出拆借节点。
在一些实施例中,筛选规则包括至少一个预设规则。
在一些实施例中,所述预设规则可以包括第一预设规则,所述第一预设规则可以进一步包括:判断第一在线节点的总资源量是否小于第二在线节点的总资源量;响应于所述第一在线节点的总资源量小于所述第二在线节点的总资源量,确定所述第一在线节点比所述第二在线节点优先拆借。
在一些实施例中,预设规则还可以包括第二预设规则,所述第二预设规则可以进一步包括:判断第三在线节点的总资源量是否小于第四在线节点的总资源量;
响应于所述第三在线节点的当前业务数量小于所述第四在线节点的当前业务数量,确定所述第三在线节点比所述第四在线节点优先拆借。
在一些实施例中,预设规则还可以包括第三预设规则,所述第三预设规则可进一步包括:判断第五在线节点的最小允许中断量(Min Allowed Disruption)是否大于第六在线节点的最小允许中断量;响应于第五在线节点的最小允许中断量大于第六在线节点的最小允许中断量,确定所述第五在线节点比所述第六在线节点优先拆借。其中,最小允许中断量可以指在线节点上配置的pdb(Pod中断预算,Pod Disruption Budget)的在线业务中“允许中断(Disruptions Allowed)”字段的最小值。
其中,为了保证整体在线业务的处理尽量少的被影响,以及拆借节点被更快地拆借,可以对总资源量更小、节点上的业务更少、节点上的最小允许中断量更大的在线节点优先拆借,以尽可能快地拆借出可用的在线节点。
在一些实施例中,当筛选规则包括预设规则中的多个时,各个规则之间存在优先级。应了解,各个预设规则之间的优先级可以预先设置,在此不做限制。
在一些实施例中,所述按照筛选规则从所述在线节点集群中筛选出所述拆借节点,包括:
基于所述第一预设规则、所述第二预设规则或所述第三预设规则所对应的优先级顺序,选择采用所述第一预设规则、所述第二预设规则或所述第三预设规则来确定所述在线节点中任意两个节点的顺序;
基于所述任意两个节点的顺序得到所有所述在线节点的排序;
选择排序前m个在线节点作为所述拆借节点,m为正整数。
具体地,在一些实施例中,所述按照筛选规则从所述在线节点集群中筛选出所述拆借节点,包括:基于所述预设规则中具有第一优先级的第一预设规则,判断所述在线节点中任意两个节点的顺序;
如果基于所述第一预设规则未确定出所述任意两个节点的顺序,则基于所述预设规则中具有第二优先级的第二预设规则,判断所述任意两个节点的顺序;
基于所述任意两个节点的顺序得到所有所述在线节点的排序;
选择排序前m个在线节点作为所述拆借节点,m为预设拆借节点数量且为正整数。
在一些实施例中,所述按照筛选规则从所述在线节点集群中筛选出所述拆借节点,还包括:
如果基于所述第二预设规则未确定出所述任意两个节点的顺序,则基于所述预设规则中具有第三优先级的第三预设规则,判断所述在线节点中所述任意两个节点的顺序。
在一些实施例中,所述第一优先级高于所述第二优先级,所述第二优先级高于所述第三优先级。例如,图2A中,在线节点211a分配有5个在线业务、在线节点211b分配有3个在线业务、分配有4个在线业务、在线节点211d分配有6个在线业务,在线节点211e没有被分配业务、在线节点211f分配有1个在线业务。对于在线节点211a和在线节点211b,先采用最高优先级的第一预设规则(例如总资源量小的在线节点优先拆解)进行判断,如果根据该第一预设规则能够确定在线节点211a和在线节点211b的排序,则确定在线节点211a和在线节点211b之间的排序;如果根据该第一预设规则不能够确定在线节点211a和在线节点211b之间的排序(例如,在线节点211a和在线节点211b的总资源量相等时),则采用第二优先级的第二预设规则进行判断,依次类推,直至确定在线节点211a和在线节点211b之间的排序。混部控制器250对在线节点211按照筛选规则进行排序如下:在线节点211e、在线节点211f、在线节点221b、在线节点221c、在线节点221a、在线节点221d。混部控制器250按照混合调度策略中预设的拆借节点数量m,筛选出m个在线节点用于拆借。例如m=2,则确定排序中的前2个在线节点,即在线节点211e、在线节点211f,作为拆借节点。
混部控制器250可以向在线业务控制器230发送第一指令,以使在线业务控制器230将所述拆借节点上的当前在线业务调度至所述在线节点中的非拆借节点进行处理。在线业务控制器230接收到该第一指令后,将所有拆借节点上的当前在线业务进行模拟调度至非拆借节点,以保证拆借资源的同时,不影响在线业务的正常处理。例如,在线节点211e没有被分配业务则无需模拟调度,将在线节点211f处的1个在线业务S调度至其他在线节点211b上,如果模拟成功则执行将在线节点211f处的在线业务S调度至在线节点211b上。如果模拟不成功则继续将该在线业务S模拟调度至在线节点211c、在线节点221a、在线节点221d等,直至遍历所有的在线节点或模拟成功。如果遍历所有的在线节点均未模拟成功,则不进行在线业务S的实际调度操作。在线业务控制器230在将所有拆借节点的所有当前在线业务的模拟调度成功后,执行对所有拆借节点的所有当前在线业务的实际调度操作。
当在线业务控制器230对拆借节点进行当前在线业务调度的同时,混部控制器250中的拆借节点控制装置252可以将拆借节点的状态标签值由“在线(online)”设置为“在线-离线(online to offline)”,以表示该节点处于在线到离线的拆借过程中。如图3所示,图3示出了根据本公开实施例的在线节点的状态标签变化的示意图。图3中,在线业务控制器230对拆借节点211f进行当前在线业务S调度之前,拆借节点211f的状态标签值为“在线(online)”;在线业务控制器230对拆借节点211f进行当前在线业务S调度的过程中,混部控制器250将该拆借节点211f上的状态标签值设置为“在线-离线(online to offline)”,表示该拆借节点211f处于当前在线业务移除中不被所述在线业务控制器或离线业务控制器调用。在线业务控制器230将拆借节点211f的当前在线业务S实际成功调度至其他在线节点上后,此时拆借节点211f上没有在线业务,此时,混部控制器250将该拆借节点211f上的状态标签值由“在线-离线(online to offline)”设置为“离线(offline)”。
混部控制器250将拆借节点211e、211f的状态标签值设置为“离线(offline)”后,拆借节点211e、211f形成拆借集群260,如图2B所示。此时,离线任务控制器240可以按照离线业务的排队顺序,将离线业务则分配至标签状态值为“离线(offline)”的拆借节点211e、211f上进行处理。融合了原本相互独立的在线管理系统(例如K8s系统)和离线管理系统(例如yarn系统)的计算资源,使得在线管理系统的空闲资源可以很好地提供给离线管理系统的离线业务的使用。而且能够在保证在线业务的SLA(服务等级协议,Service-LevelAgreement)的前提下,实现在线业务资源的合理拆借。同时也保证了在线管理系统的在线业务和离线管理系统的离线业务之间的相互隔离,避免互相影响。从而同时提升了在线管理系统和离线管理系统的资源利用率,大大降低了传统云计算场景中相互独立的在线管理系统和离线管理系统下的资源使用成本。
当在线业务的数量增加或在线节点集群中在线节点的资源利用率超过预设范围或当前时间不在预设时间段内,需要增加在线节点的数量时,混部控制器250和离线业务控制器240将拆借节点集群260中的拆借节点归还至在线节点集群210,以供在线业务进行使用。混部控制器250可以向离线业务控制器240发送第二指令,以使离线业务控制器240将拆借节点上的当前离线业务移除。同时,如图3所示,混部控制器250将拆借节点的状态标签值由“离线(offline)”设置为“离线-在线(offline to online)”,以表示该节点处于离线到在线的归还过程中。例如,图2B中,混部控制器250可以将拆借节点211e、211f的状态标签值设置为“离线-在线(offline to online)”。离线业务控制器240控制拆借节点上的离线业务退出,或者调度至离线节点集群220中的离线节点221a、221b、221c、221d上(例如,当离线节点集群220中的离线节点能满足被调度的离线业务时)。在一些实施例中,离线业务控制器240接收到该第二指令后,可以向拆借节点发送业务移除指令,以移除拆借节点的所有当前离线任务。在一些实施例中,离线业务控制器240还可以设置强制移除时间,以当该强制移除时间到期时,直接将拆借节点上未退出的离线业务强制移除。当拆借节点上不存在离线业务时,混部控制器250将拆借节点的状态标签值设置为“在线(online)”,如图3所示。例如,当图2B中的拆借节点211e、211f上没有离线业务时,混部控制器250将拆借节点211e、211f的状态标签值由“离线-在线(offline to online)”设置为“在线(online)”。此时,拆借节点211e、211f则归还至在线节点集群210,成为在线节点211e和211f,如图2A所示。从而实现了拆借资源的快速归还,其中归还可以指将拆借节点提供至在线业务使用。
参见图4,图4示出了根据本公开实施例的资源调度方法的流程示意图。该资源调度方法可以由混部控制器(例如图2A中的混部控制器250)执行。如图4所示,资源调度方法400,包括:
在步骤S410,监控在线节点集群中在线节点(例如图2A中的在线节点211)的状态,所述在线节点集群包括多个在线节点且支持在线业务控制器(例如图2A中的在线业务控制器230)调度用于处理在线业务;
在步骤S420,响应于所述在线节点的状态满足所述混部触发条件,从所述在线节点集群中确定拆借节点(例如图2A中的在线节点211e、211f),所述拆借节点用于提供至离线业务控制器(例如图2B中的离线业务控制器240)调度以处理离线业务;所述混部触发条件用于指示触发在线节点和离线节点混合调度的节点状态条件(例如,处于预设时间段(例如前述实施例中的预设时间段T1、T2等)内和/或处于预设资源利用率范围内);
在步骤S430,向所述在线业务控制器发送第一指令,所述第一指令指示所述在线业务控制器将所述拆借节点(例如图2A中的在线节点211e、211f)上的当前在线业务调度至所述在线节点集群中的除所述拆借节点之外的其他在线节点(例如图2A中的在线节点211a、211b、211c)进行处理;
在步骤S440,响应于所述拆借节点上的当前在线业务调度至所述其他在线节点完成,将所述拆借节点的第一状态标签值(例如图3中的“在线(online)”)变为第二状态标签值(例如图3中的“离线(offline)”)(例如图3中的虚线“拆借”),所述第一状态标签值指示所述在线节点用于经由在线业务控制器调度以处理在线业务,所述第二状态标签值指示所述拆借节点用于经由离线业务控制器调度以处理离线业务。
在一些实施例中,从所述在线节点集群中确定拆借节点,包括:
按照所述混部策略中的筛选规则从所述在线节点集群中筛选出所述拆借节点,所述筛选规则包括第一预设规则、第二预设规则或第三预设规则中的至少一个;
其中,所述第一预设规则包括:
判断第一在线节点的总资源量是否小于第二在线节点的总资源量;
响应于所述第一在线节点的总资源量小于所述第二在线节点的总资源量,确定所述第一在线节点比所述第二在线节点优先拆借;
所述第二预设规则包括:
判断第三在线节点的总资源量是否小于第四在线节点的总资源量;
响应于所述第三在线节点的当前业务数量小于所述第四在线节点的当前业务数量,确定所述第三在线节点比所述第四在线节点优先拆借;
所述第三预设规则包括:
判断第五在线节点的最小允许中断量是否大于第六在线节点的最小允许中断量;
响应于第五在线节点的最小允许中断量大于第六在线节点的最小允许中断量,确定所述第五在线节点比所述第六在线节点优先拆借。
在一些实施例中,所述按照筛选规则从所述在线节点集群中筛选出所述拆借节点,包括:
基于所述第一预设规则、所述第二预设规则或所述第三预设规则所对应的优先级顺序,选择采用所述第一预设规则、所述第二预设规则或所述第三预设规则来确定所述在线节点中任意两个节点的顺序;
基于所述任意两个节点的顺序得到所有所述在线节点的排序;
选择排序前m个在线节点作为所述拆借节点,m为正整数。
在一些实施例中,方法400还包括:当所述拆借节点上的当前在线业务调度至所述在线节点集群中的除所述拆借节点之外的其他在线节点进行处理时,将所述拆借节点的状态标签值由第一状态标签值(例如图3中的“在线(online)”)变为第三状态标签值(例如图3中的“在线-离线(online to offline)”),所述第三状态标签值指示所述拆借节点处于所述当前在线业务移除中且不被所述在线业务控制器或离线业务控制器调用。
在一些实施例中,方法400还包括:在所述拆借节点上的当前在线业务调度至所述其他在线节点进行处理完后,将所述拆借节点的状态标签值由所述第三状态标签值(例如图3中的“在线-离线(online to offline)”)变为第二状态标签值(例如图3中的“离线(offline)”)。
在一些实施例中,所述方法400还包括:
响应于所述在线节点的状态满足混合调度策略中的混部停止条件时,将所述拆借节点的第二状态标签值(例如图3中的“离线(offline)”)变为所述第一状态标签值(例如图3中的“在线(online)”);其中,所述混部停止条件用于指示停止在线节点和离线节点混合调度的节点状态条件。
在一些实施例中,混部停止条件可以包括超出所述预设时间段和/或超出所述预设资源利用率范围。
在一些实施例中,将所述拆借节点的第二状态标签值变为所述第一状态标签值(例如图3中的虚线“归还”),包括:
向所述离线业务控制器(例如图2B中的离线业务控制器240)发送第二指令,所述第二指令指示所述离线业务控制器将所述拆借节点(例如图2B中的拆借节点211e、211f)上的当前离线业务移除;以及将所述拆借节点由所述第二状态标签值变为第四状态标签值(例如图3中的“离线-在线(offline to online)”),所述第四状态标签值指示所述拆借节点处于当前离线业务移除中;
响应于所述当前离线业务移除完成,将所述拆借节点由所述第四状态标签值(例如图3中的“离线-在线(offline to online)”)变为所述第一状态标签值(例如图3中的“在线(online)”)。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一构思,本申请实施例还提供了一种资源调度装置。参考图5,所述的一种资源调度装置500,包括:
混部检测模块510,用于监控在线节点集群中在线节点的状态,所述在线节点集群包括多个在线节点且支持在线业务控制器调度用于处理在线业务;
节点筛选模块520,用于响应于所述在线节点的状态满足混部策略中的混部触发条件,从所述在线节点集群中确定拆借节点,所述拆借节点用于提供至离线业务控制器调度用于处理离线业务;所述混部触发条件用于指示触发在线节点和离线节点混合调度的节点状态条件;
通信模块530,用于向所述在线业务控制器发送第一指令,所述第一指令指示所述在线业务控制器将所述拆借节点上的当前在线业务调度至所述在线节点集群中的所述拆借节点之外的其他在线节点进行处理;
状态变更模块540,用于响应于所述拆借节点上的当前在线业务调度至所述其他在线节点完成,将所述拆借节点的第一状态标签值变为第二状态标签值,所述第一状态标签值指示所述在线节点用于经由在线业务控制器调度以处理在线业务,所述第二状态标签值指示所述拆借节点用于经由离线业务控制器调度以处理离线业务。
上述实施例的资源调度装置用于实现如上任一应用于终端的实施例中相应的资源调度方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一构思,本申请实施例还提供了一种资源调度系统,包括:
在线节点,用于处理在线业务;所述在线节点上部署有在线节点代理(例如K8skubelet)和离线节点代理(例如yarn node manager),其中,所述离线节点代理基于所述在线节点的副本形式部署于所述在线节点中,并与所述在线节点代理进行通信,以获取所述在线节点的资源信息。
离线节点,用于处理离线任务;
根据本公开实施例的资源调度装置,用于对所述在线节点进行资源调度,以将所述在线节点中的至少部分在线节点用于处理离线任务。
在一些实施例中,根据本公开实施例的资源调度系统,还包括:
在线业务控制器(例如图2A/图2B中的在线业务控制器230),用于:
接收来自所述资源调度装置(例如图2A/图2B中的混部控制器250)的所述第一指令;
响应于所述第一指令,对所述拆借节点(例如图2A/图2B中的在线节点211e、211f)上的当前在线业务进行模拟调度,以模拟将所述拆借节点上的当前在线业务调度至所述在线节点集群中的其他在线节点(例如图2A/图2B中的在线节点211a、211b、211c、211d);
在所述模拟调度成功后,基于所述模拟调度执行所述拆借节点上的当前在线业务的实际调度,以将所述拆借节点(例如图2A/图2B中的在线节点211e、211f)上的当前在线业务实际调度至在线节点集群中的所述其他在线节点(例如图2A/图2B中的在线节点211a、211b、211c、211d)。
在一些实施例中,根据本公开实施例的资源调度系统,还包括:
离线业务控制器(例如图2A/图2B中的离线业务控制器240),用于:
接收来自所述资源调度装置(例如图2A/图2B中的混部控制器250)的第二指令,所述第二指令指示所述离线业务控制器将所述拆借节点上的当前离线业务移除;
响应于所述第二指令,向所述拆借节点发送业务移除指令,以移除所述拆借节点例如图2A/图2B中的在线节点211e、211f)上的所述当前离线业务;和/或,响应于所述第二指令,设置强制移除时间,并当所述强制退出时间到期时,将所述拆借节点例如图2A/图2B中的在线节点211e、211f)上未移除的所述当前离线业务强制移除。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的资源调度方法。
图6示出了本公开实施例所提供的示例性电子设备的硬件结构示意图。该设备可以包括:处理器610、存储器620、输入/输出接口630、通信接口640和总线650。其中处理器610、存储器620、输入/输出接口630和通信接口640通过总线650实现彼此之间在设备内部的通信连接。
处理器610可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器620可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器620可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器620中,并由处理器610来调用执行。
输入/输出接口630用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口640用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线650包括一通路,在设备的各个组件(例如处理器610、存储器620、输入/输出接口630和通信接口640)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器610、存储器620、输入/输出接口630、通信接口640以及总线650,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的资源调度方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一构思,本申请实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的资源调度方法。
上述非暂态计算机可读存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例中相应的资源调度方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例的资源调度方法相对应的,本公开还提供了一种计算机程序产品,其包括计算机程序。在一些实施例中,所述计算机程序由一个或多个处理器可执行以使得所述处理器执行所述的资源调度方法。对应于本公开的资源调度方法各实施例中各步骤对应的执行主体,执行相应步骤的处理器可以是属于相应执行主体的。
上述实施例的计算机程序产品用于使处理器执行如上任一实施例所述的资源调度方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。