CN116974748A - 资源调度方法、节点、设备、介质和程序产品 - Google Patents
资源调度方法、节点、设备、介质和程序产品 Download PDFInfo
- Publication number
- CN116974748A CN116974748A CN202310488044.2A CN202310488044A CN116974748A CN 116974748 A CN116974748 A CN 116974748A CN 202310488044 A CN202310488044 A CN 202310488044A CN 116974748 A CN116974748 A CN 116974748A
- Authority
- CN
- China
- Prior art keywords
- node
- computing
- resource
- computing task
- task
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000006243 chemical reaction Methods 0.000 claims abstract description 39
- 238000003860 storage Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 15
- 230000015654 memory Effects 0.000 claims description 14
- 230000004048 modification Effects 0.000 abstract description 13
- 238000012986 modification Methods 0.000 abstract description 13
- 238000004364 calculation method Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000007726 management method Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 239000000872 buffer Substances 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/5072—Grid computing
-
- 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/503—Resource availability
-
- 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/505—Clust
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了资源调度方法、节点、设备、介质和程序产品,涉及计算机技术领域,具体涉及资源调度技术领域。应用于虚拟节点,虚拟节点的可配置资源由至少一个计算节点的闲置资源确定,该方法包括:接收来自调度节点的第一计算任务,第一计算任务包括资源指示信息,资源指示信息用于表征执行第一计算任务所需的计算资源量;若根据可配置资源,确定至少一个计算节点中存在满足资源指示信息的目标计算节点,则根据闲置资源的字段格式对第一计算任务中的资源指示信息进行格式转化,得到第二计算任务;向调度节点发送第二计算任务,第二计算任务用于指示调度节点基于目标计算节点执行第二计算任务。能够避免对控制节点原生代码的侵入性修改。
Description
技术领域
本申请一般涉及计算机技术领域,具体涉及资源调度技术领域,尤其涉及一种资源调度方法、节点、设备、介质和程序产品。
背景技术
容器集群管理系统(Kubernetes,K8s)是一种基于容器的集群管理平台,K8s所管理的集群中部署有多个计算节点(node),由于计算节点总是存在一些碎片和低负载导致的闲置资源;那么,如何对这些闲置资源的复用就成为了亟待解决的问题。
由于大多数业务需要控制节点Operator来启动计算任务,现有技术在复用闲置资源时,就需要修改控制节点的原生代码,以实现业务计算任务中原生资源的数据格式到闲置资源的数据格式的转换,导致对代码的侵入性较大。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种资源调度方法、节点、设备、介质和程序产品,能够避免对控制节点原生代码的侵入性修改。
第一方面,本申请提供了一种资源调度方法,应用于虚拟节点,虚拟节点的可配置资源由至少一个计算节点的闲置资源确定,该方法包括:接收来自调度节点的第一计算任务,第一计算任务包括资源指示信息,资源指示信息用于表征执行第一计算任务所需的计算资源量;若根据可配置资源,确定至少一个计算节点中存在满足资源指示信息的目标计算节点,则根据闲置资源的字段格式对第一计算任务中的资源指示信息进行格式转化,得到第二计算任务;向调度节点发送第二计算任务,第二计算任务用于指示调度节点基于目标计算节点执行第二计算任务。
第二方面,本申请提供了另一种资源调度方法,应用于调度节点,该方法包括:向虚拟节点发送第一计算任务;第一计算任务包括资源指示信息,资源指示信息用于表征执行第一计算任务所需的计算资源量;第一计算任务用于指示虚拟节点根据可配置资源,确定至少一个计算节点中存在满足资源指示信息的目标计算节点时,根据闲置资源的资源格式对第一计算任务中的资源指示信息进行格式转化,得到第二计算任务;虚拟节点的可配置资源由至少一个计算节点的闲置资源确定;接收来自虚拟节点的第二计算任务;基于目标计算节点执行第二计算任务。
第三方面,本申请提供了一种虚拟节点,虚拟节点的可配置资源由至少一个计算节点的闲置资源确定,该虚拟节点包括:
接收模块,用于接收来自调度节点的第一计算任务,第一计算任务包括资源指示信息,资源指示信息用于表征执行第一计算任务所需的计算资源量。
格式转化模块,用于若根据可配置资源,确定至少一个计算节点中存在满足资源指示信息的目标计算节点,则根据闲置资源的字段格式对第一计算任务中的资源指示信息进行格式转化,得到第二计算任务。
发送模块,用于向调度节点发送第二计算任务,第二计算任务用于指示调度节点基于目标计算节点执行第二计算任务。
第四方面,本申请提供了一种调度节点,该调度节点包括:
发送模块,用于向虚拟节点发送第一计算任务;第一计算任务包括资源指示信息,资源指示信息用于表征执行第一计算任务所需的计算资源量;第一计算任务用于指示虚拟节点根据可配置资源,确定至少一个计算节点中存在满足资源指示信息的目标计算节点时,根据闲置资源的资源格式对第一计算任务中的资源指示信息进行格式转化,得到第二计算任务;虚拟节点的可配置资源由至少一个计算节点的闲置资源确定。
接收模块,用于接收来自虚拟节点的第二计算任务。
调度模块,用于基于目标计算节点执行第二计算任务。
第五方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该程序时实现如本申请实施例描述的方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例描述的方法。
第七方面,本申请实施例提供一种计算机程序产品,该计算机程序产品包括指令,当该指令被运行时,使得如本申请实施例描述的方法被执行。
本申请提出的资源调度方法、节点、设备、介质和程序产品,可以应用于虚拟节点中,通过至少一个计算节点的闲置资源来确定虚拟节点中的可配置资源,实现了对至少一个计算节点闲置资源的汇总,一个虚拟节点的可配置资源就能够代表这些计算节点的所有闲置算例。当虚拟节点中具有可配置资源后,即可在该可配置资源下接收计算任务,如第一计算任务。虚拟节点在接收到第一计算任务后,由于该第一计算任务中包括了用于表征执行第一计算任务所需的计算资源量的资源指示信息,可以根据可配置资源,在至少一个计算节点中确定是否存在满足该资源指示信息的目标计算节点。如果存在,由于闲置资源的数据格式与第一计算任务中的资源指示信息的数据格式不同,考虑到若要使用计算节点中的闲置资源,就需要对资源指示信息的数据格式进行格式转化。具体是根据闲置资源的字段格式对第一计算任务中的资源指示信息进行格式转化,从而得到第二计算任务。因此,本申请在确定至少一个计算节点中存在满足资源指示信息的情况下,无需采用控制节点对计算任务中的资源指示信息进行格式转化,而是利用虚拟节点来实现,避免了对控制节点原生代码的侵入性修改。之后,将生成的第二计算任务发送至调度节点,以便指示调度节点基于目标计算节点来执行第二计算任务,从而在对原生代码无侵入性修改的前提下实现了闲置资源的复用,以较低的成本提升了集群资源的利用率。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本申请实施例提供的一种资源调度系统的结构示意图;
图2为本申请实施例提供的一种资源调度方法的流程示意图;
图3为本申请实施例提供的一种虚拟节点的结构示意图;
图4为本申请实施例提供的一种计算节点的总资源的分布示意图;
图5为本申请实施例提供的一种虚拟节点部署场景的效果示意图;
图6为本申请实施例提供的另一种资源调度方法的流程示意图;
图7为本申请实施例提供的又一种资源调度方法的流程示意图;
图8为本申请实施例提供的一种虚拟节点的结构示意图;
图9为本申请实施例提供的一种调度节点的结构示意图;
图10为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
下面对本申请实施例中涉及的部分概念进行介绍。
1、应用程序接口服务
应用程序接口服务(APIServer)提供了Kubernetes各类资源对象的增删改查及获取等资源表现层状态转移(Resource Representational State Transfer,HTTP Rest)接口,是整个系统的数据总线和数据中心。APIServer的功能:(1)提供了集群管理的RestAPI(Application Programming Interface,应用程序接口)接口(包括认证授权、数据校验以及集群状态变更);(2)提供其他模块之间的数据交互和通信的枢纽(其他模块通过APIServer查询或修改数据);(3)是资源配额控制的入口;(4)拥有完备的集群安全机制。
2、应用程序控制器
应用程序控制器(Operator)也即本申请实施例中的控制节点,用于扩展Kubernetes API,以及创建、配置和管理复杂的有状态应用,如数据库、缓存等系统。Operator基于Kubernetes的资源和控制器概念之上构建,但同时又包含了应用程序特定的领域知识。
3、pod
pod相当于逻辑主机,每个pod都有自己的ip地址。pod内的容器共享相同的ip和端口空间,默认情况下,每个容器的文件系统与其他容器完全隔离。因此,pod也可以理解为:容器组,同时pod又相当于逻辑主机。一个pod包含一组容器,一个pod不会跨越多个工作节点。Pod的目的是为服务Service提供进程隔离,可以将Service对应映射的容器运行在独立Pod中,每个Pod里运行着一个基础容器(即Pause容器),其他容器则为业务容器,这些业务容器共享Pause容器的网络栈和Volume挂载卷。一个Pod里的容器与另外主机上的Pod容器能够直接通信。为了建立Service和Pod间的关联关系,Kuberneters给每个Pod贴上一个标签(Label),而Service也定义标签选择器(Label elector),通过Service的labelselector找到对应的label的Pod。
4、计算节点
计算节点是一个容器运行环境,一般是docker环境(类似docker环境的还有rkt),同时运行一个K8s的代理(kubelet)用于和master通信。计算节点也会运行一些额外的组件,像记录日志,服务发现等等。计算节点是k8s集群中真正工作的节点。
目前,大多数业务需要控制节点来启动计算任务,现有技术在复用闲置资源时,由于计算任务中的资源指示信息的字段格式与计算节点中闲置资源所使用的字段格式并不相同,如果需要使用该计算节点中的闲置资源,就需要将计算任务中的资源指示信息的字段格式修改为闲置资源所使用的字段格式,而采用控制节点进行字段格式的修改是需要修改控制节点的原生代码,导致对代码的侵入性较大。
基于此,本申请实施例提供一种资源调度方法、节点、设备、介质和程序产品,通过调度节点和虚拟节点配合调度的方式来实现集群中计算节点的闲置资源的复用。首先是虚拟节点来获取至少一个计算节点的闲置资源,并将按照可配置资源的字段格式,对闲置资源的字段格式进行转化处理,得到虚拟节点的可配置资源。将可配置资源上报至调度节点,以便调度节点在后续需要对计算任务进行调度时,将虚拟节点纳入可调度的节点中。之后,在需要对计算任务(如第一计算任务)进行调度时,通过可配置资源确定将计算任务调度至虚拟节点。虚拟节点根据该计算任务中包括的用于表征执行其所需要的计算资源量的资源指示信息以及可配置资源,来确定至少一个计算节点中是否存在满足资源指示信息的目标计算节点。若存在,根据闲置资源的字段格式对计算任务中的资源指示信息进行格式转化,并将转化后的计算任务发送至调度节点,以便调度节点能够基于目标计算节点来执行第二计算任务。
本申请实施例提供的方案可以适用于在线离线混合部署的多集群平台中,也可以应用于在线或者离线单独部署的单集群平台。
参阅图1所示,其为本申请实施例提供的一种资源调度系统的应用场景示意图,在该场景中,包括终端设备101、调度节点102、计算节点103以及虚拟节点104。一般而言,计算节点103的数量是较多的,参见图1所示的计算节点103~1至计算节点103~n。虚拟节点104与计算节点103可以部署于同一集群,也可以部署于不同集群中。需要说明的是,图1示出虚拟节点104与计算节点103部署于同一集群。
可以理解的是,具体是由虚拟节点104所需要执行的业务所在的集群以及获取的计算节点103所在的集群,来确定该虚拟节点104部署于哪个集群。
一般情况下,在单集群场景中,虚拟节点104与计算节点103部署于同一集群。而对于在线离线混合部署的多集群场景中,基于现有的在线和离线的业务计算量。离线业务的计算量往往大于在线业务的计算量。因此,一般将虚拟节点104部署于离线集群中,用于统计该虚拟节点104能够访问的在线集群的闲置资源,并实现离线业务对在线集群中的闲置资源的使用。
终端设备101可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端设备101可以打开调度节点102对应的多集群平台或者单集群平台的页面,例如通过浏览器或者客户端等打开相应的页面,用户可以通过在页面中提交自己的计算任务(即计算任务),该计算任务可以是在线计算任务,也可以是离线计算任务。
调度节点102可以为多集群平台或者单集群平台的管理端,计算节点103则为多集群平台或者单集群平台的任务执行端。调度节点102、计算节点103以及虚拟节点104都可以通过服务器来实现,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
示例性的,虚拟节点104统计至少一个计算节点103的闲置资源,并对闲置资源进行格式转化,得到可配置资源。将可配置资源上报至调度节点102。之后,当用户在终端设备101上提交了计算任务(即pod)后时,调度节点102可基于负载均衡策略,为该计算任务确定相应的计算节点103,如果没有相对应的计算节点103能够执行该计算任务,而虚拟节点104中的可配置资源满足计算任务所需要的计算资源量时,调度节点102将该计算任务调度至虚拟节点104。虚拟节点104根据计算任务中的资源指示信息以及可配置资源,确定至少一个计算节点103中存在满足该资源指示信息的目标计算节点时,按照限制资源的字段格式对计算任务中的资源指示信息进行格式转化,并将转化后的计算任务发送至调度节点102中,由调度节点102基于目标计算节点执行第二计算任务。
在一种可能的应用场景中,本申请实施例中的集群平台一般可以采用云平台的方式,云平台是基于云技术构建的架构平台。云技术(Cloudtethnology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算(cloud computing)商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑,技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
下面将结合图1,以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。以下具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
如图2所示,本申请实施例提供一种资源调度方法,该方法可应用于图1所示的虚拟节点104,所述虚拟节点的可配置资源由至少一个计算节点的闲置资源确定,该方法具体包括以下步骤:
201、接收来自调度节点的第一计算任务,第一计算任务包括资源指示信息,资源指示信息用于表征执行第一计算任务所需的计算资源量。
可选的,计算节点的闲置资源包括计算节点中未分配的计算资源和已分配的计算资源但为使用的计算资源。对于kubernetes集群平台所提交的计算任务称之为Pod。其中,未分配的计算资源即为未进行Pod声明的资源;已分配的计算资源但为使用的计算资源为已进行Pod声明的资源但实际并未使用的资源。
在本实施例中,资源指示信息包括但不局限于:中央处理器(Central ProcessingUnit,CPU)需求量、内存(Memory,Mom)需求量等。
可选的,执行第一计算任务所需的计算资源量是在虚拟节点的可配置资源的范围之内。虚拟节点的可配置资源为至少一个计算节点的闲置资源的总量。具体的,虚拟节点通过获取至少一个计算节点中每一计算节点的闲置资源,并将每一计算节点的闲置资源进行求和处理,得到该虚拟节点的可配置资源。
可以理解的是,第一计算任务可以是在线计算任务或者离线计算任务,对应的虚拟节点用于接收在线计算任务或者离线计算任务。
本申请实施例中,在线计算任务和离线计算任务都是通过集群平台来提交的,因而需要对在线计算任务和离线计算任务进行区分,那么可以提供给用户在线计算任务和离线计算任务的选项,从而基于用户的选择,为用户提交的计算任务打上相应的类型标签。即当用户选择离线计算任务时,则为用户提交的计算任务添加离线计算任务对应的类型标签;而当用户选择在线计算任务时,则为用户提交的计算任务添加在线计算任务对应的类型标签。
在一种可能的实施方式中,由于通常任务属性仅包括在线计算任务和离线计算任务,那么可以仅对离线计算任务进行标记,而当未添加类型标签时,则该任务为在线计算任务。
具体的,当集群平台为kubernetes集群平台时,可以利用kubernetes集群平台的标签(label)功能,在Kubernetes集群平台提交的计算任务称之为pod,每个pod都可以打上自定义的评注(annotation),以展示不同的属性。因此,则可以给离线计算任务添加一个特殊的评注,进而可以通过该评注区分该任务是否为离线计算任务。
202、若根据可配置资源,确定至少一个计算节点中存在满足资源指示信息的目标计算节点,则根据闲置资源的字段格式对第一计算任务中的资源指示信息进行格式转化,得到第二计算任务。
可选的,目标计算节点可以是执行第一计算任务的计算节点,即第一计算任务的调度目标计算节点,此处的目标计算节点具有唯一性。该目标计算节点是由虚拟节点确定第一计算任务最终的执行节点。
在实际应用中,当目标计算节点为第一计算任务最终的执行节点的情况下,虚拟节点需要将该目标计算节点的相关标识添加至第二计算任务中,以便指示调度节点对该第二计算任务进行调度时,可以直接根据第二计算任务中携带的目标计算节点的标识进行调度。
可选的,目标计算节点也可以是满足执行第一计算任务的计算节点,此处的目标计算节点可以不具有唯一性,只要是满足执行第一计算任务的计算节点均可以是目标计算节点。该目标计算节点是由虚拟节点在至少一个计算节点中确定出的可以执行第一计算任务的计算节点,当并不是第一计算任务最终的执行节点。
在一种实现方式中,由于可配置资源是由至少一个计算节点的闲置资源确定的,因此,虚拟节点必然得知每一计算节点的闲置资源,可配置资源可以包括每一计算节点的闲置资源对应的可配置子资源,根据计算节点的闲置资源对应的可配置子资源确定该计算节点是否满足资源指示信息;若满足,则可以将该计算节点确定为目标计算节点。该实现方式中,若至少一个计算节点中存在多个计算节点对应的可配置子资源均满足资源指示信息,则目标计算节点可以有多个。
在另一种实现方式中,根据计算节点的闲置资源对应的可配置子资源确定该计算节点是否满足资源指示信息,并在满足资源指示信息的计算节点中确定出目标计算节点。该实现方式中,目标计算节点为满足资源指示信息的计算节点中的其中一个。
作为一个示例,针对上述实现方式,若至少一个计算节点在满足资源指示信息的计算节点只有一个的情况下,则该计算节点即为目标计算节点。
作为另一示例,若至少一个计算节点中满足资源指示信息的计算节点有多个的情况下,可以采取随机的方式在多个满足资源指示信息的计算节点中选取其中一个作为目标计算节点;或者,可以确定计算节点的闲置资源与已使用资源的比例,根据该比例对多个满足资源指示信息的计算节点进行排序,选取比例最大的计算节点作为目标计算节点;或者,在多个满足资源指示信息的计算节点中选择闲置资源最大的计算节点作为目标计算节点。若闲置资源最大的计算节点不止一个时,可以在闲置资源最大的计算节点中随机选取一个作为目标计算节点。
在实际应用中,若资源的形式包含了中央处理器需求量和内存需求量两种,则闲置资源的代码格式gocrane.io/cpu和gocrane.io/mom,而资源指示信息中的字段格式为cpu和mom。因此,为了能够采用目标计算节点来执行第二计算任务,就需要将cpu和mom转化为gocrane.io/cpu和gocrane.io/mom。
可以理解的是,当前的资源指示信息可以包括中央处理器需求量和内存需求量两种,当本申请实施例并不进行于此。另外,闲置资源的字段格式不限于gocrane.io/cpu和gocrane.io/mom;资源指示信息中的资源格式也不限于cpu和mom。
203、向调度节点发送第二计算任务,第二计算任务用于指示调度节点基于目标计算节点执行第二计算任务。
可选的,第二计算任务中可以包含目标计算节点的标识,也可以不包含目标计算节点的标识。
在一种实现方式中,当第二计算任务中包含目标计算节点的标识可以包括两种情况:
情况一、该目标计算节点即为最终执行第二计算任务的计算节点,则调度节点只需根据该目标计算节点的标识将第二计算任务调度至目标计算节点即可。
情况二、该目标计算节为至少一个计算节点中满足资源指示信息的计算节点,若目标计算节点有一个,则将该目标计算节点作为最终执行第二计算任务的计算节点,调度节点根据该目标计算节点的标识将第二计算任务调度至目标计算节点;若目标计算节点不止一个,则调度节点在这些目标计算节点中选取其中一个作为最终执行第二计算任务的计算节点,并将第二计算任务调度至选取出的目标计算节点中。
在另一种实现方式中,当第二计算任务中未包含目标计算节点的标识,如,第二计算任务中节点标识对应的字段为空,可以包括以下两种情况:
情况一、调度节点则获取至少一个计算节点的闲置资源,根据每一计算节点的闲置资源在至少一个计算节点中确定满足资源指示信息的计算节点。在满足资源指示信息的计算节点中确定出用于执行第二计算任务的目标计算节点,将第二计算任务调度至该目标计算节点。
情况二、调度节点则获取至少一个计算节点的闲置资源,根据每一计算节点的闲置资源在至少一个计算节点中确定满足资源指示信息的目标计算节点。在目标计算节点中确定出用于执行第二计算任务的计算节点,并将第二计算任务调度至该计算节点。
基于上述两种实现方式,可以理解的是,最终用于执行第二计算任务的计算节点可以由虚拟节点确定后,将该计算节点的标识标注在第二计算任务中,以指示调度节点基于第二计算任务中的计算节点的标识对第二计算任务进行调度。可以由调度节点来确定,调度节点的确定方式可以包括第二计算任务中包含了一个或多个计算节点的标识,由调度节点在该一个或多个计算节点中选取;或者第二计算任务中不包含计算节点的标识,有调度节点自行获取至少一个计算节点的闲置资源,并根据这些计算节点的闲置资源确定出最终用于执行第二计算任务的计算节点。
可选的,当目标计算节点不唯一时,第二计算任务具体用于指示调度节点基于目标计算节点的闲置资源确定目标计算节点中执行第二计算任务的计算节点。
作为一个示例,调度节点在接收到第二计算任务时,若第二计算任务中包含多个目标计算节点的节点信息,则针对每一目标计算节点,根据该目标计算节点的节点信息确定该目标计算节点的闲置资源,并根据每一目标计算节点,在多个目标计算节点中确定出用于执行第二计算任务的计算节点。
作为另一个示例,调度节点在接收到第二计算任务时,若第二计算任务中未包含任何目标计算节点的节点信息,则调度节点获取至少一个计算节点的闲置资源,并根据每一计算节点的闲置资源,确定出至少一个目标计算节点;进而在至少一个目标计算节点中确定出用于执行第二计算任务的计算节点。
可选的,当目标计算节点不唯一时,第二计算任务具体用于指示调度节点基于计算节点的闲置资源确定目标计算节点中执行第二计算任务的计算节点。
作为一个示例,调度节点在接收到第二计算任务时,若第二计算任务中未包含任何目标计算节点的节点信息,则调度节点获取至少一个计算节点的闲置资源,并根据每一计算节点的闲置资源,直接确定出用于执行第二计算任务的计算节点。
本申请实施例提出的资源调度方法,可以应用于虚拟节点中,通过至少一个计算节点的闲置资源来确定虚拟节点中的可配置资源,实现了对至少一个计算节点闲置资源的汇总,一个虚拟节点的可配置资源就能够代表这些计算节点的所有闲置算例。当虚拟节点中具有可配置资源后,即可在该可配置资源下接收计算任务,如第一计算任务。虚拟节点在接收到第一计算任务后,由于该第一计算任务中包括了用于表征执行第一计算任务所需的计算资源量的资源指示信息,可以根据可配置资源,在至少一个计算节点中确定是否存在满足该资源指示信息的目标计算节点。如果存在,由于闲置资源的数据格式与第一计算任务中的资源指示信息的数据格式不同,考虑到若要使用计算节点中的闲置资源,就需要对资源指示信息的数据格式进行格式转化。具体是根据闲置资源的字段格式对第一计算任务中的资源指示信息进行格式转化,从而得到第二计算任务。因此,本申请在确定至少一个计算节点中存在满足资源指示信息的情况下,无需采用控制节点对计算任务中的资源指示信息进行格式转化,而是利用虚拟节点来实现,避免了对控制节点原生代码的侵入性修改。之后,将生成的第二计算任务发送至调度节点,以便指示调度节点基于目标计算节点来执行第二计算任务,从而在对原生代码无侵入性修改的前提下实现了闲置资源的复用,以较低的成本提升了集群资源的利用率。
在本申请其中的一个实施例中,应用于虚拟节点,虚拟节点可以在至少一个计算节点中确定出用于执行第二计算任务的计算节点。因此,若根据可配置资源,确定至少一个计算节点中存在满足资源指示信息的目标计算节点,则根据闲置资源的字段格式对第一计算任务中的资源指示信息进行格式转化具体包括:若根据可配置资源,确定至少一个计算节点中满足资源指示信息的计算节点;在满足资源指示信息的计算节点中,确定目标计算节点;根据闲置资源的字段格式对第一计算任务中的资源指示信息进行格式转化,以及根据目标计算节点的节点信息生成第一计算任务中的节点信息,得到第二计算任务;第二计算任务具体用于指示调度节点基于第二计算任务中包含的目标计算节点的节点信息执行第二计算任务。
其中,本实施例中的目标计算节点即为最终执行第二计算任务的计算节点。
可选的,计算节点的节点信息用于指示识别该计算节点,节点信息包括计算节点的标识。第二计算任务中包含的节点信息即为目标计算节点的节点信息。
在一种实现方式中,第二计算任务中包含一个目标计算节点的节点信息,则该目标计算节点则为执行第二计算任务的计算节点。若第二计算任务中包含不止一个目标计算节点的节点信息,若节点信息中只包含了该目标计算节点的标识,则根据每一目标计算节点的标识确定该目标计算节点的闲置资源,并根据每一目标计算节点的闲置资源确定出最终执行第二计算任务的计算节点;若节点信息中包含该目标计算节点的闲置资源,则可以根据每一目标计算节点的闲置资源确定出最终执行第二计算任务的计算节点。
需要说明的是,本申请实施例中,计算节点的资源可以分为闲置资源和已使用配置资源,计算节点的资源包括但不限于是指内存、中央处理器等。计算节点的总资源中包括但不限于在线资源、离线资源、预留资源中的至少一项。
计算节点的节点代理将该计算节点的闲置资源以gocrane.io/cpu的字段格式进行表示。虚拟节点的节点代理获取该计算节点中gocrane.io/cpu所对应的数据即为该计算节点的闲置资源。
示例性的,虚拟节点的节点代理(Crane Agent)通过计算节点的节点代理的资源获取接口,可以获取计算节点的闲置资源。以资源为CPU为例,假设有在线任务1-在线任务3,其中,在线任务1-在线任务3当前各自对应的实际使用资源量分别为1核(core),6core,3core,基于获取的各个实际使用资源,以及计算节点的总资源100core,其中,预留资源为l0core,确定计算节点的当前的闲置资源为80core,该计算节点中gocrane.io/cpu所对应的数据显示为80core。
本实施例中,虚拟节点将确定出的目标计算节点的节点信息生成第一计算任务中的节点信息,得到第二计算任务,以便调度节点直接根据第二计算任务中的节点信息,确定执行第二计算任务的计算节点,从而节省调度节点的计算量。
在本申请其中的一个实施例中,应用于虚拟节点,若要确定计算节点是否为目标计算节点,可以基于该计算节点的配置资源所对应的可配置资源来确定。因此,若根据可配置资源,确定至少一个计算节点中存在满足资源指示信息的目标计算节点,包括:针对每一计算节点,若计算节点的闲置资源对应的可配置资源大于或等于执行第一计算任务所需的计算资源量,则将计算节点确定为目标计算节点。
在一种实现方式中,在虚拟节点的可配置资源中,将计算节点的闲置资源所对应的可配置资源成为可配置子资源,将当该计算节点的可配置子资源不小于执行第一计算任务所需的计算资源量,则确定该计算节点的闲置资源满足资源指示信息,进而将该计算节点确定为目标计算节点。
针对本实施例,至少一个计算节点中,只要满足资源指示信息的计算节点均被确定为目标计算节点。因此,目标计算节点的数量可能不止一个,也即最终用于执行第二计算任务的计算节点时为这些目标计算节点的其中一个。在此情况下,第二计算任务具体用于指示调度节点基于目标计算节点的闲置资源确定目标计算节点中执行第二计算任务的计算节点。
作为一个示例,调度节点在接收到第二计算任务时,若第二计算任务中包含多个目标计算节点的节点信息,则针对每一目标计算节点,根据该目标计算节点的节点信息确定该目标计算节点的闲置资源,并根据每一目标计算节点,在多个目标计算节点中确定出用于执行第二计算任务的计算节点。
作为另一个示例,调度节点在接收到第二计算任务时,若第二计算任务中未包含任何目标计算节点的节点信息,则调度节点获取至少一个计算节点的闲置资源,并根据每一计算节点的闲置资源,确定出至少一个目标计算节点;进而在至少一个目标计算节点中确定出用于执行第二计算任务的计算节点。
在一种在线离线混合部署的集群场景中,当有多个离线计算任务需要使用在线集群中的闲置资源时,可以对每个离线计算任务进行排序,调度节点按照排序将离线计算任务依次调度至虚拟节点,以便虚拟节点在确定出在线集群中存在满足离线计算任务的目标计算节点的情况下,对该离线计算任务中的资源指示信息进行格式转化。
其中,每个离线计算任务在被配置时,配置该离线计算任务的对象可以同时按照离线计算任务的重要程度配置该离线计算任务对应的执行参数值,执行参数值规定了离线计算任务的执行顺序,重要程度较低的离线计算任务对应的执行参数值较低,且执行顺序越靠后。可以按照执行参数值从高到低的顺序,为执行参数值对应的离线计算任务分配资源。执行参数值例如可以是离线计算任务的优先级值。
本实施例中,当计算节点的闲置资源对应的可配置资源不小于执行第一计算任务所需的计算资源量时,即可将该计算节点确定为目标计算节点,以便计算节点在执行计算任务时,避免出现闲置资源的计算量不满足该计算任务所需的计算资源量的问题。
在本申请其中的一个实施例中,应用于虚拟节点,为了使调度节点能够正常向虚拟节点调度计算任务,就需要虚拟节点向调度节点正常上报其可配置资源,由于虚拟节点的可配置资源来源于计算节点的闲置资源,则需要虚拟节点将获取到的计算节点的闲置资源的字段格式按照可配置资源的字段格式进行转换。因此,本申请实施例所提供的方法还包括:获取至少一个计算节点的闲置资源;按照可配置资源的字段格式,对闲置资源的字段格式进行转换处理,得到可配置资源。
在实际应用中,从客户端传输过来的计算任务的资源指示信息一般采用的字段格式为cpu和mom,可以将这种字段格式的资源称之为原生资源。若计算任务需要使用计算节点中的原生资源时,就无需对计算任务中的资源指示信息进行修改;若计算任务需要使用计算节点中的闲置资源时,就需要将计算任务中的资源指示信息的字段格式按照闲置资源的字段格式进行格式转化。为了避免控制节点对计算任务中的资源指示信息的字段格式进行转化,虚拟节点将其可配置资源进行上报时,需要按照原生资源的字段格式进行上报。因此,可配置资源为虚拟节点的原生资源。
作为一个示例,若资源的形式包含了中央处理器需求量和内存需求量两种,虚拟节点获取到计算节点的gocrane.io/cpu和gocrane.io/mom的闲置资源,并对其进行格式转化,得到字段格式为cpu和mom的可配置资源。
在一种实现方式中,参照图3,提供了一种虚拟节点的结构示意图。虚拟节点包括节点供应Node Provider接口、(计算任务)供应(Pod)Provider接口和计算任务指标供应Pod Metrics Provider接口。
其中,Node Provider的职责包括:(1)创建Kubernetes Node;(2)完成虚拟节点的健康检查和状态上报;(3)由于该节点是虚拟的,因此没有具体的计算节点与其状态中的可调度资源对应,因此,需要获取其所对应的集群中的至少一个计算节点的闲置资源给该虚拟节点。NodeProvider会获取集群中的至少一个计算节点,把计算节点中没有被声明的资源以及已进行pod声明但是实际并未使用的资源gocrane.io/cpu进行汇总,得到计算节点的闲置资源,并完成闲置资源到可配置资源的转换,将虚拟节点的可调度资源(即可配置资源)以cpu,mem的字段格式上报至调度节点。这样,调度节点能够得知该虚拟节点具有可用的cpu,mem资源(即可配置资源)。Node Provider中可以包含服务状态的接口ping()和通知节点状态NotifyNodeStatus()等命令。
(Pod)Provider实际是Pod的生命周期管理,虚拟节点Virtual Kubelet承担了代理的角色。(Pod)Provider的职责包括:当有Pod被调度至该虚拟节点时,读取Pod清单,并通过调度节点将pod调度至对应的计算节点,当被调度的Pod被删除时,Virtual Kubelet要将通过调度节点调度至对应的计算节点的Pod删除,以完成资源释放。(Pod)Provider中可以包含获取容器日志GetContainerLog();描述作业是否应在容器中运行的标志RunInContainer();配置节点ConfigureNode()等命令。进一步的,(Pod)Provider还包括节点.Pod生命周期管理node.PodLifecycleHandler,Pod生命周期管理中包含有:创建CreatePod();更新UpdatePod();删除DeletePod();获取GetPod();获取Pod状态GetPodStatus();获取GetPods()等命令。
Pod Metrics Provider的主要职责包括:该虚拟节点所有Pod的状态汇总上报至集群的管理平台。Pod Metrics Provider可以包括获取统计信息摘要GetStatsSummary()等命令。
可选的,计算节点可以根据计算节点中已分配己使用资源和总资源,确定闲置资源的配置系数,进而根据闲置资源的配置系数确定该计算节点的闲置资源。并在确定闲置资源后,将该闲置资源传输至虚拟节点,以使虚拟节点获取该计算节点的闲置资源。
在一种实现方式中,配置系数用于确定闲置资源的一个参数,可以将已使用资源与总资源的百分比作为已使用比例,将1与已使用比例的差值作为闲置资源的第一候选配置系数,预设配置系数作为第二候选配置系数,在第一候选配置系数和第二候选配置系数中选取最小的候选配置系数作为闲置资源的配置系数。
其中,预设配置系数为计算节点中闲置资源可以分配到的最大比例。在实际应用中,预设配置系数可以是计算节点中已分配已使用资源为0时所预设的配置系数。一般情况下,预设配置系数不大于50%。例如,可以是40%。
例如,以CPU为例,假设计算节点配置有100核的总资源,已分配已使用资源为30核,可以得出已使用比例为30%,进而得出第一候选配置系数为70%,假如预设配置系数为50%,则可以得到闲置资源的配置系数为预设配置系数。
进一步的,计算节点的总资源还可以包括缓冲资源;具体的,若己使用资源不为0,则根据己分配已使用资源、已分配未使用资源、缓冲区和可分配总资源,确定闲置资源的配置系数;若所述己使用资源为0,则确定闲置资源的配置系数为预设配置系数。
参照图4,为本申请实施例中的计算节点的总资源的分布示意图,计算节点中总资源包括已分配资源和未分配资源,已分配资源又包含己分配已使用资源、已分配未使用资源和缓冲区,己分配资源中未被使用的资源和未分配资源可以作为闲置资源,缓冲区可以为当前运行的正常作业提供缓冲,即若有突发计算任务而未进行资源避让时可以使用缓冲区来处理。在确定当前超配资源时基于己使用资源、缓冲区和可分配总资源进行确定,即根据可超配资源进行确定。
在计算节点中有正常作业在运行时,即已分配己使用资源不为0时,根据已分配己使用资源、缓冲区和总资源,确定闲置资源的配置系数,若已分配己使用资源较多,则闲置资源的配置系数较小,若已分配己使用资源较少,则闲置资源的配置系数较大,最大不超过预设配置系数。若已分配己使用资源为0,则确定闲置资源的配置系数为预设超配系数,通过预设超配系数可以防止瞬间调度大量计算任务到同一计算节点以触发资源紧张的问题。
本实施例中,则按照可配置资源的字段格式,对获取到至少一个计算阶段的闲置资源的资源格式进行转换处理,得到可配置资源,从而保证虚拟节点能够接收计算任务。
在本申请其中的一个实施例中,为了保证调度节点能够正常为虚拟节点调度计算任务,调度节点就需要获得该虚拟节点的可配置资源。具体的,将可配置资源上报至调度节点;可配置资源用于调度节点将第一计算任务调度至虚拟节点。
可选的,虚拟节点的数量可以基于其所需要获取的计算节点所在的集群数量确定。虚拟节点可以与集群一一对应,即一个虚拟节点对应获取一个集群中计算节点的闲置资源;虚拟节点可以与集群一对多,即一个虚拟节点对应获取多个集群中计算节点的闲置资源。
例如,一个集群中可以部署多个虚拟节点,每一虚拟节点对应获取一个集群的计算节点的闲置资源,该闲置资源可以是虚拟节点所在的集群中计算节点的闲置资源,也可以是具有访问凭证的其他集群中计算节点的闲置资源。
又如,虚拟节点可以同时获取其所在的集群中计算节点的闲置资源,还可以获取其具有访问凭证的其他集群中计算节点的闲置资源。
作为一个示例,参照图5,以在线离线混合部署的集群场景为例,假设集群1、集群2和集群3三个集群(Cluster),其中集群1和集群2为在线集群,集群3为离线集群。假设集群3中部署有虚拟节点,若按照虚拟节点与所需要获取的在线集群为一一对应关系来部署虚拟节点时,则集群3中部署有虚拟节点1和虚拟节点2,虚拟节点1具有集群1的访问凭证(即kubeconfig),基于该访问凭证虚拟节点1能够获取集群1中计算节点的闲置资源;虚拟节点2具有集群2的访问凭证(即kubeconfig),基于该访问凭证虚拟节点2能够获取集群2中计算节点的闲置资源。
基于上述,虚拟节点1得到集群1中计算节点的闲置资源后,对集群1中计算节点的闲置资源进行汇总以及格式转化,得到虚拟节点1的可配置资源。虚拟节点1将可配置资源上报至集群3中的调度器(即调度节点),集群3中的调度器根据虚拟节点1的可配置资源将第一计算任务(该第一计算任务为离线计算任务)调度至虚拟节点1中。之后,虚拟节点1根据可配置资源,确定集群1中是否存在闲置资源满足第一计算任务的资源指示信息的计算节点;若存在,则在满足第一计算任务的资源指示信息的计算节点中确定出目标计算节点。并按照闲置资源的字段格式对资源指示信息进行格式转化以及按照目标计算节点的节点信息生成第一计算任务的节点信息,从而得到第二计算任务。
结合前述,在得到第二计算任务后,虚拟节点1对第二计算任务的传输方式有两种:
第一种,虚拟节点1将第二计算任务直接发送至集群1的调度器,集群1的调度器根据第二计算任务中的节点信息,将第二计算任务调度至该节点信息对应的计算节点。
第二种,虚拟节点2通过集群3的调度器将第二计算任务传输至集群11的调度器,集群1的调度器根据第二计算任务中的节点信息,将第二计算任务调度至该节点信息对应的计算节点。
本实施例中,虚拟节点将其可配置资源上报值调度节点,以便调度节点将计算任务调度至虚拟节点。
参照图6,本申请实施例还提供一种资源调度方法,应用于调度节点,该方法包括:
601、向虚拟节点发送第一计算任务。
其中,第一计算任务包括资源指示信息,资源指示信息用于表征执行第一计算任务所需的计算资源量;第一计算任务用于指示虚拟节点根据可配置资源,确定至少一个计算节点中存在满足资源指示信息的目标计算节点时,根据闲置资源的资源格式对第一计算任务中的资源指示信息进行格式转化,得到第二计算任务;虚拟节点的可配置资源由至少一个计算节点的闲置资源确定。
602、接收来自虚拟节点的第二计算任务。
603、基于目标计算节点执行第二计算任务。
可以理解的是,图6中的步骤内容仅进行了简单描述,具体以上述步骤601-603的描述为准。
本申请提出的资源调度方法,可以应用于控制节点中,当虚拟节点中具有可配置资源后,控制节点向虚拟节点发送第一计算任务,如第一计算任务。由于该第一计算任务中包括了用于表征执行第一计算任务所需的计算资源量的资源指示信息,第一计算任务可以用来指示虚拟节点可以根据可配置资源,在至少一个计算节点中确定是否存在满足该资源指示信息的目标计算节点。如果存在,由于闲置资源的数据格式与第一计算任务中的资源指示信息的数据格式不同,考虑到若要使用计算节点中的闲置资源,就需要对资源指示信息的数据格式进行格式转化。虚拟节点根据闲置资源的字段格式对第一计算任务中的资源指示信息进行格式转化,从而得到第二计算任务。因此,本申请在确定至少一个计算节点中存在满足资源指示信息的情况下,无需采用控制节点对计算任务中的资源指示信息进行格式转化,而是利用虚拟节点来实现,避免了对控制节点原生代码的侵入性修改。之后,调度节点接收来自虚拟节点的第二计算任务,并基于目标计算节点执行第二计算任务,从而在对原生代码无侵入性修改的前提下实现了闲置资源的复用,以较低的成本提升了集群资源的利用率。
在本申请其中的一个实施例中,第二计算任务中包含目标计算节点的节点信息;基于目标计算节点执行第二计算任务,包括:根据节点信息,确定目标计算节点;将第二计算任务调度至目标计算节点。
在本申请其中的一个实施例中,基于目标计算节点执行第二计算任务,包括:基于目标计算节点的闲置资源,在目标计算节点中确定用于执行第二计算任务的计算节点;将第二计算任务调度至目标计算节点中用于执行第二计算任务的计算节点。
在本申请其中的一个实施例中,向虚拟节点发送第一计算任务,还包括:接收来自虚拟节点上报的可配置资源;若可配置资源满足第一计算任务的资源指示信息,则将第一计算任务调度至虚拟节点。
为了更好的理解本申请实施例所提供的资源调度方法,参照图7,以虚拟节点、控制节点、计算节点三者之间交互形式进行示例性说明。计算节点以计算节点1和计算节点2为例。
701、虚拟节点接收来自计算节点1的闲置资源和计算节点2的闲置资源。
702、虚拟节点对计算节点1的闲置资源和计算节点2的闲置资源进行汇总,并按照可配置资源的字段格式,将汇总后的闲置资源转化为可配置资源。
703、虚拟节点将可配置资源发送至调度节点。
704、调度节点确定若虚拟节点的可配置资源满足第一计算任务的资源指示信息,则将第一计算任务调度至虚拟节点。
其中,第一计算任务包括资源指示信息,资源指示信息用于表征执行第一计算任务所需的计算资源量。
705、虚拟节点根据可配置资源,确定计算节点1和计算节点2满足资源指示信息的计算节点。
706、若计算节点1和计算节点2均满足资源指示信息,则虚拟节点在计算节点1和计算节点2中选择一个作为目标计算节点。
707、若将计算节点1作为目标计算节点,则虚拟节点根据闲置资源的字段格式对第一计算任务中的资源指示信息进行格式转化,以及根据计算节点1的节点信息生成第一计算任务中的节点信息,得到第二计算任务。
708、虚拟节点将第二计算任务传输至调度节点。
709、调度节点根据第二计算任务中包含的节点信息,将第二计算任务调度至计算节点1。
710、计算节点1执行第二计算任务。
针对步骤706-709,在另一种实现方式中,若计算节点1和计算节点2均满足资源指示信息,虚拟节点可以将计算节点1和计算节点2均作为目标计算节点。虚拟节点根据闲置资源的字段格式对第一计算任务中的资源指示信息进行格式转化,以及根据计算节点1和计算节点2的节点信息生成第一计算任务中的节点信息,得到第二计算任务。调度节点根据第二计算任务中包含的计算节点1和计算节点2的节点信息,在计算节点1和计算节点2中选择其中一个作为执行第二计算任务的计算节点。
针对步骤706-709,在又一种实现方式中,计算节点1和计算节点2至少有一个计算节点满足资源指示信息。虚拟节点根据闲置资源的字段格式对第一计算任务中的资源指示信息进行格式转化得到第二计算任务。调度节点获取计算节点1和计算节点2的闲置资源,并根据计算节点1和计算节点2的闲置资源以及第二计算任务中的资源指示信息,在计算节点1和计算节点2中选择作为执行第二计算任务的计算节点。
应当注意,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。
图8为本申请一个实施例的虚拟节点的方框示意图。
如图8所示,所述虚拟节点的可配置资源由至少一个计算节点的闲置资源确定,虚拟节点包括:接收模块801、格式转化模块802以及发送模块803,其中,
接收模块801,用于接收来自调度节点的第一计算任务,第一计算任务包括资源指示信息,资源指示信息用于表征执行第一计算任务所需的计算资源量。
格式转化模块802,用于若根据可配置资源,确定至少一个计算节点中存在满足资源指示信息的目标计算节点,则根据闲置资源的字段格式对第一计算任务中的资源指示信息进行格式转化,得到第二计算任务。
发送模块803,用于向调度节点发送第二计算任务,第二计算任务用于指示调度节点基于目标计算节点执行第二计算任务。
在本申请其中的一个实施例中,格式转化模块802,具体用于,
若根据可配置资源,确定至少一个计算节点中满足资源指示信息的计算节点。
在满足资源指示信息的计算节点中,确定目标计算节点。
根据闲置资源的字段格式对第一计算任务中的资源指示信息进行格式转化,以及根据目标计算节点的节点信息生成第一计算任务中的节点信息,得到第二计算任务;第二计算任务具体用于指示调度节点基于第二计算任务中包含的目标计算节点的节点信息执行第二计算任务。
在本申请其中的一个实施例中,格式转化模块802,具体用于,针对每一计算节点,若计算节点的闲置资源对应的可配置资源大于或等于执行第一计算任务所需的计算资源量,则将计算节点确定为目标计算节点。
在本申请其中的一个实施例中,第二计算任务具体用于指示调度节点基于目标计算节点的闲置资源确定目标计算节点中执行第二计算任务的计算节点。
在本申请其中的一个实施例中,接收模块801,还用于获取至少一个计算节点的闲置资源。
格式转化模块802,用于按照可配置资源的字段格式,对闲置资源的字段格式进行转换处理,得到可配置资源。
在本申请其中的一个实施例中,发送模块803,还用于将可配置资源上报至调度节点;可配置资源用于调度节点将第一计算任务调度至虚拟节点。
本申请提出的虚拟节点,通过至少一个计算节点的闲置资源来确定虚拟节点中的可配置资源,实现了对至少一个计算节点闲置资源的汇总,一个虚拟节点的可配置资源就能够代表这些计算节点的所有闲置算例。当虚拟节点中具有可配置资源后,即可在该可配置资源下接收计算任务,如第一计算任务。虚拟节点在接收到第一计算任务后,由于该第一计算任务中包括了用于表征执行第一计算任务所需的计算资源量的资源指示信息,可以根据可配置资源,在至少一个计算节点中确定是否存在满足该资源指示信息的目标计算节点。如果存在,由于闲置资源的数据格式与第一计算任务中的资源指示信息的数据格式不同,考虑到若要使用计算节点中的闲置资源,就需要对资源指示信息的数据格式进行格式转化。具体是根据闲置资源的字段格式对第一计算任务中的资源指示信息进行格式转化,从而得到第二计算任务。因此,本申请在确定至少一个计算节点中存在满足资源指示信息的情况下,无需采用控制节点对计算任务中的资源指示信息进行格式转化,而是利用虚拟节点来实现,避免了对控制节点原生代码的侵入性修改。之后,将生成的第二计算任务发送至调度节点,以便指示调度节点基于目标计算节点来执行第二计算任务,从而在对原生代码无侵入性修改的前提下实现了闲置资源的复用,以较低的成本提升了集群资源的利用率。
应当理解,上述虚拟节点中记载的诸单元与参考图2描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作和特征同样适用于资源调度装置及其中包含的单元,在此不再赘述。虚拟节点可以预先实现在服务器中,也可以通过下载等方式而加载到服务器中。虚拟节点中的相应单元可以与计算机设备中的单元相互配合以实现本申请实施例的方案。
图9为本申请另一个实施例的调度节点的方框示意图。
如图9所示,调度节点包括:接收模块901、调度模块902以及发送模块903,其中,
发送模块903,用于向虚拟节点发送第一计算任务;第一计算任务包括资源指示信息,资源指示信息用于表征执行第一计算任务所需的计算资源量;第一计算任务用于指示虚拟节点根据可配置资源,确定至少一个计算节点中存在满足资源指示信息的目标计算节点时,根据闲置资源的资源格式对第一计算任务中的资源指示信息进行格式转化,得到第二计算任务;虚拟节点的可配置资源由至少一个计算节点的闲置资源确定;
接收模块901,用于接收来自虚拟节点的第二计算任务。
调度模块902,用于基于目标计算节点执行第二计算任务。
在本申请其中的一个实施例中,第二计算任务中包含目标计算节点的节点信息;调度模块902,具体用于根据节点信息,确定目标计算节点;将第二计算任务调度至目标计算节点。
在本申请其中的一个实施例中,调度模块902,具体用于,
基于目标计算节点的闲置资源,在目标计算节点中确定用于执行第二计算任务的计算节点。
将第二计算任务调度至目标计算节点中用于执行第二计算任务的计算节点。
在本申请其中的一个实施例中,接收模块901,还用于接收来自虚拟节点上报的可配置资源;
发送模块903,具体用于若可配置资源满足第一计算任务的资源指示信息,则将第一计算任务调度至虚拟节点。
本申请实施例提出控制节点,当虚拟节点中具有可配置资源后,控制节点向虚拟节点发送第一计算任务,如第一计算任务。由于该第一计算任务中包括了用于表征执行第一计算任务所需的计算资源量的资源指示信息,第一计算任务可以用来指示虚拟节点可以根据可配置资源,在至少一个计算节点中确定是否存在满足该资源指示信息的目标计算节点。如果存在,由于闲置资源的数据格式与第一计算任务中的资源指示信息的数据格式不同,考虑到若要使用计算节点中的闲置资源,就需要对资源指示信息的数据格式进行格式转化。虚拟节点根据闲置资源的字段格式对第一计算任务中的资源指示信息进行格式转化,从而得到第二计算任务。因此,本申请在确定至少一个计算节点中存在满足资源指示信息的情况下,无需采用控制节点对计算任务中的资源指示信息进行格式转化,而是利用虚拟节点来实现,避免了对控制节点原生代码的侵入性修改。之后,调度节点接收来自虚拟节点的第二计算任务,并基于目标计算节点执行第二计算任务,从而在对原生代码无侵入性修改的前提下实现了闲置资源的复用,以较低的成本提升了集群资源的利用率。
应当理解,上述调度节点中记载的诸单元与参考图6描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作和特征同样适用于调度节点及其中包含的单元,在此不再赘述。调度节点可以预先实现在服务器中,也可以通过下载等方式而加载到服务器中。调度节点中的相应单元可以与计算机设备中的单元相互配合以实现本申请实施例的方案。
在上文详细描述中提及的若干模块或者单元,这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
需要说明的是,本申请实施例的虚拟节点和调度节点中未披露的细节,请参照本申请上述实施例中所披露的细节,这里不再赘述。
下面参考图10,图10示出了适于用来实现本申请实施例的计算机设备的结构示意图,如图10所示,计算机系统1000包括中央处理单元(CPU)1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(RAM)1003中的程序而执行各种适当的动作和处理。在RAM1003中,还存储有系统的操作指令所需的各种程序和数据。CPU1001、ROM1002以及RAM1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
以下部件连接至I/O接口1005;包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
特别地,根据本申请的实施例,上文参考流程图图2描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理单元(CPU)1001执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以为的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作指令。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,前述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以不同于附图中所标注的顺序发生。例如,两个连接表示的方框实际上可以基本并行地执行,他们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作指令的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括违规人物检测单元、多模态检测单元以及识别单元。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的计算机设备中所包含的,也可以是单独存在,而未装配入该计算机设备中的。上述计算机可读存储介质存储有一个或多个程序,当上述程序被一个或者一个以上的处理器用来执行本申请所述的资源调度方法。例如,可以执行图2所示的资源调度方法的各个步骤或者执行图6所示的资源调度方法的各个步骤。
本申请实施例提供一种计算机程序产品,该计算机程序产品包括指令,当该指令被运行时,使得如本申请实施例描述的方法被执行。例如,可以执行图2所示的资源调度方法的各个步骤或者执行图6所示的资源调度方法的各个步骤。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其他技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (15)
1.一种资源调度方法,其特征在于,应用于虚拟节点,所述虚拟节点的可配置资源由至少一个计算节点的闲置资源确定,所述方法包括:
接收来自调度节点的第一计算任务,所述第一计算任务包括资源指示信息,所述资源指示信息用于表征执行所述第一计算任务所需的计算资源量;
若根据所述可配置资源,确定所述至少一个计算节点中存在满足所述资源指示信息的目标计算节点,则根据所述闲置资源的字段格式对所述第一计算任务中的所述资源指示信息进行格式转化,得到第二计算任务;
向所述调度节点发送所述第二计算任务,所述第二计算任务用于指示所述调度节点基于所述目标计算节点执行所述第二计算任务。
2.根据权利要求1所述的资源调度方法,其特征在于,所述若根据所述可配置资源,确定所述至少一个计算节点中存在满足所述资源指示信息的目标计算节点,则根据所述闲置资源的字段格式对所述第一计算任务中的所述资源指示信息进行格式转化,包括:
若根据所述可配置资源,确定所述至少一个计算节点中满足所述资源指示信息的计算节点;
在满足所述资源指示信息的计算节点中,确定所述目标计算节点;
根据所述闲置资源的字段格式对所述第一计算任务中的所述资源指示信息进行格式转化,以及根据所述目标计算节点的节点信息生成所述第一计算任务中的节点信息,得到所述第二计算任务;所述第二计算任务具体用于指示所述调度节点基于所述第二计算任务中包含的所述目标计算节点的节点信息执行所述第二计算任务。
3.根据权利要求1所述的资源调度方法,其特征在于,所述若根据所述可配置资源,确定所述至少一个计算节点中存在满足所述资源指示信息的目标计算节点,包括:
针对每一计算节点,若所述计算节点的所述闲置资源对应的所述可配置资源大于或等于执行所述第一计算任务所需的计算资源量,则将所述计算节点确定为所述目标计算节点。
4.根据权利要求1或3所述的资源调度方法,其特征在于,所述第二计算任务具体用于指示所述调度节点基于所述目标计算节点的闲置资源确定所述目标计算节点中执行所述第二计算任务的计算节点。
5.根据权利要求1所述的资源调度方法,其特征在于,所述方法还包括:
获取所述至少一个计算节点的闲置资源;
按照所述可配置资源的字段格式,对所述闲置资源的字段格式进行转换处理,得到所述可配置资源。
6.根据权利要求1所述的资源调度方法,其特征在于,所述方法还包括:
将所述可配置资源上报至所述调度节点;所述可配置资源用于所述调度节点将所述第一计算任务调度至所述虚拟节点。
7.一种资源调度方法,其特征在于,应用于调度节点,所述方法包括:
向虚拟节点发送第一计算任务;所述第一计算任务包括资源指示信息,所述资源指示信息用于表征执行所述第一计算任务所需的计算资源量;所述第一计算任务用于指示所述虚拟节点根据可配置资源,确定至少一个计算节点中存在满足所述资源指示信息的目标计算节点时,根据闲置资源的资源格式对所述第一计算任务中的所述资源指示信息进行格式转化,得到所述第二计算任务;所述虚拟节点的所述可配置资源由所述至少一个计算节点的所述闲置资源确定;
接收来自所述虚拟节点的第二计算任务;
基于所述目标计算节点执行所述第二计算任务。
8.根据权利要求7所述的资源调度方法,其特征在于,所述第二计算任务中包含所述目标计算节点的节点信息;所述基于所述目标计算节点执行所述第二计算任务,包括:
根据所述节点信息,确定所述目标计算节点;
将所述第二计算任务调度至所述目标计算节点。
9.根据权利要求7所述的资源调度方法,其特征在于,所述基于所述目标计算节点执行所述第二计算任务,包括:
基于所述目标计算节点的所述闲置资源,在所述目标计算节点中确定用于执行所述第二计算任务的计算节点;
将所述第二计算任务调度至所述目标计算节点中用于执行所述第二计算任务的计算节点。
10.根据权利要求7-9任一项所述的资源调度方法,其特征在于,所述方法还包括:
接收来自所述虚拟节点上报的所述可配置资源;
所述向虚拟节点发送第一计算任务,包括:
若所述可配置资源满足所述第一计算任务的所述资源指示信息,则将所述第一计算任务调度至所述虚拟节点。
11.一种虚拟节点,其特征在于,所述虚拟节点的可配置资源由至少一个计算节点的闲置资源确定,所述虚拟节点包括:
接收模块,用于接收来自调度节点的第一计算任务,所述第一计算任务包括资源指示信息,所述资源指示信息用于表征执行所述第一计算任务所需的计算资源量;
格式转化模块,用于若根据所述可配置资源,确定所述至少一个计算节点中存在满足所述资源指示信息的目标计算节点,则根据所述闲置资源的字段格式对所述第一计算任务中的所述资源指示信息进行格式转化,得到第二计算任务;
发送模块,用于向所述调度节点发送所述第二计算任务,所述第二计算任务用于指示所述调度节点基于所述目标计算节点执行所述第二计算任务。
12.一种调度节点,其特征在于,所述调度节点包括:
发送模块,用于向虚拟节点发送第一计算任务;所述第一计算任务包括资源指示信息,所述资源指示信息用于表征执行所述第一计算任务所需的计算资源量;所述第一计算任务用于指示所述虚拟节点根据可配置资源,确定至少一个计算节点中存在满足所述资源指示信息的目标计算节点时,根据闲置资源的资源格式对所述第一计算任务中的所述资源指示信息进行格式转化,得到所述第二计算任务;所述虚拟节点的所述可配置资源由所述至少一个计算节点的所述闲置资源确定;
接收模块,用于接收来自所述虚拟节点的第二计算任务;
调度模块,用于基于所述目标计算节点执行所述第二计算任务。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时,实现如权利要求1-6任一项所述的方法或者如权利要求7-10所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6任一项所述的方法或者如权利要求7-10所述的方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括指令,当所述指令被运行时,使得实现如权利要求1-6任一项所述的方法或者如权利要求7-10所述的方法被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310488044.2A CN116974748A (zh) | 2023-04-28 | 2023-04-28 | 资源调度方法、节点、设备、介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310488044.2A CN116974748A (zh) | 2023-04-28 | 2023-04-28 | 资源调度方法、节点、设备、介质和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116974748A true CN116974748A (zh) | 2023-10-31 |
Family
ID=88480420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310488044.2A Pending CN116974748A (zh) | 2023-04-28 | 2023-04-28 | 资源调度方法、节点、设备、介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116974748A (zh) |
-
2023
- 2023-04-28 CN CN202310488044.2A patent/CN116974748A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107590001B (zh) | 负载均衡方法及装置、存储介质、电子设备 | |
CN108182111B (zh) | 任务调度系统、方法和装置 | |
US9882985B1 (en) | Data storage path optimization for internet of things computing system | |
CN109729106B (zh) | 处理计算任务的方法、系统和计算机程序产品 | |
CN110166507B (zh) | 多资源调度方法和装置 | |
US11311722B2 (en) | Cross-platform workload processing | |
US10997538B1 (en) | Resource management | |
CN113709810B (zh) | 一种网络服务质量的配置方法、设备和介质 | |
WO2024016596A1 (zh) | 容器集群调度的方法、装置、设备及存储介质 | |
US12014216B2 (en) | Method for platform-based scheduling of job flow | |
CN112486653A (zh) | 调度多类型计算资源的方法、装置和系统 | |
CN112714164A (zh) | 一种物联网系统及其任务调度方法 | |
CN114924751A (zh) | 一种业务访问请求流量分配的方法和装置 | |
CN112698952A (zh) | 计算资源统一管理方法、装置、计算机设备及存储介质 | |
JP2023545985A (ja) | エッジ・コンピューティング環境におけるタスク・フローの管理 | |
CN114301980A (zh) | 容器集群的调度方法、装置、系统及计算机可读介质 | |
CN117633102A (zh) | 区块链的数据整合方法、装置、计算机设备及存储介质 | |
CN112148458A (zh) | 任务调度方法、装置 | |
CN112104679B (zh) | 处理超文本传输协议请求的方法、装置、设备和介质 | |
CN115499432A (zh) | 家庭终端算力资源管理系统及算力资源调度方法 | |
CN114296953A (zh) | 一种多云异构系统及任务处理方法 | |
US20090132582A1 (en) | Processor-server hybrid system for processing data | |
CN111444148B (zh) | 基于MapReduce的数据传输方法和装置 | |
CN117608760A (zh) | 应用于Kubernetes的云上应用混合部署方法 | |
CN117118982A (zh) | 基于云原生多集群的消息传输方法、装置、介质及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |