CN117370009A - 用于多集群系统的调度方法、装置、存储介质与电子设备 - Google Patents
用于多集群系统的调度方法、装置、存储介质与电子设备 Download PDFInfo
- Publication number
- CN117370009A CN117370009A CN202311317027.9A CN202311317027A CN117370009A CN 117370009 A CN117370009 A CN 117370009A CN 202311317027 A CN202311317027 A CN 202311317027A CN 117370009 A CN117370009 A CN 117370009A
- Authority
- CN
- China
- Prior art keywords
- cluster
- scheduled
- container group
- nodes
- target
- 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 39
- 230000002776 aggregation Effects 0.000 claims description 6
- 238000004220 aggregation Methods 0.000 claims description 6
- 238000013139 quantization Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 239000000306 component Substances 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 238000012544 monitoring process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006116 polymerization reaction Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012795 verification Methods 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/5083—Techniques for rebalancing the load in a distributed system
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/5077—Logical partitioning of resources; Management or configuration of virtualized resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种用于多集群系统的调度方法、装置、存储介质与电子设备,涉及云计算技术领域。多集群系统包括多个集群,每个集群包括一个或多个节点;所述方法包括:获取容器组请求信息,容器组请求信息用于请求在多集群系统中部署一个或多个待调度容器组,容器组请求信息包括待调度容器组的资源需求信息;根据待调度容器组与集群的关联信息以及集群的资源状态信息,在集群中确定目标集群;根据目标集群的节点的资源状态信息以及待调度容器组的资源需求信息,构建目标集群对应的图模型;在目标集群对应的图模型中确定目标路径,根据目标路径将待调度容器组调度至目标路径指向的节点。本公开提高了多集群系统的调度效率。
Description
技术领域
本公开涉及云计算技术领域,尤其涉及一种用于多集群系统的调度方法、用于多集群系统的调度装置、计算机可读存储介质与电子设备。
背景技术
随着企业、院校等机构的业务量、业务多样性的增加,单集群扩容的方式已不能满足机构需求。例如,企业中可能为不同业务采用不同厂商的服务,相应地部署多个不同集群。因此,多集群系统的部署架构已成为一种常态。然而,目前的多集群系统普遍存在调度效率低的问题。
发明内容
本公开提供一种用于多集群系统的调度方法、用于多集群系统的调度装置、计算机可读存储介质与电子设备,以至少在一定程度上解决多集群系统调度效率低的问题。
根据本公开的第一方面,提供一种用于多集群系统的调度方法,所述多集群系统包括多个集群,每个集群包括一个或多个节点;所述方法包括:获取容器组请求信息,所述容器组请求信息用于请求在所述多集群系统中部署一个或多个待调度容器组,所述容器组请求信息包括所述待调度容器组的资源需求信息;根据所述待调度容器组与所述集群的关联信息以及所述集群的资源状态信息,在所述集群中确定目标集群;根据所述目标集群的节点的资源状态信息以及所述待调度容器组的资源需求信息,构建所述目标集群对应的图模型;在所述目标集群对应的图模型中确定目标路径,根据所述目标路径将所述待调度容器组调度至所述目标路径指向的节点。
根据本公开的第二方面,提供一种用于多集群系统的调度装置,所述多集群系统包括多个集群,每个集群包括一个或多个节点;所述装置包括:信息获取模块,被配置为获取容器组请求信息,所述容器组请求信息用于请求在所述多集群系统中部署一个或多个待调度容器组,所述容器组请求信息包括所述待调度容器组的资源需求信息;第一调度模块,被配置为根据所述待调度容器组对所述集群的亲和度以及所述集群的资源状态信息,在所述集群中确定目标集群;第二调度模块,被配置为根据所述目标集群的节点的资源状态信息以及所述待调度容器组的资源需求信息,构建所述目标集群对应的图模型;在所述目标集群对应的图模型中确定目标路径,根据所述目标路径将所述待调度容器组调度至所述目标路径指向的节点。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的用于多集群系统的调度方法及其可能的实现方式。
根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令,来执行上述第一方面的用于多集群系统的调度方法及其可能的实现方式。
本公开的技术方案具有以下有益效果:
一方面,基于容器组到集群、容器组到节点两级调度策略,实现了针对多集群系统的有效调度方案,有利于提高调度效率,实现准确、合理的调度,并实现对多集群间资源的均衡利用。另一方面,本方案可以适用于大规模任务的场景,满足低时延和多维资源负载均衡的要求。
附图说明
图1示出本示例性实施方式中一种多集群系统的架构图。
图2A示出本示例性实施方式中IDC集群的资源架构图。
图2B示出本示例性实施方式中ECS集群的资源架构图。
图3A示出了本示例性实施方式中IDC集群的单集群架构图。
图3B示出了本示例性实施方式中ECS集群的单集群架构图。
图4示出本示例性实施方式中一种用于多集群系统的调度方法的流程图。
图5示出本示例性实施方式中一种确定目标集群的流程图。
图6示出本示例性实施方式中一种生成图模型的流程图。
图7示出本示例性实施方式中图模型的示意图。
图8示出本示例性实施方式中调度方法的架构图。
图9示出本示例性实施方式中一种用于多集群系统的调度装置的结构示意图。
图10示出本示例性实施方式中一种电子设备的结构示意图。
具体实施方式
下文将结合附图更全面地描述本公开的示例性实施方式。
附图为本公开的示意性图解,并非一定是按比例绘制。附图中所示的一些方框图可能是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在硬件模块或集成电路中实现这些功能实体,或在网络、处理器或微控制器中实现这些功能实体。实施方式能够以多种形式实施,不应被理解为限于在此阐述的范例。本公开所描述的特征、结构或特性可以以任何合适的方式结合在一个或多个实施方式中。在下文的描述中,提供许多具体细节从而给出对本公开实施方式的充分说明。然而,本领域技术人员应意识到,可以在实现本公开的技术方案时省略其中的一个或多个特定细节,或者可以采用其它的方法、组元、装置、步骤等替代一个或多个特定细节。
多集群系统的部署架构已成为大型机构中的一种常态。多集群系统中涉及跨集群的资源调度,普遍存在调度效率低、调度不合理等问题,难以实现对多集群间资源的均衡利用。
鉴于上述问题,本公开的示例性实施方式提供一种用于多集群系统的调度方法。多集群系统包括多个集群,每个集群包括一个或多个节点。
图1示出了多集群系统的架构图。多集群系统可以是混合云系统,包括至少一个公有云集群和至少一个私有云集群。如图所示,混合云系统可以由公有云集群组和私有云集群组形成。公有云集群组可以包括一个或多个公有云集群(cluster),如可以是ECS(Elastic Compute Service,弹性计算服务)集群等。私有云集群组可以包括一个或多个私有云集群,如可以是IDC(Internet Data Center,互联网数据中心)集群等。每个集群可以包括一个或节点(Node),节点上部署有物理资源,可以执行相应的任务,如可以将容器组调度到节点上以进行部署。示例性的,每个集群可以包括一个主节点(Master Node)和多个工作节点(Worker Node)。
本示例性实施方式中,多集群系统中可以部署容器服务,下文将以Kubernetes(一种容器管理系统)服务为例进行说明。
此外,多集群系统中还可以部署监控功能,以监控并采集各集群和/或各节点的资源状态信息以及其他相关的运行信息、业务信息等。在一种实施方式中,可以采用Prometheus(一种数据监控系统)部署联邦集群环境,实现统一的监控与数据采集功能。具体地,可以先进行Kubernetes Federation v2(用于管理跨多个Kubernetes集群的解决方法)的安装部署,包括Controller Plan和kubefedctl(一种二进制程序)。然后设置主集群,并将从集群加入到主集群。在主集群中安装Prometheus server(Prometheus服务器),将从集群中的Prometheus联邦节点添加到Prometheus server中,这样可以采集所有集群的metric数据(资源状态数据可以以metric数据的方式采集)。
图2A示出了IDC集群的资源架构,图2B示出了ECS集群的资源架构。两种集群的资源均可以包括CPU(中央处理单元)、GPU(图形处理单元)、存储器这3种,存储器可以进一步包括易失性存储和非易失性存储两种资源,易失性存储可以是内存,如RAM(随机存取存储器),非易失性存储可以是硬盘等,如ROM(只读存储器)、SSD(固态硬盘)。可以通过PCIe(一种高速串行总线)Switch芯片进行CPU、GPU扩展,以及与交换机连接。
图3A示出了IDC集群的单集群架构,图3B示出了ECS集群的单集群架构。IDC集群的单集群架构部署流程包括:在集群的节点上安装kubeadm(用于初始化集群的指令)、kubelet(用于在集群的每个节点上启动Pod和容器等)和kubectl(用于与集群通信的命令行工具)软件,用于管理Kubernetes集群;使用kubeadm初始化集群的主节点,创建控制平面组件并启动apiserver(Kubernetes的核心组件之一)、controller manager(一系列控制器,用于监控整个集群的状态)、scheduler(Kubernetes的调度器)等进程;使用kubeadm命令将工作节点加入到集群中,并启动kubelet和kube-proxy(Kubernetes的网络代理)服务;在集群的所有节点上安装node_exporter(节点监控服务器),以采集节点的资源状态信息以及其他运行信息;在主节点上配置Prometheus联邦节点,可监控集群中的工作节点。
一般的,IDC集群的性能较高,能够承载长周期的业务,Prometheus联邦节点可以采用Pull(拉取)的方式获取每个节点中node_exporter采集到的资源状态信息,并存储在时序数据库(TSDB)中。相比之下,ECS集群的性能比IDC集群差,通常承载相对较短生命周期的业务,可以通过Pushgateway(Prometheus的一个组件,用于被动推送)收集短生命周期的资源状态信息以及其他业务相关信息,再由Prometheus联邦节点进行采集。采集的信息可以包括但不限于:系统启动时间、当前系统时间、系统CPU使用情况、磁盘IO、文件系统使用量、系统负载、系统内存使用量、网络带宽等等。
在一种实施方式中,用于多集群系统的调度方法可以参考图4所示,包括以下步骤S410至S440:
步骤S410,获取容器组请求信息,容器组请求信息用于请求在多集群系统中部署一个或多个待调度容器组,容器组请求信息包括待调度容器组的资源需求信息;
步骤S420,根据待调度容器组与集群的关联信息以及集群的资源状态信息,在集群中确定目标集群;
步骤S430,根据目标集群的节点的资源状态信息以及待调度容器组的资源需求信息,构建目标集群对应的图模型;
步骤S440,在目标集群对应的图模型中确定目标路径,根据目标路径将待调度容器组调度至目标路径指向的节点。
在图4所示的方法中,一方面,基于容器组到集群、容器组到节点两级调度策略,实现了针对多集群系统的有效调度方案,有利于提高调度效率,实现准确、合理的调度,并实现对多集群间资源的均衡利用。另一方面,本方案可以适用于大规模任务的场景,满足低时延和多维资源负载均衡的要求。
下面对图4中的每个步骤做具体说明。
参考图4,在步骤S410中,获取容器组请求信息,容器组请求信息用于请求在多集群系统中部署一个或多个待调度容器组,容器组请求信息包括待调度容器组的资源需求信息。
其中,容器组是指一组容器,可以是Kubernetes中的Pod。多集群系统中的用户可以发起容器组请求,可以通过相应的API(Application Programming Interface,应用程序接口)获取容器组请求信息。在一种实施方式中,在用户发起容器组请求后,可以对用户身份和/或容器组请求信息进行校验,如校验用户身份是否合法,是否具有权限,校验容器组请求信息是否合法、准确等,校验通过后可以由多集群系统的中心节点获取容器组请求信息。
容器组请求信息用于请求在多集群系统中部署一个或多个待调度容器组。待调度容器组可以是当前请求创建的容器组,也可以是已创建、未部署的容器组。待调度容器组需要被调度至多集群系统中的特定节点上进行部署,以基于节点的资源运行。
容器组请求信息包括待调度容器组的资源需求信息。举例来说,各集群的节点上具有CPU、GPU、内存、硬盘这4种资源,待调度容器组的资源需求信息可以包括对每种资源的需求量。
在一种实施方式中,用户发起容器组请求时,未指定待调度容器组的资源需求信息,多集群系统的中心节点(或其他具有相关分析功能的节点)可以根据容器组请求信息确定待调度容器组的资源需求信息,如对容器组请求信息中的业务需求等加以分析,以估计出待调度容器组的资源需求量。可以将待调度容器组的资源需求信息添加到容器组请求信息,这样在将容器组请求信息转发到其他节点后,便于其他节点的调度处理。
在一种实施方式中,调度方法还可以包括以下步骤:
获取各集群中的节点的资源状态信息,根据节点的资源状态信息确定集群的资源状态信息。
其中,资源状态信息是指当前的资源负载情况,包括但不限于资源总量、资源利用率、资源使用量、资源空闲量等。在多集群系统中,可以由中心节点等直接采集各节点的资源状态信息,并通过对每个集群的节点的资源状态信息进行汇总统计,计算出每个集群的资源状态信息。由此,可以对集群、节点两个层级的资源状态信息进行全面监控。
继续参考图4,在步骤S420中,根据待调度容器组与集群的关联信息以及集群的资源状态信息,在集群中确定目标集群。
其中,目标集群是适合部署待调度容器组的集群。待调度容器组与集群的关联信息可以包括但不限于:业务层面上待调度容器组与集群的关联或匹配程度,如某个集群负责的业务包括待调度容器组的业务类型,则待调度容器组与该集群具有业务关联,否则不具有业务关联;待调度容器组对集群的亲和度(Affinity,或反亲合度Anti-Affinity);待调度容器组指派到集群的代价信息。通过结合关联信息和集群的资源状态信息两方面因素,可以确定哪个或哪些集群适合部署待调度容器组,将其确定为目标集群。例如,目标集群需要满足:与待调度容器组具有特定关联,并且资源的空闲情况达到要求。
在一种实施方式中,待调度容器组与集群的关联信息包括:待调度容器组对集群的亲和度,待调度容器组指派到集群的代价信息。参考图5所示,上述根据待调度容器组与集群的关联信息以及集群的资源状态信息,在集群中确定目标集群,可以包括以下步骤S510至S530:
步骤S510,通过对比待调度容器组对集群的亲和度与预设的亲和度阈值,在多集群系统中确定用于部署待调度容器组的目标集群类型。
其中,集群类型是指集群的共性。如多集群系统化可以包括公有云集群类型和私有云集群类型,上述ECS集群属于公有云集群类型,系统中还可以设置其他的公有云集群,也属于公有云集群类型;上述IDC集群属于私有云集群类型,系统中还可以设置其他的私有云集群,也属于私有云集群类型。目标集群类型是指适合部署待调度容器组的一类或多类集群的类型。
基于公有云集群类型和私有云集群类型这两种集群类型,上述通过对比待调度容器组对集群的亲和度与预设的亲和度阈值,在多集群系统中确定用于部署待调度容器组的目标集群类型,可以包括以下步骤:
若待调度容器组对集群的亲和度小于亲和度阈值,则将公有云集群类型作为目标集群类型;
若待调度容器组对集群的亲和度大于亲和度阈值,则将私有云集群类型作为目标集群类型。
示例性的,可以定义如下参数或变量:
d∈{1,2,…,D}:表示资源维度,如D=4,表示CPU、GPU、内存、硬盘共4种维度的资源;
q=1,2,…,Q,表示集群;
e:表示Pod(待调度容器组)的编号,Pod={1,2,…,e,…,E};
表示Pod e对d维资源的请求量,可以是待调度容器组的资源需求信息中的内容;
表示Pod e对资源请求的指示值;
表示集群q中节点n的d维资源的初始负载;
表示集群q的d维资源的初始负载;
集群q中节点n的d维资源的总量;
集群q的d维资源的总量;
集群q中节点n分配的Pods已使用的d维的资源量;
表示集群q分配的Pods已使用的d维的资源量;
表示集群q中节点n的d维资源空闲量;
集群q的d维资源空闲量;
集群q的资源指示值;
Pod e对集群q的亲和度,/>
Θ:亲和度阈值,可以根据经验或多集群系统内的历史业务与Pod相关数据确定。
上述集群与节点的资源初始负载、总量、已使用资源量等信息可以包含在资源状态信息中。
通过上述公式,可以由待调度容器组的资源需求信息和集群的资源状态信息计算出亲合度,与预设的亲合度阈值对比,若小于亲合度阈值,可以将公有云集群类型作为目标集群类型,后续将待调度容器组指派到公有云集群,若大于亲合度阈值,可以将私有云集群类型作为目标集群类型,后续将待调度容器组指派到私有云集群。这样可以先在集群类型层级(可以理解为比集群高一层级)上实现待调度容器组的有效分流与合理调度。
步骤S520,在目标集群类型下,根据集群的资源状态信息以及待调度容器组指派到集群的代价信息,确定集群的调度量化值。
其中,待调度容器组指派到集群的代价信息是指将待调度容器组指派到某个集群时,需要付出的成本(cost),可以根据经验、业务特点、集群属性等确定。集群的资源状态信息能够反映集群有多少资源可以使用,在部署待调度容器组的情况下对业务影响的大小等。可以对代价信息进行量化,如量化为代价值。
在一种实施方式中,可以根据集群的资源状态信息计算其平均资源利用率,平均资源利用率越低,表示集群越有能力部署待调度容器组。
示例性的,计算集群q(可表示任一集群)的平均资源利用率根据集群q的平均资源利用率以及待调度容器组指派到集群q的代价信息,计算集群q的调度量化值score(RPq):
score(RPq)=costq×RPq;
其中,costq表示待调度容器组指派到集群q的代价值。
步骤S530,以待调度容器组与目标集群类型下的集群之间的调度方案为第一决策变量,通过计算调度方案对应的调度量化值的最小累加值,优化第一决策变量,基于优化后的第一决策变量确定目标集群。
其中,可以设置第一决策变量xeq,表示将Pod e指派到集群q,若将Pod e指派到集群q,则xeq=1,否则为0。可见,第一决策变量能够表示待调度容器组与目标集群类型下的集群之间的调度方案。待调度容器组Pod e={1,2,…,e,…,E}与集群q={1,2,…,q…,Q}之间的调度问题可以描述如下:
也就是说,将调度方案中使用到的集群对应的调度量化值累加,优化第一决策变量以得到最小累加值,此时的第一决策变量(即调度方案)为最优方案,并由此确定目标集群,如可以是xeq=1的各集群。
基于图5所示的方法,能够非常高效、准确地确定用于调度待调度容器组的合适集群。
继续参考图4,在步骤S430中,根据目标集群的节点的资源状态信息以及待调度容器组的资源需求信息,构建目标集群对应的图模型。
其中,图(Graph)模型可以是带有边权重的有向图模型。针对每个目标集群,可以分别构建对应的图模型,这样可以在每个目标集群内确定合适的路径与节点。
在一种实施方式中,参考图6所示,上述根据目标集群的节点的资源状态信息以及待调度容器组的资源需求信息,构建目标集群对应的图模型,可以包括以下步骤S610和S620:
步骤S610,生成图节点,图节点包括待调度容器组对应的第一图节点,目标集群的节点对应的第二图节点,以及待调度容器与节点的中间组件对应的第三图节点。
图节点(Vertex)是指图模型中的节点,与集群中的节点(Node)是不同的概念。第一图节点是一类节点,表示待调度容器组对应的图节点,即每个待调度容器组可以对应一个第一图节点。第二图节点也是一类节点,表示目标集群的节点对应的图节点,即目标集群中每个节点可以对应一个第二图节点。待调度容器与节点的中间组件可以包括但不限于区域、网关、路由等,可以将其抽象聚合为第三图节点。
在一种实施方式中,上述图节点还可以包括表示将待调度容器组挂起的第四图节点,这样在调度容器组时,一些情况下可以进行挂起。
示例性的,第一图节点可表示为Pod e={1,2,…,e,…,E},第二图节点可表示为节点n={1,2,…,Mq},第三图节点可以表示为中间组件v={1,2,…,v,…,V},第四图节点可以表示为h。
在一种实施方式中,上述图节点还可以包括出口节点,可以将所有的第二图节点连接并指向出口节点,以表示路径的结束,形成完整的资源拓扑有向图结构。
步骤S620,根据目标集群的节点的资源状态信息以及待调度容器组的资源需求信息,确定图节点之间的边权重;基于图节点和边权重形成图模型。
其中,图节点之间的边权重,可以包括任意两个不同类型的图节点之间的边权重,如第一图节点和第二图节点之间的边权重,第一图节点和第三图节点之间的边权重,第一图节点和第四图节点之间的边权重,第二图节点和第三图节点之间的边权重,等等。
在一种实施方式中,上述根据目标集群的节点的资源状态信息以及待调度容器组的资源需求信息,确定图节点之间的边权重,可以包括以下步骤:
根据目标集群的节点的资源状态信息确定目标集群的节点的资源平衡率;
根据目标集群的节点的资源平衡率以及目标集群的节点与中间组件的关联信息,确定中间组件的聚合度;
根据目标集群的节点的资源平衡率、待调度容器组的资源需求信息、中间组件的聚合度,确定图节点之间的边权重。
示例性的,可以设置如下几种决策变量:
第二决策变量,表示将Pod e指派到集群q中的节点n;
yev:第三决策变量,表示将Pod e指派到第三图节点v;
yeh:第四决策变量,表示将Pod e挂起;
第五决策变量,表示将第三图节点v指派到集群q中的节点n;
可以计算集群q中的节点n的资源平衡率(RBqn)如下:
计算中间组件v的聚合度(Rv)如下:
计算任意两个图节点i和j之间的边权重(costij)如下:
并通过计算如下参数的最小值,优化图节点i和j之间是否有边的参数(yij),如下所示:
其中,图节点i和j之间有边时,yij=1,否则为0。
由此,能够形成各种图节点,确定图节点之间是否有边以及边权重,基于图节点和边权重形成完整的图模型。生成的图模型可以参考图7所示,包括第一图节点P1~P6、第二图节点n1~n5、第三图节点v1和v2、第四图节点和出口节点,应当理解,各种节点的数量仅为示意。第一图节点和第二图节点之间具有边,第一图节点和第三图节点之间具有边,第一图节点和第四图节点之间具有边,第二图节点和第三图节点之间具有边,第二图节点、第四图节点和出口节点之间具有边,由此形成第一图节点-第三图节点-第二图节点-出口节点,第一图节点-第二图节点-出口节点,第一图节点-第四图节点-出口节点等多种路径。
基于图6所示的方案,能够得到准确表征集群信息以及与待调度容器组关联的图模型,有利于后续准确确定目标路径以及用于部署待调度容器组的节点。
继续参考图4,在步骤S440中,在目标集群对应的图模型中确定目标路径,根据目标路径将待调度容器组调度至目标路径指向的节点。
在图模型中,可以将待调度容器组作为路径起点,将集群的节点或出口节点作为路径终点。确定从待调度容器组到节点的目标路径,通常可以是最优或局部最优路径,进而将目标路径指向的节点作为用于调度待调度容器组的节点。完成调度过程。
本示例性实施方式中调度方法的架构可以参考图8所示。多集群系统包括多个集群,如ECS集群1、ECS集群2、IDC集群1、IDC集群2。每个集群中可以设置调度工具(如Scheduler)、监控工具(如Monitor),可以包括主节点和工作节点。当用户发起容器组(Pod)请求时,获取容器组请求信息,先对其校验。若校验通过,进行第1级资源调度,根据资源状态信息等得到Pod-集群调度结果,即确定目标集群。然后进行第2级资源调度,根据图模型等得到Pod-节点调度,即确定集群中可用于部署Pod的节点,由此完成调度处理过程。
在一种实施方式中,上述在目标集群对应的图模型中确定目标路径,可以包括以下步骤:
在图模型中确定用于调度待调度容器组的候选路径;
根据边权重确定候选路径的权重,将权重最大的候选路径作为目标路径。
其中,从第一图节点到第二图节点(或进一步连接到出口节点)的完整路径均可以作为候选路径,根据边权重确定候选路径的权重,如可以将候选路径中的每一条边的权重累加,得到候选路径的权重。将权重最大的候选路径作为目标路径,当然,也可以选取多个目标路径,通常为权重从大到小排列的前几个候选路径。由此可以高效、快速地确定目标路径以及最终分配的节点。
在一种实施方式中,在将待调度容器组分配至节点后,可以重新采集资源状态信息(如metric数据等),上报更新到中心节点(如主集群中的某个节点),使得中心节点实时监控各集群、各节点的状态。
本公开的示例性实施方式还提供一种用于多集群系统的调度装置。多集群系统包括多个集群,每个集群包括一个或多个节点。参考图9所示,调度装置900可以包括以下程序模块:
信息获取模块910,被配置为获取容器组请求信息,容器组请求信息用于请求在多集群系统中部署一个或多个待调度容器组,容器组请求信息包括待调度容器组的资源需求信息;
第一调度模块920,被配置为根据待调度容器组对集群的亲和度以及集群的资源状态信息,在集群中确定目标集群;
第二调度模块930,被配置为根据目标集群的节点的资源状态信息以及待调度容器组的资源需求信息,构建目标集群对应的图模型;在目标集群对应的图模型中确定目标路径,根据目标路径将待调度容器组调度至目标路径指向的节点。
在一种实施方式中,待调度容器组与集群的关联信息包括:待调度容器组对集群的亲和度,待调度容器组指派到集群的代价信息;上述根据待调度容器组与集群的关联信息以及集群的资源状态信息,在集群中确定目标集群,包括:
通过对比待调度容器组对集群的亲和度与预设的亲和度阈值,在多集群系统中确定用于部署待调度容器组的目标集群类型;
在目标集群类型下,根据集群的资源状态信息以及待调度容器组指派到集群的代价信息,确定集群的调度量化值;
以待调度容器组与目标集群类型下的集群之间的调度方案为第一决策变量,通过计算调度方案对应的调度量化值的最小累加值,优化第一决策变量,基于优化后的第一决策变量确定目标集群。
在一种实施方式中,多集群系统化包括公有云集群类型和私有云集群类型;上述通过对比待调度容器组对集群的亲和度与预设的亲和度阈值,在多集群系统中确定用于部署待调度容器组的目标集群类型,包括:
若待调度容器组对集群的亲和度小于亲和度阈值,则将公有云集群类型作为目标集群类型;
若待调度容器组对集群的亲和度大于亲和度阈值,则将私有云集群类型作为目标集群类型。
在一种实施方式中,上述根据目标集群的节点的资源状态信息以及待调度容器组的资源需求信息,构建目标集群对应的图模型,包括:
生成图节点,图节点包括待调度容器组对应的第一图节点,目标集群的节点对应的第二图节点,以及待调度容器与节点的中间组件对应的第三图节点;
根据目标集群的节点的资源状态信息以及待调度容器组的资源需求信息,确定图节点之间的边权重;基于图节点和边权重形成图模型。
在一种实施方式中,上述根据目标集群的节点的资源状态信息以及待调度容器组的资源需求信息,确定图节点之间的边权重,包括:
根据目标集群的节点的资源状态信息确定目标集群的节点的资源平衡率;
根据目标集群的节点的资源平衡率以及目标集群的节点与中间组件的关联信息,确定中间组件的聚合度;
根据目标集群的节点的资源平衡率、待调度容器组的资源需求信息、中间组件的聚合度,确定图节点之间的边权重。
在一种实施方式中,上述在目标集群对应的图模型中确定目标路径,包括:
在图模型中确定用于调度待调度容器组的候选路径;
根据边权重确定候选路径的权重,将权重最大的候选路径作为目标路径。
在一种实施方式中,信息获取模块910,还被配置为:
获取各集群中的节点的资源状态信息,根据节点的资源状态信息确定集群的资源状态信息。
上述装置中各部分的具体细节在方法部分实施方式中已经详细说明,未披露的细节内容可以参见方法部分的实施方式内容,因而不再赘述。
本公开的示例性实施方式还提供了一种计算机可读存储介质,可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。在一种可选的实施方式中,该程序产品可以实现为便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本公开的示例性实施方式还提供一种电子设备。该电子设备可以包括处理器与存储器。存储器存储有处理器的可执行指令,如可以是程序代码。处理器通过执行该可执行指令来执行本示例性实施方式中的方法。
下面参考图10,以通用计算设备的形式对电子设备进行示例性说明。应当理解,图10显示的电子设备1000仅仅是一个示例,不应对本公开实施方式的功能和使用范围带来限制。
如图10所示,电子设备1000可以包括:处理器1010、存储器1020、总线1030、I/O(输入/输出)接口1040、网络适配器1050。
存储器1020可以包括易失性存储器,例如RAM 1021、缓存单元1022,还可以包括非易失性存储器,例如ROM 1023。存储器1020还可以包括一个或多个程序单元1024,这样的程序单元1024包括但不限于:操作系统、一个或者多个应用程序、其它程序单元以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。例如,程序单元1024可以包括上述装置中的各模块。
总线1030用于实现电子设备1000的不同组件之间的连接,可以包括数据总线、地址总线和控制总线。
电子设备1000可以通过I/O接口1040与一个或多个外部设备1100(例如键盘、鼠标、外置控制器等)进行通信。
电子设备1000可以通过网络适配器1050与一个或者多个网络通信,例如网络适配器1050可以提供如3G/4G/5G等移动通信解决方案,或者提供如无线局域网、蓝牙、近场通信等无线通信解决方案。网络适配器1050可以通过总线1030与电子设备1000的其它单元通信。
尽管图10中未示出,还可以在电子设备1000中设置其它硬件和/或软件单元,包括但不限于:显示器、微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干单元或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施方式,上文描述的两个或更多单元或者单元的特征和功能可以在一个单元或者单元中具体化。反之,上文描述的一个单元或者单元的特征和功能可以进一步划分为由多个单元或者单元来具体化。
本领域技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“单元”或“系统”。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限定。
Claims (10)
1.一种用于多集群系统的调度方法,其特征在于,所述多集群系统包括多个集群,每个集群包括一个或多个节点;所述方法包括:
获取容器组请求信息,所述容器组请求信息用于请求在所述多集群系统中部署一个或多个待调度容器组,所述容器组请求信息包括所述待调度容器组的资源需求信息;
根据所述待调度容器组与所述集群的关联信息以及所述集群的资源状态信息,在所述集群中确定目标集群;
根据所述目标集群的节点的资源状态信息以及所述待调度容器组的资源需求信息,构建所述目标集群对应的图模型;
在所述目标集群对应的图模型中确定目标路径,根据所述目标路径将所述待调度容器组调度至所述目标路径指向的节点。
2.根据权利要求1所述的方法,其特征在于,所述待调度容器组与所述集群的关联信息包括:所述待调度容器组对所述集群的亲和度,所述待调度容器组指派到所述集群的代价信息;所述根据所述待调度容器组与所述集群的关联信息以及所述集群的资源状态信息,在所述集群中确定目标集群,包括:
通过对比所述待调度容器组对所述集群的亲和度与预设的亲和度阈值,在所述多集群系统中确定用于部署所述待调度容器组的目标集群类型;
在所述目标集群类型下,根据所述集群的资源状态信息以及所述待调度容器组指派到所述集群的代价信息,确定所述集群的调度量化值;
以所述待调度容器组与所述目标集群类型下的集群之间的调度方案为第一决策变量,通过计算所述调度方案对应的调度量化值的最小累加值,优化所述第一决策变量,基于优化后的第一决策变量确定所述目标集群。
3.根据权利要求2所述的方法,其特征在于,所述多集群系统化包括公有云集群类型和私有云集群类型;所述通过对比所述待调度容器组对所述集群的亲和度与预设的亲和度阈值,在所述多集群系统中确定用于部署所述待调度容器组的目标集群类型,包括:
若所述待调度容器组对所述集群的亲和度小于所述亲和度阈值,则将公有云集群类型作为目标集群类型;
若所述待调度容器组对所述集群的亲和度大于所述亲和度阈值,则将私有云集群类型作为目标集群类型。
4.根据权利要求1所述的方法,其特征在于,所述根据所述目标集群的节点的资源状态信息以及所述待调度容器组的资源需求信息,构建所述目标集群对应的图模型,包括:
生成图节点,所述图节点包括所述待调度容器组对应的第一图节点,所述目标集群的节点对应的第二图节点,以及所述待调度容器与所述节点的中间组件对应的第三图节点;
根据所述目标集群的节点的资源状态信息以及所述待调度容器组的资源需求信息,确定所述图节点之间的边权重;基于所述图节点和所述边权重形成所述图模型。
5.根据权利要求4所述的方法,其特征在于,所述根据所述目标集群的节点的资源状态信息以及所述待调度容器组的资源需求信息,确定所述图节点之间的边权重,包括:
根据所述目标集群的节点的资源状态信息确定所述目标集群的节点的资源平衡率;
根据所述目标集群的节点的资源平衡率以及所述目标集群的节点与所述中间组件的关联信息,确定所述中间组件的聚合度;
根据所述目标集群的节点的资源平衡率、所述待调度容器组的资源需求信息、所述中间组件的聚合度,确定所述图节点之间的边权重。
6.根据权利要求4所述的方法,其特征在于,所述在所述目标集群对应的图模型中确定目标路径,包括:
在所述图模型中确定用于调度所述待调度容器组的候选路径;
根据所述边权重确定所述候选路径的权重,将权重最大的候选路径作为所述目标路径。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取各所述集群中的节点的资源状态信息,根据所述节点的资源状态信息确定所述集群的资源状态信息。
8.一种用于多集群系统的调度装置,其特征在于,所述多集群系统包括多个集群,每个集群包括一个或多个节点;所述装置包括:
信息获取模块,被配置为获取容器组请求信息,所述容器组请求信息用于请求在所述多集群系统中部署一个或多个待调度容器组,所述容器组请求信息包括所述待调度容器组的资源需求信息;
第一调度模块,被配置为根据所述待调度容器组对所述集群的亲和度以及所述集群的资源状态信息,在所述集群中确定目标集群;
第二调度模块,被配置为根据所述目标集群的节点的资源状态信息以及所述待调度容器组的资源需求信息,构建所述目标集群对应的图模型;在所述目标集群对应的图模型中确定目标路径,根据所述目标路径将所述待调度容器组调度至所述目标路径指向的节点。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311317027.9A CN117370009A (zh) | 2023-10-11 | 2023-10-11 | 用于多集群系统的调度方法、装置、存储介质与电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311317027.9A CN117370009A (zh) | 2023-10-11 | 2023-10-11 | 用于多集群系统的调度方法、装置、存储介质与电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117370009A true CN117370009A (zh) | 2024-01-09 |
Family
ID=89392245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311317027.9A Pending CN117370009A (zh) | 2023-10-11 | 2023-10-11 | 用于多集群系统的调度方法、装置、存储介质与电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117370009A (zh) |
-
2023
- 2023-10-11 CN CN202311317027.9A patent/CN117370009A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10789102B2 (en) | Resource provisioning in computing systems | |
US11204811B2 (en) | Methods and systems for estimating time remaining and right sizing usable capacities of resources of a distributed computing system | |
US10810052B2 (en) | Methods and systems to proactively manage usage of computational resources of a distributed computing system | |
US9396008B2 (en) | System and method for continuous optimization of computing systems with automated assignment of virtual machines and physical machines to hosts | |
US7761557B2 (en) | Facilitating overall grid environment management by monitoring and distributing grid activity | |
US9582328B1 (en) | Allocation of resources in computing environments | |
KR101432838B1 (ko) | 작업 부하 특징화에 기초한 호스트에의 가상 머신 배치를 위한 방법 | |
KR101984714B1 (ko) | 가상화 자원 모니터링 시스템 | |
CN102667724A (zh) | 利用加速器的、目标指向的工作负载性能管理 | |
WO2017010922A1 (en) | Allocation of cloud computing resources | |
US20180165693A1 (en) | Methods and systems to determine correlated-extreme behavior consumers of data center resources | |
CN111338785A (zh) | 资源调度方法及装置、电子设备、存储介质 | |
Wang et al. | Research on virtual machine consolidation strategy based on combined prediction and energy-aware in cloud computing platform | |
US8819239B2 (en) | Distributed resource management systems and methods for resource management thereof | |
Mazidi et al. | Autonomic resource provisioning for multilayer cloud applications with K‐nearest neighbor resource scaling and priority‐based resource allocation | |
Saxena et al. | Workload forecasting and resource management models based on machine learning for cloud computing environments | |
Mendes et al. | Oversubscribing micro-clouds with energy-aware containers scheduling | |
CN114172819A (zh) | Nfv网元的需求资源预测方法、系统、电子设备和存储介质 | |
Kaur et al. | A review on energy aware VM placement and consolidation techniques | |
WO2021127640A1 (en) | Modeling cloud inefficiencies using domain-specific templates | |
Garg et al. | Optimal virtual machine scheduling in virtualized cloud environment using VIKOR method | |
Ravandi et al. | A black-box self-learning scheduler for cloud block storage systems | |
CN115168042A (zh) | 监控集群的管理方法及装置、计算机存储介质、电子设备 | |
CN117370009A (zh) | 用于多集群系统的调度方法、装置、存储介质与电子设备 | |
US20220291982A1 (en) | Methods and systems for intelligent sampling of normal and erroneous application traces |
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 |