CN111464659A - 节点的调度、节点的预选处理方法、装置、设备及介质 - Google Patents
节点的调度、节点的预选处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN111464659A CN111464659A CN202010345353.0A CN202010345353A CN111464659A CN 111464659 A CN111464659 A CN 111464659A CN 202010345353 A CN202010345353 A CN 202010345353A CN 111464659 A CN111464659 A CN 111464659A
- Authority
- CN
- China
- Prior art keywords
- node
- target
- service unit
- scheduling
- preselected
- 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 64
- 238000003672 processing method Methods 0.000 title claims description 11
- 238000009826 distribution Methods 0.000 claims abstract description 52
- 238000012216 screening Methods 0.000 claims description 53
- 238000003860 storage Methods 0.000 claims description 17
- 238000005457 optimization Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 11
- 230000007246 mechanism Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 8
- 239000002699 waste material Substances 0.000 abstract description 11
- 238000013468 resource allocation Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 8
- 239000006185 dispersion Substances 0.000 description 7
- 230000002776 aggregation Effects 0.000 description 6
- 238000004220 aggregation Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000005507 spraying Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种节点的调度、节点的预选处理方法、装置、设备及介质。所述方法包括:接收请求方发送的服务请求,并根据所述服务请求生成待调度的目标服务单元;根据预设调度条件,在节点集群中确定调度节点,所述调度条件与所述待调度的目标服务单元匹配,所述调度条件包括:指定服务单元,或指定节点中指定服务单元的最大运行数量;将所述目标服务单元调度至所述调度节点中运行,并将所述调度节点对所述目标服务单元的运行结果作为所述服务请求的服务结果。本发明实施例可以兼顾服务分散分布和资源的高利用率,优化资源配置,减少资源浪费。
Description
技术领域
本发明实施例涉及网络领域,尤其涉及一种节点的调度、节点的预选处理方法、装置、设备及介质。
背景技术
资源共享的分布式系统中,任务的调度是基于资源预定义进行划分的。这样系统可以根据当前集群资源情况将任务调度到最合理的节点上,尽可能地增加集群的资源使用率和节点间的负载均衡。
例如,可以通过将至少一个服务调度到不同的节点上运行,以实现服务分散部署在节点集群中,同时有效利用了节点资源。其中,调度方式可以按照不同服务之间的亲和性或者反亲和性确定,以实现服务之间的互斥部署和分散调度;还可以按照节点和服务之间的亲和性或者反亲和性确定,以实现服务在特定节点上的聚合调度。
但上述调度方式中,调度策略只能从亲和性调度或者反亲和性调度二选一,这会导致同一类型的服务扎堆分布在少数的节点上,失去高可用的意义;或者导致每个节点只能调度一个服务,导致资源上的浪费。
发明内容
本发明实施例提供一种节点的调度、节点的预选处理方法、装置、设备及介质,可以兼顾服务分散分布和资源的高利用率,优化资源配置,减少资源浪费。
第一方面,本发明实施例提供了一种节点的调度方法,包括:
接收请求方发送的服务请求,并根据所述服务请求生成待调度的目标服务单元;
根据预设调度条件,在节点集群中确定调度节点,所述调度条件与所述待调度的目标服务单元匹配,所述调度条件包括:指定服务单元,或指定节点中指定服务单元的最大运行数量;
将所述目标服务单元调度至所述调度节点中运行,并将所述调度节点对所述目标服务单元的运行结果作为所述服务请求的服务结果。
第二方面,本发明实施例还提供了一种节点的预选处理方法,包括:
获取预选节点集合,所述预选节点集合与待调度的目标服务单元匹配,所述预选节点集合包括至少一个预选节点;
根据各所述预选节点的当前已运行的目标服务单元数量,在各所述预选节点中确定至少一个目标节点,所述目标节点不满足调度条件,所述调度条件包括:指定服务单元,或指定节点中指定服务单元的最大运行数量;
从所述预选节点集合中筛除各所述目标节点,得到候选节点集合,所述候选节点集合中的调度节点用于运行所述待调度的目标服务单元。
第三方面,本发明实施例还提供了一种节点的调度装置,包括:
待调度服务单元生成模块,用于接收请求方发送的服务请求,并根据所述服务请求生成待调度的目标服务单元;
调度节点确定模块,用于根据预设调度条件,在节点集群中确定调度节点,所述调度条件与所述待调度的目标服务单元匹配,所述调度条件包括:指定服务单元,或指定节点中指定服务单元的最大运行数量;
服务结果确定模块,用于将所述目标服务单元调度至所述调度节点中运行,并将所述调度节点对所述目标服务单元的运行结果作为所述服务请求的服务结果。
第四方面,本发明实施例还提供了一种节点的预选处理装置,包括:
预选节点获取模块,用于获取预选节点集合,所述预选节点集合与待调度的目标服务单元匹配,所述预选节点集合包括至少一个预选节点;
目标节点获取模块,用于根据各所述预选节点的当前已运行的目标服务单元数量,在各所述预选节点中确定至少一个目标节点,所述目标节点不满足调度条件,所述调度条件包括:指定服务单元,或指定节点中指定服务单元的最大运行数量;
预选节点筛选模块,用于从所述预选节点集合中筛除各所述目标节点,得到候选节点集合,所述候选节点集合中的调度节点用于运行所述待调度的目标服务单元。
第五方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序所述处理器执行所述程序时实现如本发明实施例中任一所述的节点的调度方法或实现如本发明实施例中任一所述的节点的预选处理方法。
第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的节点的调度方法或实现如本发明实施例中任一所述的节点的预选处理方法。
本发明实施例通过获取服务请求,并生成待调度的目标服务单元,根据目标服务单元匹配的调度条件,根据每个节点中指定服务单元的运行数量,在节点集群中筛选出调度节点,并将目标服务单元调度到调度节点中运行,将运行结果作为服务请求的服务结果,实现对同类服务单元在同一个节点上的分布数量限制,解决了现有技术中调度策略导致同一类型的服务高度聚集分布,或者过于分散分布的问题,可以限制同一个节点中同一类型的服务的数量过多以及过少,合理配置节点资源,兼顾服务分散分布和节点资源的高利用率,减少资源浪费。
附图说明
图1是本发明实施例一中的一种节点的调度方法的流程图;
图2是本发明实施例二中的一种节点的调度方法的流程图;
图3a是本发明实施例所适用的应用场景的示意图;
图3b是本发明实施例三中的一种节点的调度方法的流程图;
图3c是本发明实施例三中的一种节点的调度方法的流程图;
图3d是本发明实施例三中的一种预选节点的示意图;
图4是本发明实施例四中的一种节点的预选处理方法的流程图;
图5是本发明实施例五中的一种节点的调度装置的结构示意图;
图6是本发明实施例六中的一种节点的预选处理装置的结构示意图;
图7是本发明实施例七中的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一中的一种节点的调度方法的流程图的示意图,本实施例可适用于调度系统根据请求方发送的服务请求生成目标服务单元,并对目标服务单元进行节点调度的情况,该方法可以由本发明实施例提供的节点的调度装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成计算机设备中,具体是节点调度系统。如图1所示,本实施例的方法具体包括:
S110,接收请求方发送的服务请求,并根据所述服务请求生成待调度的目标服务单元。
本发明实施例的节点的调度方法可以应用在节点调度系统中,节点调度系统用于将服务单元分配到节点集群中的任意一个节点中运行。其中,节点集群可以是包括服务器集群。此外,节点调度系统还用于生成服务管理单元和管理服务单元等,对此,本发明实施例不作具体限制。
请求方可以包括客户端和服务器。服务请求用于请求方获取响应方提供的响应数据,具体的,节点集群中节点作为响应方,用于处理服务请求。例如,请求方可以包括直播客户端,服务请求可以包括直播客户端的直播流数据获取请求,节点集群中节点包括直播服务器。又如,请求方可以包括金融客户端,服务请求可以包括金融客户端的人脸识别请求,节点集群中节点包括人脸识别服务器。又如,请求方可以包括打车服务器,服务请求可以包括导航地图,节点集群中节点包括地图服务器。此外,服务请求可以是其他任意场景中的任意内容,可以根据实际情况进行设定,对此,本发明实施例不作具体限制。
服务单元用于在节点中运行,以提供相应服务。其中,服务可以包括前述服务请求对应的服务,例如,提供直播流数据的服务,人脸识别的服务或地图数据获取的服务等。
服务单元可以包括至少一个容器。待调度的目标服务单元可以是指待分配节点运行的服务单元。此外,待调度目标服务单元还可以包括异常节点中需要更换节点运行的服务单元等。在本发明中,服务单元作为可调度的最小单元,调度到节点集群的节点中运行。
S120,根据预设调度条件,在节点集群中确定调度节点,所述调度条件与所述待调度的目标服务单元匹配,所述调度条件包括:指定服务单元,或指定节点中指定服务单元的最大运行数量。
调度条件用于判断各节点是否可以运行待调度的目标服务单元。调度条件的数量包括至少一个,从多个调度条件中查询到与目标服务单元匹配的调度条件。其中,调度条件调度节点用于运行待调度的目标服务单元。
指定服务单元,用于确定服务单元的类型,具体可以通过各服务单元的标识信息确定。指定节点用于确定节点的类型,具体可以通过各节点的标识信息确定。最大运行数量可以是指在一个节点中,当前已运行的同一类型的服务单元的数量最大值,即数量上限。
其中,调度条件包括:指定服务单元的最大运行数量,用于根据各节点中当前已运行的目标服务单元数量进行判断,实际上,用于限制同一节点中同一类型的服务单元的数量。
或者,调度条件包括:指定节点中指定服务单元的最大运行数量。用于根据各指定的节点中当前已运行的目标服务单元数量进行判断,实际上,用于限制同一类型的节点中,每个节点上运行的同一类型的服务单元的数量。
可选的,所述根据预设的与所述待调度的目标服务单元匹配的调度条件,在节点集群中确定调度节点,包括:获取预选节点集合,所述预选节点集合与所述待调度的目标服务单元匹配,所述预选节点集合包括至少一个预选节点;根据各所述预选节点的当前已运行的目标服务单元数量,在各所述预选节点中确定至少一个目标节点,所述目标节点不满足调度条件;从所述预选节点集合中筛除各所述目标节点,得到候选节点集合;在所述候选节点集合中,确定所述调度节点。
预选节点集合可以是指对节点集群中节点进行筛选得到的预选节点形成的集合。预选节点集合与待调度的目标服务单元匹配,表明预选节点集合中各预选节点具备运行该待调度的目标服务单元能力。
当前已运行的目标服务单元可以是指预选节点中正在运行的服务单元,同时,该当前已运行的目标服务单元与待调度的目标服务单元是同一类型的服务单元。目标服务单元数量是指当前已运行的目标服务单元中在同一个预选节点中的数量。目标服务单元数量,以及调度条件,用于筛选出符合同一类型服务单元的分布数量的预选节点以及不符合同一类型服务单元的运行数量的预选节点。目标节点作为从预选节点中剔除的节点,具体是指不符合同一类型服务单元分布数量的节点,例如,目标节点为运行目标服务单元的数量过多的节点。
在一个具体的例子中,调度条件中规定了待调度的目标服务单元的最大运行数量为3个。预选节点A的当前已运行的服务单元中,标签信息为a的服务单元的数量为4个,预选节点B的当前已运行的服务单元中,不包括标签信息为a的服务单元,预选节点C的当前已运行的服务单元中,标签信息为a的服务单元的数量为2个。由此,不满足调度条件的目标节点包括预选节点A。
此外,调度条件还可以其他具体内容,对此,本发明实施例不作具体限制。
通过在待调度的目标服务单元的节点调度过程中,在预选得到的预选节点集合中,获取各预选节点的当前已运行的目标服务单元,并统计数量,根据统计数量从预选节点集合中不满足调度条件的至少一个目标节点,实现对同类服务单元在同一个节点上的分布数量限制,以限制同一个节点中同一类型的服务的数量过多以及过少,合理配置节点资源,兼顾服务分散分布和节点资源的高利用率,减少资源浪费。
可选的,所述调度条件中包括:所述目标服务单元的最大运行数量;所述根据各所述预选节点的当前已运行的目标服务单元数量,在各所述预选节点中确定至少一个目标节点,包括:在各预选节点当前已运行的服务单元中,获取至少一个目标服务单元;计算各所述目标服务单元在同一预选节点中的服务单元数量值;获取所述调度条件中所述目标服务单元的最大运行数量;将服务单元数量值大于等于所述最大运行数量的预选节点,作为目标节点。
指定服务单元包括目标服务单元,也即,指定服务单元与待调度的目标服务单元为同一类型的服务单元。
目标服务单元的最大运行数量,可以是指针对在同一个节点运行的各服务单元,其中目标服务单元的最大数量阈值。服务单元数量值可以是指目标服务单元在同一个预选节点上的运行数量的统计数值,即针对目标服务单元,每个预选节点都存在一个对应的服务单元数量值。分别统计每个预选节点中当前已运行的目标服务单元的数量,作为目标服务单元在该预选节点上的服务单元数量值。
从调度条件中提取最大运行数量,并与每个预选节点的服务单元数量值进行大小比较。将服务单元数量值大于等于最大运行数量的预选节点,作为目标节点,表明,目标节点上当前已运行的目标服务单元的数量过多。通常,为了避免目标服务单元集中分布在同一个节点中,对当前已运行的目标服务单元的数量过多的目标节点,不再调度新的目标服务单元,从而,目标节点作为不满足调度条件的节点,从预选节点集合中删除,以限制目标服务单元在同一个节点上的运行数量上限,避免多个目标服务单元密集分布在同一个节点。
通过限制同类服务单元在同一个节点中的运行数量上限,可以减少多个同类服务单元密集分布在同一个节点中,增加同类服务单元的运行节点的数量,从而增加运行同类服务单元的节点资源,提高多数节点的资源利用率,以及可以在某个节点异常时,部署有同类服务单元的其他节点仍正常提供同类服务,减少同类服务中断的时间,提高持续对外提供服务的能力,从而提高节点集群的高可用性。
在本发明中服务单元的调度过程包括预选、优选和选定。其中,节点预选包括:基于一系列的预选规则对每个节点进行检查,将那些不符合条件的节点过滤,得到预选出节点;节点优选包括对预选出的节点进行优先级排序,以便选出最合适运行服务单元的节点;节点选定包括:从优先级排序结果中挑选出优先级最高的节点运行服务单元,如果节点的数量大于1个,则进行随机选择或者其他选择方式选择出一个节点。
可选的,获取预选节点集合,包括:采用标准节点预选算法,获取与所述待调度的目标服务单元匹配的预选节点集合。
标准节点预选算法用于从节点集群中筛选出预选节点,并根据预选节点生成预选节点集合。可以在生成待调度的目标服务单元时,采用标准节点预选算法生成预选节点集合,也可以在生成待调度的目标服务单元之后,采用标准节点预选算法生成预选节点集合。
其中,标准节点预选算法可以包括下述至少一项:检查是否可以在节点报告磁盘、网络不可用或未准备好的情况下将服务单元调度其上,服务单元是否定义设定属性,节点上的资源可用性是否满足服务单元的运行需求,节点上的存储卷是否满足服务单元的需求,节点的节点标签是否满足限制条件,和节点是否满足服务单元的亲和性和反亲和性条件等。此外,还有其他预选算法,可以根据实际情况设定,对此,本发明实施例不作具体限制。
通过采用标准节点预算算法对节点进行筛选,保证筛选得到的节点可以正常运行待调度的目标服务单元,以及为待调度的目标服务单元合理配置节点资源,并在采用标准节点预算算法对节点进行筛选,得到预选节点,形成预选节点集合,作为调度条件的筛选范围,兼顾服务单元正常运行以及目标指定服务单元的均衡负载。
在所述候选节点集合中,确定所述调度节点,包括:采用标准节点优选算法,对所述候选节点集合中各所述候选节点进行优先级排序;根据排序结果从所述候选节点集合中确定调度节点。
标准节点优选算法用于根据候选集合中各候选节点的信息,计算候选节点集合中各候选节点中的优先级分数,并排序。其中,候选节点的信息可以包括下述至少一项:节点性能(如资源占用率)、节点与服务单元的匹配程度(亲和性或反亲和性)和容灾能力等。
标准节点优选算法可以包括下述至少一项:计算节点空闲资源与节点总容量的比值、CPU使用率、计算待调度的目标服务单元与调度节点上已运行的目标服务单元的亲和性值和反亲和性值、计算待调度的目标服务单元与调度节点的亲和性值和反亲和性值,以及计算待调度的目标服务单元需求的镜像的体积等。若标准节点优选算法的数量大于一个,可以根据上述数值和权重,计算加权和,得到该调度节点对应的优先级分数。其中,若标准节点优选算法的数量的等于一个,上述数值可以直接作为优先级分数,也可以根据数值与优先级分数对应关系,确定优先级分数。此外,还可以根据需要设定标准节点优选算法,对此,本发明实施例不作具体限制。
调度节点用于运行待调度的目标服务单元,可以是指排名结果第一的候选节点。其中,如果排名结果为并列第一,需要从并列第一的候选节点中选择一个作为调度节点,其中,该选择方式可以是随机选择,也可以根据需要按照预设规则进行选择,对此,本发明实施例不作具体限制。
实际上,一个待调度的目标服务单元不能并行运行,通常在同一时刻运行该待调度的目标服务单元的节点的数量为一个,从而从候选节点集合中选择出唯一一个节点作为运行待调度的目标服务单元的调度节点。
通过采用标准节点优选算法,对候选节点集合中各候选节点进行优先级排序,并根据排序结果确定调度节点,可以为待调度的目标服务单元配置足够的节点资源运行,保证目标服务单元正常稳定运行,提高节点集群的系统稳定性,同时,对候选节点进一步筛选确定调度节点,优化资源配置。
S130,将所述目标服务单元调度至所述调度节点中运行,并将所述调度节点对所述目标服务单元的运行结果作为所述服务请求的服务结果。
调度节点运行目标服务单元的运行结果,即为调度节点针对服务请求的服务结果。服务结果可以是指,服务请求的响应数据。服务结果可以直接由调度节点反馈给请求方,也可以发送给节点调度系统,并由节点调度系统转发至请求方。
本发明实施例通过获取服务请求,并生成待调度的目标服务单元,根据目标服务单元匹配的调度条件,根据每个节点中指定服务单元的运行数量,在节点集群中筛选出调度节点,并将目标服务单元调度到调度节点中运行,将运行结果作为服务请求的服务结果,实现对同类服务单元在同一个节点上的分布数量限制,解决了现有技术中调度策略导致同一类型的服务高度聚集分布,或者过于分散分布的问题,可以限制同一个节点中同一类型的服务的数量过多以及过少,合理配置节点资源,兼顾服务分散分布和节点资源的高利用率,减少资源浪费。
实施例二
图2为本发明实施例二中的一种节点的调度方法的流程图,本实施例以上述实施例为基础进行具体化,将调度条件具体化为:至少一个目标指定节点中所述目标服务单元的最大运行数量。本实施例的方法具体包括:
S201,接收请求方发送的服务请求,并根据所述服务请求生成待调度的目标服务单元。
本实施方式中未详细描述的内容,可以参考上述任意实施方式中的描述。
在本发明实施例中,调度条件包括:至少一个目标指定节点中所述目标服务单元的最大运行数量,表明,调度条件同时限制了两方面,一个是指定需要限制的服务单元及其数量,另一个是指定需要限制服务单元的节点。
可选的,在根据所述服务请求生成待调度的目标服务单元之前,还包括:根据服务单元分配信息,生成服务单元分配对象;在在各所述预选节点中确定至少一个目标节点之前,还包括:在多个服务单元分配对象中,获取与所述待调度的目标服务单元匹配的至少一个目标对象;获取各所述目标对象对应的配置信息,并提取所述配置信息中包括的节点筛选标签、服务单元筛选标签以及最大运行数量作为所述调度条件,所述节点筛选标签用于确定指定节点,所述服务单元筛选标签用于确定指定服务单元。
实际上,现有的调度方式中无法自定义服务单元的数量限制的调度策略,可以通过创建服务单元分配对象的方式,并在服务单元分配对象的配置信息中添加调度条件的具体内容,以实现自定义服务单元的数量限制,以及限制服务单元的节点范围。
可以针对各调度条件分别创建服务单元分配对象。不同服务单元分配对象对应不同的调度条件。服务单元分配对象中配置有节点筛选标签、服务单元筛选标签以及最大运行数量,用于指定节点的范围,以及在该范围中的各指定节点上的运行的指定服务单元的最大运行数量。
目标对象用于确定与该待调度的目标服务单元匹配的调度条件,以对预选节点进行筛选,目标对象可以是指与待调度的目标服务单元匹配的服务单元分配对象。目标对象的配置信息中存储有调度条件所需的数据,具体包括节点筛选标签、服务单元筛选标签以及最大运行数量等。此外,目标对象的配置信息中还可以包括下述至少一项:对象状态、键值、对象标识信息或名称空间等,具体可以根据需要进行配置,对此,本发明实施例不作具体限制。
目标对象的确定方式具体可以是:根据各服务单元分配对象中配置信息包括的服务单元筛选标签,确定与待调度的目标服务单元匹配的服务单元筛选标签,并获取匹配的服务单元筛选标签所属的服务单元分配对象,作为目标对象。
示例性的,待调度的目标服务单元的信息中包括服务单元标签。目标对象可以是指与待调度的目标服务单元的服务单元标签相同的服务单元分配对象。其中,目标对象可以有多个,即与目标服务单元匹配的目标对象可以有多个。每个目标对象分别作为调度条件,目标对象的数量和调度条件的数量相同。
通过创建服务单元分配对象,并提取服务单元分配对象的配置信息作为调度条件,实现将调度条件的信息添加到服务器集群中,可以实现指定部分节点上已运行的指定服务单元的数量上限,在不同结构的节点上实现不同的上限控制,灵活调整服务单元的分布控制,兼顾节点集群的高可用分布与资源利用率。
S202,获取预选节点集合,所述预选节点集合与所述待调度的目标服务单元匹配,所述预选节点集合包括至少一个预选节点。
S203,在各所述预选节点中,获取各所述目标指定节点。
目标指定节点的数量为至少两个时,目标指定节点为同一类型的预选节点。
目标指定节点属于预选节点,目标指定节点的数量小于等于预选节点的数量。从预选节点中确定目标指定节点,用于缩小节点范围,同时,调度节点在指定的节点中限制目标指定服务单元的运行数量上限。
可以根据预选节点中的节点标识信息筛选目标指定节点。在一个具体的例子中,调度条件中包括节点标签信息A和节点标签信息B的节点,相应的,目标指定节点包括预选节点A和预选节点B。
S204,在各所述目标指定节点当前已运行的服务单元中,获取至少一个目标服务单元。
S205,计算各所述目标服务单元在同一目标指定节点中的服务单元数量值。
仅对目标指定节点进行目标服务单元的运行数量控制,缩小服务单元的数量控制的节点范围,提高服务单元的数量控制的灵活性。
S206,获取所述调度条件中所述目标指定节点中所述目标服务单元的最大运行数量。
S207,将服务单元数量值大于等于所述最大运行数量的目标指定节点,作为目标节点。
S208,从所述预选节点集合中筛除各所述目标节点,得到候选节点集合。
S209,在所述候选节点集合中,确定所述调度节点。
S210,将所述目标服务单元调度至所述调度节点中运行,并将所述调度节点对所述目标服务单元的运行结果作为所述服务请求的服务结果。
本发明实施例通过调度条件分别对节点和服务单元均进行限制,在目标服务单元的运行数量进行控制的基础上,同时对节点范围进行控制,可以独立针对每个服务单元以及每个节点进行分布控制,实现对指定节点上运行的指定服务单元的数量进行控制,细化拓扑分布控制的服务细粒度,提高节点资源配置的精准度,进一步优化配置节点资源,减少资源浪费,提高节点集群的高可用性,同时提高节点集群的资源利用率。
实施例三
图3a为本发明实施例三中的一种应用场景的示意图。具体的,本发明实施例中任意一项所述的节点的调度方法应用在Kubernetes系统,也即前述节点调度系统中。通常,Kubernetes系统包括管理者(Master)3010和节点(Node)3020,其中,Master3010包括:调度器模块(Scheduler)3001和应用服务模块(Apiserver)3002。其中,Scheduler3001用于管理节点资源的调度,按照预定的调度策略将Pod调度到相应的节点3020上。Apiserver3002作为资源操作的唯一入口,并提供认证、授权、访问控制、数据校验、集群状态变更、应用程序编程接口(Application Programming Interface,API)注册和发现等功能,还提供其他模块之间的数据传输。Kubernetes系统中的组件支持获取资源列表和监听(List/Watch)功能,具体是通过在启动时的List操作和持续的Watch操作保证实时监听Kubernetes对象的变化,当状态变化时驱动本身的逻辑,以实现Kubernetes对象状态驱动的功能。
具体的,Apiserver3002用于创建Pod对象,Scheduler3001用于监听创建的Pod对象的状态,以及用于判断新建的Pod对象的实例调度到哪一个节点3020中。
多个节点3020形成节点集群。
实际上,本发明实施例中任意一项所述的节点的预选处理方法应用在调度器模块中。服务单元实际为Kubernetes系统中的Pod。
具体的如图3b-图3c所示,具体方法如下所示:
S301,根据服务单元分配信息,生成服务单元分配对象,所述服务单元分配对象通过所述Kubernetes系统基于自定义资源定义机制定义。
在Kubernetes系统中,Apiserver用于创建对象。通常创建的对象包括Pod。
实际上,目前Kubernetes系统可以针对满足一类标签属性的服务进行亲和性或反亲和性的调度,该调度策略上只能亲和或者反亲和二选一,并不能满足所有场景。同时在配置了亲和性的情况下,极端情况会出现一类服务的实例聚集分布在少数的节点上,导致失去多实例高可用的意义;在配置了反亲和的情况下,极端情况会出现每个节点只能调度一个实例,导致资源上的浪费。Kubernetes系统可以支持为每个节点设置该节点的Pod上限,但是不支持单独设置特定标签的Pod,只能从全局的角度限制,无法细到某类服务的粒度,无法满足实际生产的需求。而且,Kubernetes系统的默认调度策略上可以选择支持聚集优先或者是分摊优先,但是聚集优先的情况下无法另外限制聚集的密度,会导致部分服务集中部署在少数节点上,从而失去多实例的高可用效果,这类全局的策略都无法满足对服务细粒度的拓扑分布控制需求。
本实施例中,采用Kubernetes系统原生的自定义资源定义(Custom ResourceDefinition,CRD)机制创建自定义对象。当Kubernetes系统内置的原生对象无法描述用户期望的编排模型时,可以通过CRD自定义想要的编排,从而获得和原生对象同等的Kubernetes特性,以及能够被Kubernetes接管的对象。
具体的,服务单元分配对象为通过CRD机制定义的对象,且在生成待调度的目标服务单元之前,通过Apiserver创建,用于描述期望生效的节点范围(通过节点筛选标签确定)和Pod实例范围(通过服务单元筛选标签确定),以及对应的单节点分布上限(通过最大运行数量确定)。
在一个具体的例子中,如图3a所示的应用场景中,Apiserver3002创建一个对象,如PadLabelSpreading对象,该对象通过CRD机制定义,同时Scheduler3001可以支持监听创建的Pod对象的状态。通过Scheduler3001的内部缓存机制,增加了对该对象的List/Watch,Scheduler3001可以通过Watch该对象,可以实时感知到需要关注的节点筛选标签PodLabel,以判断待调度的目标服务单元是否需要执行本发明实施例提供的节点的预选处理方法。
S302,接收请求方发送的服务请求,并根据所述服务请求生成待调度的目标服务单元,所述服务单元包括Kubernetes系统中的容器组。
本实施方式中未详细描述的内容,可以参考上述任意实施方式中的描述。
Kubernetes系统是一种容器集群管理系统,用于自动部署、扩展和管理容器化应用程序。Pod是Kubernetes创建或部署的最小或最简单的基本单位,一个Pod代表集群上正在运行的一个进程。一个Pod封装至少一个应用容器(也可以有多个容器)、存储资源、一个独立的网络网际协议(Internet Protocol,IP)和管理控制容器运行方式的策略选项等。容器是程序代码和和其依赖关系在应用层的一个抽象。多个容器各自作为孤立的进程在同一台机器上的用户空间中运行,并共享操作系统内核。
服务单元可以是指包括Kubernetes系统的Pod,包括Kubernetes系统中的容器组,容器组包括至少一个容器,同一个Pod中的全部容器共享同一个命名空间(Namespace),可以根据Namespace区分不同Pod包括的容器。
S303,获取预选节点集合,所述预选节点集合与所述待调度的目标服务单元匹配,所述预选节点集合包括至少一个预选节点。
可选的,获取预选节点集合,包括:采用标准节点预选算法,获取与所述待调度的目标服务单元匹配的预选节点集合。
如果监听到与各PadLabelSpreading对象中关联的Pod Label中任意一个匹配的待调度的目标服务单元,则确定监听到当前存在待调度的目标服务单元,从而执行本发明实施例提供的节点的调度方法。
S304,在多个服务单元分配对象中,获取与所述待调度的目标服务单元匹配的目标对象。
S305,获取所述目标对象对应的配置信息,并提取所述配置信息中包括的节点筛选标签、服务单元筛选标签以及最大运行数量作为调度条件,所述节点筛选标签用于确定指定节点,所述服务单元筛选标签用于确定指定服务单元。
具体的,各节点的节点信息包括节点标签。各服务单元的服务单元信息包括服务单元标签。
在一个具体的例子中,待调度的目标服务单元包括:
第一待调度的目标服务单元的标签信息如下所示:
第二待调度的目标服务单元的标签信息如下所示:
其中,两个待调度的目标服务单元的服务单元标签均为app-a。
与上述各待调度的目标服务单元匹配的目标对象,如下所示:
节点信息如图3d所示:第一节点3021、第二节点3022和第三节点3023。
S306,在各所述预选节点中,获取各所述目标指定节点,所述调度条件包括:至少一个目标指定节点中所述目标服务单元的最大运行数量。
如前例中,创建的PadLabelSpreading对象通过nodeSelectorTerms声明进行服务单元数量控制的node节点范围,具体是,节点筛选标签为gz-az-1,相应的,目标指定节点包括第一节点和第二节点。其中,第三节点的节点标签为sz-az-2,与节点筛选标签不同。
S307,在各所述目标指定节点当前已运行的服务单元中,获取至少一个目标服务单元。
S308,计算各所述目标服务单元在同一目标指定节点中的服务单元数量值。
在目标指定节点中,创建的PadLabelSpreading对象通过podSpreadPolicy声明符合一定Label条件的Pod。如前例,PadLabelSpreading对象声明服务单元筛选标签为app-a。其中,第一节点当前已运行服务单元标签为app-a的Pod包括service-1和service-2。第二节点当前已运行服务单元标签为app-a的Pod包括service-1。
S309,获取所述调度条件中所述目标指定节点中所述目标服务单元的最大运行数量。
创建的PadLabelSpreading对象通过podSpreadPolicy声明符合一定Label条件的Pod在单个节点上最大Pod个数。如前例,PadLabelSpreading对象声明服务单元筛选标签为app-a的最大Pod数量为2。第一节点当前已运行的服务单元标签为app-a的Pod的数量为2,第二节点当前已运行的服务单元标签为app-a的Pod的数量为1。从而,第一节点为目标节点。
S310,将服务单元数量值大于等于所述最大运行数量的目标指定节点,作为目标节点。
S311,从所述预选节点集合中筛除各所述目标节点,得到候选节点集合。
通过在筛除目标节点后的候选节点集合中确定调度节点,保证目标节点无法调度新的指定类型的服务单元。
实际上,本发明实施例提供的节点的预选处理方法,相当于在Scheduler的调度过程的节点预选过程中的新增的预选算法。在经过节点预选得到预选节点集合之后,根据待调度的目标服务单元声明的Namespace,获取该Namespace下存在的PodLabelSpreading对象,遍历节点集群,判断每个节点是否符合nodeSelectorTerms的范围,以确定目标指定节点。对符合条件的目标指定节点,基于各目标指定节点中已调度的Pod,计算出符合podSpreadPolicy中声明Label条件的Pod的个数,与maxPods对比,如果大于等于maxPods,则将该目标指定节点作为目标节点,从预选节点集合中剔除,剩余的预选节点形成候选节点集合。
S312,在所述候选节点集合中,确定所述调度节点。
可选的,在所述候选节点集合中,确定所述调度节点,包括:采用标准节点优选算法,对所述候选节点集合中各所述候选节点进行优先级排序;根据排序结果从所述候选节点集合中确定调度节点。
S313,将所述目标服务单元调度至所述调度节点中运行,并将所述调度节点对所述目标服务单元的运行结果作为所述服务请求的服务结果。
本发明实施例通过CRD机制定义自定义对象,并通过自定义对象的配置信息配置节点筛选标签、服务单元筛选标签以及最大运行数量,作为调度条件,实现基于标签动态的控制同类型的服务单元在同一个指定节点上的运行数量,可以将多个节点分区控制,提高服务单元的分布控制的灵活性,同时,可以实现单个节点上亲和性与反亲和性的协同策略,有助于实际生产环境中追求高可用分布与资源利用率的最佳平衡,此外,通过Kubernetes系统原生的机制定义的对象实现,减少实现成本。
实施例四
图4为本发明实施例四中的一种节点的预选处理方法的流程图的示意图,本实施例可适用于节点调度系统的调度器在对服务单元进行节点调度的过程的情况,该方法可以由本发明实施例提供的节点的预选处理装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成计算机设备中,具体可以是服务器集群的节点中。如图1所示,本实施例的方法具体包括:
S410,获取预选节点集合,所述预选节点集合与所述待调度的目标服务单元匹配,所述预选节点集合包括至少一个预选节点。
可选的,获取预选节点集合,包括:在监听到当前存在所述待调度的目标服务单元时,采用标准节点预选算法,获取与所述待调度的目标服务单元匹配的预选节点集合。
S420,根据各所述预选节点的目标服务单元数量,在各所述预选节点中确定至少一个目标节点,所述目标节点不满足调度条件,所述调度条件包括:指定服务单元,或指定节点中指定服务单元的最大运行数量。
可选的,所述调度条件中包括:所述目标服务单元的最大运行数量;所述根据各所述预选节点的当前已运行的目标服务单元数量,在各所述预选节点中确定至少一个目标节点,包括:在各预选节点当前已运行的服务单元中,获取至少一个目标服务单元;计算各所述目标服务单元在同一预选节点中的服务单元数量值;获取所述调度条件中所述目标服务单元的最大运行数量;将服务单元数量值大于等于所述最大运行数量的预选节点,作为目标节点。
可选的,所述调度条件包括:至少一个目标指定节点中所述目标服务单元的最大运行数量;所述根据各所述预选节点的当前已运行的目标服务单元数量,在各所述预选节点中确定至少一个目标节点,包括:在各所述预选节点中,获取各所述目标指定节点;在各所述目标指定节点当前已运行的服务单元中,获取至少一个目标服务单元;计算各所述目标服务单元在同一目标指定节点中的服务单元数量值;获取所述调度条件中所述目标指定节点中所述目标服务单元的最大运行数量;将服务单元数量值大于等于所述最大运行数量的目标指定节点,作为目标节点。
S430,从所述预选节点集合中筛除各所述目标节点,得到候选节点集合,所述候选节点集合中的调度节点用于运行所述待调度的目标服务单元。
可选的,在在各所述预选节点中确定至少一个目标节点之前,还包括:在预先创建的多个服务单元分配对象中,获取与所述待调度的目标服务单元匹配的目标对象;获取所述目标对象对应的配置信息,并提取所述配置信息中包括的节点筛选标签、服务单元筛选标签以及最大运行数量作为所述调度条件,所述节点筛选标签用于确定指定节点,所述服务单元筛选标签用于确定指定服务单元。
可选的,在得到候选节点集合之后,包括:采用标准节点优选算法,对所述候选节点集合中各所述候选节点进行优先级排序;根据排序结果从所述候选节点集合中确定调度节点。
可选的,所述目标服务单元包括Kubernetes系统中的容器组,所述服务单元分配对象通过所述Kubernetes系统基于自定义资源定义机制定义。
本发明实施例通过在待调度的服务单元的节点调度过程中,在预选得到的预选节点集合中各节点的当前已运行的服务单元中,确定与待调度的服务单元匹配的目标指定服务单元,并统计数量,根据统计数量从预选节点集合中不满足调度条件的至少一个目标节点,将目标节点从预选节点集合中剔除,得到调度节点集合,从而从调度节点集合中确定运行待调度的服务单元的目标调度节点,实现对同类服务单元在同一个节点上的分布数量限制,解决了现有技术中调度策略导致同一类型的服务高度聚集分布,或者过于分散分布的问题,可以限制同一个节点中同一类型的服务的数量过多以及过少,合理配置节点资源,兼顾服务分散分布和节点资源的高利用率,减少资源浪费。
实施例五
图5为本发明实施例五中的一种节点的调度装置的示意图。实施例五是实现本发明上述实施例提供的节点的调度方法的相应装置,该装置可采用软件和/或硬件的方式实现,并一般可集成计算机设备中。
相应的,本实施例的装置可以包括:
待调度服务单元生成模块510,用于接收请求方发送的服务请求,并根据所述服务请求生成待调度的目标服务单元;
调度节点确定模块520,用于根据预设调度条件,在节点集群中确定调度节点,所述调度条件与所述待调度的目标服务单元匹配,所述调度条件包括:指定服务单元,或指定节点中指定服务单元的最大运行数量;
服务结果确定模块530,用于将所述目标服务单元调度至所述调度节点中运行,并将所述调度节点对所述目标服务单元的运行结果作为所述服务请求的服务结果。
本发明实施例通过获取服务请求,并生成待调度的目标服务单元,根据目标服务单元匹配的调度条件,根据每个节点中指定服务单元的运行数量,在节点集群中筛选出调度节点,并将目标服务单元调度到调度节点中运行,将运行结果作为服务请求的服务结果,实现对同类服务单元在同一个节点上的分布数量限制,解决了现有技术中调度策略导致同一类型的服务高度聚集分布,或者过于分散分布的问题,可以限制同一个节点中同一类型的服务的数量过多以及过少,合理配置节点资源,兼顾服务分散分布和节点资源的高利用率,减少资源浪费。
需要说明的是,Kubernetes系统中的Apiserver可以包括待调度服务单元生成模块510和服务单元分配对象生成模块;Kubernetes系统中的Scheduler可以包括调度节点确定模块520和服务结果确定模块530。
进一步的,所述调度节点确定模块520,包括:节点调度单元,用于获取预选节点集合,所述预选节点集合与所述待调度的目标服务单元匹配,所述预选节点集合包括至少一个预选节点;根据各所述预选节点的当前已运行的目标服务单元数量,在各所述预选节点中确定至少一个目标节点,所述目标节点不满足调度条件;从所述预选节点集合中筛除各所述目标节点,得到候选节点集合;在所述候选节点集合中,确定所述调度节点。
进一步的,所述调度条件中包括:所述目标服务单元的最大运行数量;所述节点调度单元,包括:服务单元数量控制子单元,用于在各预选节点当前已运行的服务单元中,获取至少一个目标服务单元;计算各所述目标服务单元在同一预选节点中的服务单元数量值;获取所述调度条件中所述目标服务单元的最大运行数量;将服务单元数量值大于等于所述最大运行数量的预选节点,作为目标节点。
进一步的,所述调度条件包括:至少一个目标指定节点中所述目标服务单元的最大运行数量;所述节点调度单元,包括:节点控制子单元,用于在各所述预选节点中,获取各所述目标指定节点;在各所述目标指定节点当前已运行的服务单元中,获取至少一个目标服务单元;计算各所述目标服务单元在同一目标指定节点中的服务单元数量值;获取所述调度条件中所述目标指定节点中所述目标服务单元的最大运行数量;将服务单元数量值大于等于所述最大运行数量的目标指定节点,作为目标节点。
进一步的,所述节点的预选处理装置,还包括:服务单元分配对象生成模块,用于在根据所述服务请求生成待调度的目标服务单元之前,根据服务单元分配信息,生成服务单元分配对象;调度条件获取模块,用于在在各所述预选节点中确定至少一个目标节点之前,在多个服务单元分配对象中,获取与所述待调度的目标服务单元匹配的目标对象;获取所述目标对象对应的配置信息,并提取所述配置信息中包括的节点筛选标签、服务单元筛选标签以及最大运行数量作为所述调度条件,所述节点筛选标签用于确定指定节点,所述服务单元筛选标签用于确定指定服务单元。
进一步的,所述节点调度单元,包括:节点预选子单元,用于采用标准节点预选算法,获取与所述待调度的目标服务单元匹配的预选节点集合。
进一步的,所述节点调度单元,包括:节点优选子单元,用于采用标准节点优选算法,对所述候选节点集合中各所述候选节点进行优先级排序;根据排序结果从所述候选节点集合中确定调度节点。
进一步的,所述目标服务单元包括Kubernetes系统中的容器组,所述服务单元分配对象通过所述Kubernetes系统基于自定义资源定义机制定义。
上述装置可执行本发明实施例所提供的节点的调度方法,具备执行方法相应的功能模块和有益效果。
实施例六
图6为本发明实施例六中的一种节点的预选处理装置的示意图。实施例六是实现本发明上述实施例提供的节点的预选处理方法的相应装置,该装置可采用软件和/或硬件的方式实现,并一般可集成计算机设备中,具体是作为Kubernetes系统中的Scheduler。
相应的,本实施例的装置可以包括:
预选节点获取模块610,用于获取预选节点集合,所述预选节点集合与所述待调度的目标服务单元匹配,所述预选节点集合包括至少一个预选节点;
目标节点获取模块620,用于根据各所述预选节点的当前已运行的目标服务单元数量,在各所述预选节点中确定至少一个目标节点,所述目标节点不满足调度条件,所述调度条件包括:指定服务单元,或指定节点中指定服务单元的最大运行数量;
预选节点筛选模块630,用于从所述预选节点集合中筛除各所述目标节点,得到候选节点集合,所述候选节点集合中的调度节点用于运行所述待调度的目标服务单元。
本发明实施例通过在待调度的服务单元的节点调度过程中,在预选得到的预选节点集合中各节点的当前已运行的服务单元中,确定与待调度的服务单元匹配的目标指定服务单元,并统计数量,根据统计数量从预选节点集合中不满足服务单元分配条件的至少一个目标节点,将目标节点从预选节点集合中剔除,得到候选节点集合,从而从候选节点集合中确定运行待调度的服务单元的目标候选节点,实现对同类服务单元在同一个节点上的分布数量限制,解决了现有技术中调度策略导致同一类型的服务高度聚集分布,或者过于分散分布的问题,可以限制同一个节点中同一类型的服务的数量过多以及过少,合理配置节点资源,兼顾服务分散分布和节点资源的高利用率,减少资源浪费。
上述装置可执行本发明实施例所提供的节点的预选处理方法,具备执行方法相应的功能模块和有益效果。
实施例七
图7为本发明实施例七提供的一种计算机设备的结构示意图。图5示出了适于用来实现本发明实施方式的示例性计算机设备12的框图。图7显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。计算机设备12可以是挂接在总线上的设备。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(PerIPheral Component Interconnect,PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM),数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。系统存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如系统存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(Input/Output,I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local AreaNetwork,LAN),广域网(Wide Area Network,WAN)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图7中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列(Redundant Arrays of Inexpensive Disks,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明任意实施例所提供的节点的调度方法或节点的预选处理方法。
实施例八
本发明实施例八提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有发明实施例提供的方法:
也即,该程序被处理器执行时实现:接收请求方发送的服务请求,并根据所述服务请求生成待调度的目标服务单元;根据预设调度条件,在节点集群中确定调度节点,所述调度条件与所述待调度的目标服务单元匹配,所述调度条件包括:指定服务单元,或指定节点中指定服务单元的最大运行数量;将所述目标服务单元调度至所述调度节点中运行,并将所述调度节点对所述目标服务单元的运行结果作为所述服务请求的服务结果。
或者,该程序被处理器执行时实现:获取预选节点集合,所述预选节点集合与所述待调度的目标服务单元匹配,所述预选节点集合包括至少一个预选节点;根据各所述预选节点的当前已运行的目标服务单元数量,在各所述预选节点中确定至少一个目标节点,所述目标节点不满足调度条件,所述调度条件包括:指定服务单元,或指定节点中指定服务单元的最大运行数量;从所述预选节点集合中筛除各所述目标节点,得到候选节点集合,所述候选节点集合中的调度节点用于运行所述待调度的目标服务单元。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、RAM、只读存储器(Read OnlyMemory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、无线电频率(RadioFrequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括LAN或WAN——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (13)
1.一种节点的调度方法,其特征在于,包括:
接收请求方发送的服务请求,并根据所述服务请求生成待调度的目标服务单元;
根据预设调度条件,在节点集群中确定调度节点,所述调度条件与所述待调度的目标服务单元匹配,所述调度条件包括:指定服务单元,或指定节点中指定服务单元的最大运行数量;
将所述目标服务单元调度至所述调度节点中运行,并将所述调度节点对所述目标服务单元的运行结果作为所述服务请求的服务结果。
2.根据权利要求1所述的方法,其特征在于,所述根据预设调度条件,在节点集群中确定调度节点,包括:
获取预选节点集合,所述预选节点集合与所述待调度的目标服务单元匹配,所述预选节点集合包括至少一个预选节点;
根据各所述预选节点的当前已运行的目标服务单元数量,在各所述预选节点中确定至少一个目标节点,所述目标节点不满足调度条件;
从所述预选节点集合中筛除各所述目标节点,得到候选节点集合;
在所述候选节点集合中,确定所述调度节点。
3.根据权利要求2所述的方法,其特征在于,所述调度条件中包括:所述目标服务单元的最大运行数量;
所述根据各所述预选节点的当前已运行的目标服务单元数量,在各所述预选节点中确定至少一个目标节点,包括:
在各预选节点当前已运行的服务单元中,获取至少一个目标服务单元;
计算各所述目标服务单元在同一预选节点中的服务单元数量值;
获取所述调度条件中所述目标服务单元的最大运行数量;
将服务单元数量值大于等于所述最大运行数量的预选节点,作为目标节点。
4.根据权利要求2所述的方法,其特征在于,所述调度条件包括:至少一个目标指定节点中所述目标服务单元的最大运行数量;
所述根据各所述预选节点的当前已运行的目标服务单元数量,在各所述预选节点中确定至少一个目标节点,包括:
在各所述预选节点中,获取各所述目标指定节点;
在各所述目标指定节点当前已运行的服务单元中,获取至少一个目标服务单元;
计算各所述目标服务单元在同一目标指定节点中的服务单元数量值;
获取所述调度条件中所述目标指定节点中所述目标服务单元的最大运行数量;
将服务单元数量值大于等于所述最大运行数量的目标指定节点,作为目标节点。
5.根据权利要求2所述的方法,其特征在于,在根据所述服务请求生成待调度的目标服务单元之前,还包括:
根据服务单元分配信息,生成服务单元分配对象;
在在各所述预选节点中确定至少一个目标节点之前,还包括:
在多个服务单元分配对象中,获取与所述待调度的目标服务单元匹配的目标对象;
获取所述目标对象对应的配置信息,并提取所述配置信息中包括的节点筛选标签、服务单元筛选标签以及最大运行数量作为所述调度条件,所述节点筛选标签用于确定指定节点,所述服务单元筛选标签用于确定指定服务单元。
6.根据权利要求2-5任一项所述的方法,其特征在于,获取预选节点集合,包括:
采用标准节点预选算法,获取与所述待调度的目标服务单元匹配的预选节点集合。
7.根据权利要求2-5任一项所述的方法,其特征在于,在所述候选节点集合中,确定所述调度节点,包括:
采用标准节点优选算法,对所述候选节点集合中各所述候选节点进行优先级排序;
根据排序结果从所述候选节点集合中确定调度节点。
8.根据权利要求5所述的方法,其特征在于,所述目标服务单元包括Kubernetes系统中的容器组,所述服务单元分配对象通过所述Kubernetes系统基于自定义资源定义机制定义。
9.一种节点的预选处理方法,其特征在于,包括:
获取预选节点集合,所述预选节点集合与待调度的目标服务单元匹配,所述预选节点集合包括至少一个预选节点;
根据各所述预选节点的当前已运行的目标服务单元数量,在各所述预选节点中确定至少一个目标节点,所述目标节点不满足调度条件,所述调度条件包括:指定服务单元,或指定节点中指定服务单元的最大运行数量;
从所述预选节点集合中筛除各所述目标节点,得到候选节点集合,所述候选节点集合中的调度节点用于运行所述待调度的目标服务单元。
10.一种节点的调度装置,其特征在于,包括:
待调度服务单元生成模块,用于接收请求方发送的服务请求,并根据所述服务请求生成待调度的目标服务单元;
调度节点确定模块,用于根据预设调度条件,在节点集群中确定调度节点,所述调度条件与所述待调度的目标服务单元匹配,所述调度条件包括:指定服务单元,或指定节点中指定服务单元的最大运行数量;
服务结果确定模块,用于将所述目标服务单元调度至所述调度节点中运行,并将所述调度节点对所述目标服务单元的运行结果作为所述服务请求的服务结果。
11.一种节点的预选处理装置,其特征在于,包括:
预选节点获取模块,用于获取预选节点集合,所述预选节点集合与待调度的目标服务单元匹配,所述预选节点集合包括至少一个预选节点;
目标节点获取模块,用于根据各所述预选节点的当前已运行的目标服务单元数量,在各所述预选节点中确定至少一个目标节点,所述目标节点不满足调度条件,所述调度条件包括:指定服务单元,或指定节点中指定服务单元的最大运行数量;
预选节点筛选模块,用于从所述预选节点集合中筛除各所述目标节点,得到候选节点集合,所述候选节点集合中的调度节点用于运行所述待调度的目标服务单元。
12.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-8中任一所述的节点的调度方法,或者实现如权利要求9所述的节点的预选处理方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一所述的节点的调度方法,或者实现如权利要求9所述的节点的预选处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010345353.0A CN111464659A (zh) | 2020-04-27 | 2020-04-27 | 节点的调度、节点的预选处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010345353.0A CN111464659A (zh) | 2020-04-27 | 2020-04-27 | 节点的调度、节点的预选处理方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111464659A true CN111464659A (zh) | 2020-07-28 |
Family
ID=71680366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010345353.0A Pending CN111464659A (zh) | 2020-04-27 | 2020-04-27 | 节点的调度、节点的预选处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111464659A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148461A (zh) * | 2020-10-14 | 2020-12-29 | 腾讯科技(深圳)有限公司 | 应用的调度方法、装置 |
CN112199200A (zh) * | 2020-12-04 | 2021-01-08 | 腾讯科技(深圳)有限公司 | 资源调度方法、装置、计算机设备和存储介质 |
CN112540829A (zh) * | 2020-12-16 | 2021-03-23 | 恒生电子股份有限公司 | 容器组驱逐方法、装置、节点设备及存储介质 |
CN112799775A (zh) * | 2020-12-29 | 2021-05-14 | 杭州涂鸦信息技术有限公司 | 一种节点属性传递方法以及相关装置 |
CN112925640A (zh) * | 2021-02-10 | 2021-06-08 | 杭州幻方人工智能基础研究有限公司 | 一种集群训练节点分配方法、电子设备 |
CN113382077A (zh) * | 2021-06-18 | 2021-09-10 | 广西电网有限责任公司 | 微服务调度方法、装置、计算机设备和存储介质 |
CN113596509A (zh) * | 2021-08-26 | 2021-11-02 | 上海哔哩哔哩科技有限公司 | 节点调度方法及装置 |
CN113660313A (zh) * | 2021-07-26 | 2021-11-16 | 杭州安恒信息技术股份有限公司 | 基于云防护的节点调度方法、装置、电子装置和存储介质 |
CN115080179A (zh) * | 2021-03-15 | 2022-09-20 | 中国电信股份有限公司 | 容器调度方法、容器调度装置及存储介质 |
CN116362548A (zh) * | 2023-04-19 | 2023-06-30 | 江苏久和机械有限公司 | 一种标准节可用性管理方法、系统、装置和存储介质 |
CN117041356A (zh) * | 2023-10-09 | 2023-11-10 | 成都新希望金融信息有限公司 | 指标分发方法、指标计算方法、装置、电子设备及系统 |
CN118261274A (zh) * | 2024-04-09 | 2024-06-28 | 北京白龙马云行科技有限公司 | 一种高负荷均衡约车方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006050349A2 (en) * | 2004-10-29 | 2006-05-11 | Hewlett-Packard Development Company, L.P. | Methods and apparatus for running applications on computer grids |
CN108769254A (zh) * | 2018-06-25 | 2018-11-06 | 星环信息科技(上海)有限公司 | 基于抢占式调度的资源共享使用方法、系统及设备 |
CN109117264A (zh) * | 2017-06-20 | 2019-01-01 | 三星电子株式会社 | 容器工作负载调度器以及调度容器工作负载的方法 |
CN109992354A (zh) * | 2019-04-09 | 2019-07-09 | 腾讯科技(深圳)有限公司 | 容器处理方法、装置、主体服务器、系统和存储介质 |
-
2020
- 2020-04-27 CN CN202010345353.0A patent/CN111464659A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006050349A2 (en) * | 2004-10-29 | 2006-05-11 | Hewlett-Packard Development Company, L.P. | Methods and apparatus for running applications on computer grids |
CN109117264A (zh) * | 2017-06-20 | 2019-01-01 | 三星电子株式会社 | 容器工作负载调度器以及调度容器工作负载的方法 |
CN108769254A (zh) * | 2018-06-25 | 2018-11-06 | 星环信息科技(上海)有限公司 | 基于抢占式调度的资源共享使用方法、系统及设备 |
CN109992354A (zh) * | 2019-04-09 | 2019-07-09 | 腾讯科技(深圳)有限公司 | 容器处理方法、装置、主体服务器、系统和存储介质 |
Non-Patent Citations (1)
Title |
---|
张哲宇等: "XMPP协议的数据分发网络的负载均衡算法", 《北京邮电大学学报》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148461A (zh) * | 2020-10-14 | 2020-12-29 | 腾讯科技(深圳)有限公司 | 应用的调度方法、装置 |
CN112199200A (zh) * | 2020-12-04 | 2021-01-08 | 腾讯科技(深圳)有限公司 | 资源调度方法、装置、计算机设备和存储介质 |
CN112199200B (zh) * | 2020-12-04 | 2021-03-02 | 腾讯科技(深圳)有限公司 | 资源调度方法、装置、计算机设备和存储介质 |
CN112540829A (zh) * | 2020-12-16 | 2021-03-23 | 恒生电子股份有限公司 | 容器组驱逐方法、装置、节点设备及存储介质 |
CN112799775A (zh) * | 2020-12-29 | 2021-05-14 | 杭州涂鸦信息技术有限公司 | 一种节点属性传递方法以及相关装置 |
CN112799775B (zh) * | 2020-12-29 | 2024-05-14 | 杭州涂鸦信息技术有限公司 | 一种节点属性传递方法以及相关装置 |
CN112925640A (zh) * | 2021-02-10 | 2021-06-08 | 杭州幻方人工智能基础研究有限公司 | 一种集群训练节点分配方法、电子设备 |
CN115080179A (zh) * | 2021-03-15 | 2022-09-20 | 中国电信股份有限公司 | 容器调度方法、容器调度装置及存储介质 |
CN113382077B (zh) * | 2021-06-18 | 2023-05-23 | 广西电网有限责任公司 | 微服务调度方法、装置、计算机设备和存储介质 |
CN113382077A (zh) * | 2021-06-18 | 2021-09-10 | 广西电网有限责任公司 | 微服务调度方法、装置、计算机设备和存储介质 |
CN113660313A (zh) * | 2021-07-26 | 2021-11-16 | 杭州安恒信息技术股份有限公司 | 基于云防护的节点调度方法、装置、电子装置和存储介质 |
CN113660313B (zh) * | 2021-07-26 | 2022-12-20 | 杭州安恒信息技术股份有限公司 | 基于云防护的节点调度方法、装置、电子装置和存储介质 |
CN113596509A (zh) * | 2021-08-26 | 2021-11-02 | 上海哔哩哔哩科技有限公司 | 节点调度方法及装置 |
CN116362548A (zh) * | 2023-04-19 | 2023-06-30 | 江苏久和机械有限公司 | 一种标准节可用性管理方法、系统、装置和存储介质 |
CN116362548B (zh) * | 2023-04-19 | 2023-10-31 | 江苏久和机械有限公司 | 一种标准节可用性管理方法、系统、装置和存储介质 |
CN117041356A (zh) * | 2023-10-09 | 2023-11-10 | 成都新希望金融信息有限公司 | 指标分发方法、指标计算方法、装置、电子设备及系统 |
CN117041356B (zh) * | 2023-10-09 | 2023-12-05 | 成都新希望金融信息有限公司 | 指标分发方法、指标计算方法、装置、电子设备及系统 |
CN118261274A (zh) * | 2024-04-09 | 2024-06-28 | 北京白龙马云行科技有限公司 | 一种高负荷均衡约车方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111464659A (zh) | 节点的调度、节点的预选处理方法、装置、设备及介质 | |
US10664308B2 (en) | Job distribution within a grid environment using mega-host groupings of execution hosts | |
CN110727512B (zh) | 集群资源调度方法、装置、设备及储存介质 | |
US9141432B2 (en) | Dynamic pending job queue length for job distribution within a grid environment | |
CN102835068B (zh) | 用于管理系统资源的重新分配的方法和装置 | |
US20200174844A1 (en) | System and method for resource partitioning in distributed computing | |
US11467874B2 (en) | System and method for resource management | |
CN114356587B (zh) | 算力任务跨区域调度方法、系统及设备 | |
CN114844791B (zh) | 基于大数据的云服务自动管理分配方法、系统及存储介质 | |
CN113886069A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
US8819239B2 (en) | Distributed resource management systems and methods for resource management thereof | |
CN108694083B (zh) | 一种服务器的数据处理方法和装置 | |
CN110912967A (zh) | 一种服务节点调度方法、装置、设备及存储介质 | |
Garg et al. | Optimal virtual machine scheduling in virtualized cloud environment using VIKOR method | |
CN117608760A (zh) | 应用于Kubernetes的云上应用混合部署方法 | |
CN117421108A (zh) | 一种异构算力平台设计方法、平台及资源调度方法 | |
CN117596247A (zh) | 基于异构边缘计算系统的资源监控和性能评估的方法 | |
CN117234733A (zh) | 一种分布式系统任务分配方法、系统、存储介质及设备 | |
CN117149382A (zh) | 虚拟机调度方法、装置、计算机设备和存储介质 | |
CN109298949B (zh) | 一种分布式文件系统的资源调度系统 | |
US20230089925A1 (en) | Assigning jobs to heterogeneous graphics processing units | |
CN114090201A (zh) | 资源调度方法、装置、设备及存储介质 | |
CN111459651A (zh) | 一种负载均衡方法、装置、存储介质及调度系统 | |
CN117992239B (zh) | 资源管理分配方法、智能计算云操作系统以及计算平台 | |
CN118331709A (zh) | 资源动态分配方法、装置、电子设备及存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200728 |
|
RJ01 | Rejection of invention patent application after publication |