CN113553140B - 资源调度方法、设备及系统 - Google Patents
资源调度方法、设备及系统 Download PDFInfo
- Publication number
- CN113553140B CN113553140B CN202111092377.0A CN202111092377A CN113553140B CN 113553140 B CN113553140 B CN 113553140B CN 202111092377 A CN202111092377 A CN 202111092377A CN 113553140 B CN113553140 B CN 113553140B
- Authority
- CN
- China
- Prior art keywords
- simulation
- application
- cluster
- virtual
- instance
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000004088 simulation Methods 0.000 claims abstract description 432
- 238000004590 computer program Methods 0.000 claims description 20
- 238000007726 management method Methods 0.000 description 46
- 230000008569 process Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 230000002085 persistent effect Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Images
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/4555—Para-virtualisation, i.e. guest operating system has to be modified
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例提供一种资源调度方法、设备及系统。在本申请实施例中,可获取应用需求信息和计算集群的属性信息;并根据计算集群的属性信息,构建虚拟集群;之后,可根据应用需求信息和虚拟集群的属性信息,在虚拟集群上进行应用部署模拟,得到模拟调度结果;之后,可根据模拟调度结果,在计算集群上部署应用实例。其中,通过在虚拟集群上进行应用部署模拟,不受物理资源的限制,得到的模拟调度结果为应用部署成功的模拟结果,实现了应用部署的资源预估。因此,根据模拟调度结果,在计算集群上部署应用实例,有助于提高应用部署成功率。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种资源调度方法、设备及系统。
背景技术
服务器虚拟化技术是云计算中基于基础设施层的关键技术。该技术通过对物理服务器进行虚拟化,实现在单台物理机上部署多台虚拟机(Virtual Machine ,VM)。为提高服务器的资源利用率,降低使用成本。计算集群是将多台虚拟机或物理机组成为一个有机的整体,进行统一管理,通过虚拟化技术将物理资源抽象为存储、计算、网络等各种资源组成的资源池,通过按需申请资源的方式提供给用户。
在实际应用中,为了实现对计算集群的资源管理,需要在中心云部署Kubernetes(简称K8s)控制面程序,并先将计算节点统一接管到K8s控制面中,再在接入K8s的资源上部署应用容器向用户提供云计算服务。
在 K8s 平台上,应用容器一般由多个容器组(如pod)组成。K8s 调度器以单个Pod 为单元进行资源调度,不支持处理批量应用容器,导致部分容器组因计算集群的物理资源不足无法部署,进而导致应用容器部署失败。
发明内容
本申请的多个方面提供一种资源调度方法、设备及系统,用以提高应用部署成功率。
本申请实施例提供一种资源调度方法,包括:
获取应用需求信息和计算集群的属性信息;
根据所述计算集群的属性信息,构建虚拟集群;
根据所述应用需求信息和所述虚拟集群的属性信息,在所述虚拟集群上进行应用部署模拟,得到模拟调度结果;
根据所述模拟调度结果,在所述计算集群上部署所述应用需求信息对应的应用实例。
本申请实施例还提供一种计算系统,包括:管控节点和计算集群;
所述管控节点,用于获取应用需求信息和计算集群的属性信息;根据所述计算集群的属性信息,构建虚拟集群;根据所述应用需求信息和所述虚拟集群的属性信息,在所述虚拟集群上进行应用部署模拟,得到模拟调度结果;以及,根据所述模拟调度结果,在所述计算集群上部署应用实例。
本申请实施例还提供一种计算机设备,包括:存储器和处理器;其中,所述存储器,用于存储计算机程序;
所述处理器耦合至所述存储器,用于执行所述计算机程序以用于执行上述资源调度方法中的步骤。
在本申请实施例中,可获取应用需求信息和计算集群的属性信息;并根据计算集群的属性信息,构建虚拟集群;之后,可根据应用需求信息和虚拟集群的属性信息,在虚拟集群上进行应用部署模拟,得到模拟调度结果;之后,可根据模拟调度结果,在计算集群上部署应用实例。其中,通过在虚拟集群上进行应用部署模拟,不受物理资源的限制,得到的模拟调度结果为应用部署成功的模拟结果,实现了应用部署的资源预估。因此,根据模拟调度结果,在计算集群上部署应用实例,有助于提高应用部署成功率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的计算系统的结构示意图;
图2为本申请实施例提供的虚拟调度器的构建过程示意图;
图3为本申请实施例提供的应用模拟部署的流程示意图;
图4为本申请实施例提供的在计算集群上应用实例部署的过程示意图;
图5为本申请实施例提供的资源调度方法的流程示意图;
图6为本申请实施例提供的计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
针对现有应用部署过程中,由于部分pod因计算集群的物理资源不足无法部署,导致应用部署失败的技术问题,在本申请一些实施例中,为了提高应用部署成功率,可获取应用需求信息和计算集群的属性信息;并根据计算集群的属性信息,构建虚拟集群;之后,可根据应用需求信息和虚拟集群的属性信息,在虚拟集群上进行应用部署模拟,得到模拟调度结果;之后,可根据模拟调度结果,在计算集群上部署应用实例。其中,通过在虚拟集群上进行应用部署模拟,不受物理资源的限制,得到的模拟调度结果为应用部署成功的模拟结果;因此,根据模拟调度结果,在计算集群上部署应用实例,有助于提高应用部署成功率。
以下结合附图,详细说明本申请各实施例提供的技术方案。
应注意到:相同的标号在下面的附图以及实施例中表示同一物体,因此,一旦某一物体在一个附图或实施例中被定义,则在随后的附图和实施例中不需要对其进行进一步讨论。
图1为本申请实施例提供的计算系统的结构示意图。如图1所示,计算系统S10包括:管控节点10和计算集群20。其中,计算集群20的数量可以为1个或多个,多个是指2个或2个以上。
本实施例的计算系统S10可为基于云计算技术的能力,构筑在基础设施之上的云计算平台,可为具备计算、网络、存储、安全等能力的云平台。本实施例提供的计算系统S10可实现为中心云,也可为边缘云。当然,计算系统S10可为公有云,也可为私有云。
在本实施例中,管控节点10是指具有资源管控能力的设备、装置、模块或软件功能模块对应的逻辑节点。在本实施例中,一个计算集群20可为一个机房、一个数据中心(DataCenter,DC)或者互联网数据中心(Internet Data Center,IDC)等。对于边缘云网络来说,一个计算集群20可包括一个或多个计算节点(Node)201。多个是指2个或2个以上。其中,计算节点201可为物理机,也可为运行在物理机上的虚拟机等。
在本实施例中,计算集群20可以对外提供各种资源。在本实施例中,计算集群20提供的资源可包括硬件资源和软件资源。其中,硬件资源可包括:处理器等计算资源,内存、磁盘等存储资源。其中,处理器可以为CPU、GPU、FPGA等等。软件资源可包括:带宽、网段、网卡配置等网络资源以及操作系统等。
本实施例提供的计算系统S10可向用户提供云计算服务。基于本实施例提供的计算系统S10,资源需求方可以在计算节点201上部署服务,即部署应用实例;也可删除或修改计算节点中已部署的应用实例。其中,应用实例可为容器或容器组实例(如pod等)。其中,pod也可称为容器组,为Kubernetes(简称K8s)系统创建和管理的最小可部署计算单元,由一个或多个容器(docker)组成。图1中仅以应用实例为pod进行图示,但不构成限定。
在本申请实施例中,不限定计算节点201上部署的服务类型。例如,计算节点上部署的服务可以为内容分发(Content Delivery Network,CDN)服务、计算服务、网络服务或存储服务等。在本申请实施例中,并不对计算服务进行限定,例如可以是但不限于:视频直播服务、视频点播服务、音视频处理服务以及视频AI服务等视频类服务;还可为在线教育服务、远程办公服务、线上购物服务、在线游戏服务、邮箱服务、VR服务、企业网站、应用类或其它内容下载服务等。
在实际应用中,为了实现对计算集群20的资源管理,可部署K8s控制面程序,作为K8s中的管控节点(master节点)。进一步,可将计算集群中的所有主机(包括:物理机和虚拟机)统一接管到K8s控制面中,这样,可以计算集群20中的主机作为K8s的计算节点(Node,也可称为K8s节点)进行资源调度。在本申请实施例中,管控节点10可部署于master节点,也可部署于计算节点。对于部署于计算节点的情况来说,该计算节点需要具有访问计算集群20的能力,部署管控节点10的计算节点包含运行客户端(client)包的进程等。
在 K8s 平台上,应用一般由多个容器(如pod)组成。K8s 调度器是以单个 pod 为单元进行资源调度的,不支持批量 pod处理,可能导致部分pod因计算集群的物理资源不足无法部署,进而导致应用部署失败。其中,物理资源不足可能为计算集群的CPU资源不足、内存不足、计算节点(Node)数量不满足应用反亲和性规则等等。例如一个应用包含4个模块:(1)A 模块要求在 4 个节点上部署 pod;(2)B 模块要求其 pod 与 A 应用的 pod 亲和在同一计算节点;(3)C 模块要求其 pod 亲和在某一指定节点;(4)D 模块要求其 Pod 不可与 C模块的 pod 部署在同一节点。
由于不同模块需要部署不同副本数的pod,不同 pod 对 CPU、内存等资源有不同的要求。在应用实际部署时,可能会出现A、B、C模块已成功部署,D模块因计算集群的资源不足而无法部署,导致整个应用部署失败。
在本申请实施例中,为了提高应用部署成功率,提出基于仿真调度的应用部署方案。下面对本申请实施例提供的应用部署方案进行示例性说明。
如图1所示,在本实施例中,管控节点10可获取应用需求信息。其中,应用需求信息可由资源需求方40提供。可选地,资源需求方40可设置应用需求信息及应用对应的镜像文件。应用需求信息可包括:工作负载(Workload)信息等。其中,Workload信息可包括:资源需求信息、实例副本数(如pod副本数)、调度亲和性规则 、容忍度规则、标签(Label)以及调度优先级等。
其中,资源需求信息是指应用实例对资源的需求量,可包括:应用对计算资源的需求量、对存储资源的需求量及对网络资源的需求量等中的至少一种。对网络资源的需求量可为对带宽资源的需求量等。
调度亲和性规则是指应用实例与其它应用实例之间的亲和度规则;对于具有亲和性的应用实例,可部署于同一计算节点;对于不具有亲和性的应用实例,不能部署于同一计算节点。标签用于表明应用实例与其它应用实例之间的亲和度。
容忍度为定义在应用实例(如pod)上的键值型的属性数据,用于配置其可容忍的计算节点的污点,而且调度器仅可将应用实例调度至该应用实例能够容忍节点污点的计算节点上。
在资源调度时,不仅需要获取应用需求信息,还需要获取计算集群20的属性信息,来确定计算集群20是否可部署应用实例。基于此,在本实施例中,如图1所示,管控节点10可获取计算集群20的属性信息。在本申请实施例中,对于K8s系统来说,管控节点10可获取client包,并从client包中获取计算集群20的属性信息。
其中,计算集群20包括:计算节点201,还包括:计算节点201上部署的应用实例(如pod等)。相应地,计算集群20的属性信息包括:计算节点201的属性信息和计算节点201上部署的应用实例的属性信息。
其中,计算节点201的属性信息可包括:计算节点201的资源信息以及影响资源调度的其它信息。如计算节点201的影响资源调度的信息包括:标签(Label)信息、污点(Taint)信息、工作负载(Workload)信息、持久卷声明(PVC)以及持久卷(PV)信息等。
其中,标签(Label)信息用于标识计算节点(Node)201对应用实例(pod)是否有亲和度。添加有标签的计算节点201对应用实例具有亲和度,即可在添加有标签的计算节点201上部署应用实例。污点为定义在计算节点之上的键值性属性数据,用于让计算节点拒绝将应用实例调度运行于其上,除非该应用实例具有接纳计算节点污点的容忍度。
上述工作负载(Workload)信息可包括: StatefulSet、Deployment、ReplicaSet、Daemonset等资源。这些资源信息包含了 应用实例数量以及应用实例的亲和性规则等。只有与Workload的亲和性规则适配的应用实例才可部署在该计算节点上。
上述持久卷(PV)信息,包括节点亲和度(nodeAffinity信息,直接影响调度结果,即如果待部署应用实例需要使用持久卷资源,其节点亲和度需要与PV信息中包含的节点亲和度适配,该应用实例才可部署在本计算节点上。
上述持久卷声明(PVC)是指对PV的声明信息,可包括:被选择节点(selected-node)信息,直接影响调度结果。即如果待部署应用实例需要使用持久卷资源,只能部署在PVC声明的selected-node信息对应的计算节点上。
对于上述计算节点201上部署的应用实例的属性信息,可包括:实例资源信息、调度亲和性规则 、容忍度规则以及标签(Label)等。其中,关于容忍度、亲和性以及标签的描述,可参见上述相关内容,在此不再赘述。
上述计算节点和应用实例的属性信息仅为示例性说明,并不意味着计算节点和应用实例只包含上述属性信息。
基于上述分析,可以得出计算集群20的属性信息影响应用实例的资源调度。因此,如图1所示,管控节点10可根据计算集群的属性信息,构建虚拟集群(Simulated Cluster)30。本申请实施例中,虚拟集群30是指根据计算集群20的属性信息,对计算集群20进行仿真或模拟得到的模拟集群,也可成为仿真集群。可选地,对于K8s系统来说,K8s社区提供有伪客户端(fake-client)包。在本申请实施例中,可利用fake-client包模拟K8s的能力。具体地,可将计算集群20的属性信息导入fake-client包中,以得到虚拟集群30。其中,虚拟集群30与计算集群20相对应。虚拟集群30的属性信息与计算集群20相同。虚拟集群30中的虚拟节点301与计算集群20中的计算节点201一一对应,具有相同的属性信息。
在本申请实施例中,除了对计算集群20进行模拟之外,还可对调度器进行模拟。可选地,如图2所示,可基于虚拟集群,构建虚拟调度器50。具体地,可获取虚拟集群对应的fake-client包;并将fake-client包作为调度器的启动参数输入原生调度器,以得到虚拟调度器50。
对于K8s系统来说,调度器是K8s的一个控制面进程,负责将pod指派到满足该pod运行要求的节点(Node)上。对于K8s系统来说,定义有调度框架(Scheduling Framework),即K8s 调度器定义了一些扩展点,支持开发者自定义调度器逻辑以满足特定需求。基于该调度框架,可对原生调度器进行扩展及修改,使得虚拟调度器具有下述能力:
(1)模拟调度结果及时通知:虚拟调度器的外部设有进程监听应用实例更新事件。外部进程可监听虚拟调度器进行模拟调度过程中任何阶段的应用实例更新事件,例如可监听预选、优选阶段的pod更新事件以及绑定阶段的更新事件等;进一步,还可根据监测到的应用实例更新事件,输出相应的通知。例如,应用实例更新事件表明应用调度失败,输出调度失败通知等。
在本申请实施例中,为模拟原生调度器,还需要重写绑定(Bind)逻辑。主要包括:(1)支持虚拟集群:原生调度器在绑定阶段会有诸如 Binding 等结构体的处理,而虚拟集群调度不存在这些结构体,会导致调度器报错,因此,本申请实施例提供的模拟调度器略过该类内容;(2)在绑定阶段,模拟调度器可基于被选择的节点信息更新实例资源。外部进程根据应用实例更新事件,判断当前虚拟集群是否满足应用实例部署要求。
在模拟调度器50构建完成后,对于本申请实施例来说,可利用模拟调度器50对虚拟集群30进行资源调度模拟。由于模拟调度器通过修改原生调度器扩展点,可复用原生K8s调度算法,来模拟计算集群和调度器,可减少计算集群和调度器模拟的工作量,提高模拟开发效率。由于模拟调度器部署于管控节点10中,因此,下述实施例中,仍以管控节点10为执行主体对资源调度模拟过程进行说明。
具体地,管控节点10可根据应用需求信息和虚拟集群30的属性信息,在虚拟集群30上进行应用部署模拟,得到模拟调度结果。由于应用部署是在虚拟集群30上进行模拟部署的,因此,即便某个应用实例的调度结果不合理,也可以重新进行资源调度,得到合理的模拟调度结果。这样,在后续根据模拟调度结果,在计算集群20上部署应用实例时,应用部署成功率较高。基于上述分析,在本实施例中,管控节点10还可根据模拟调度结果,在计算集群20上部署应用实例。
在本实施例中,由于通过在虚拟集群上进行应用部署模拟,不受物理资源的限制,得到的模拟调度结果为应用部署成功的模拟结果;因此,根据模拟调度结果,在计算集群上部署应用实例,有助于提高应用部署成功率。
在本申请实施例中,不限定对应用实例进行模拟部署的具体实施方式。在一些实施例中,管控节点10可根据应用需求信息,确定应用部署对应的多个仿真实例及多个仿真实例的属性信息。其中,关于仿真实例的属性信息,可参见上述应用实例的属性信息的相关内容,在此不再赘述。
由于仿真实例的属性信息在一定程度上可反映实例对计算节点的要求,而虚拟集群30的属性信息可反映虚拟集群30对应用实例的要求及自身的属性信息,因此,管控节点10可根据多个仿真实例的属性信息和虚拟集群的属性信息,在虚拟集群30上分批次进行部署模拟,得到模拟调度结果。对于K8s平台来说,是以pod为单元进行资源调度的,无法批量处理pod,因此,每个模拟批次在虚拟集群30模拟部署一个pod。
在本申请实施中,管控节点10在虚拟集群30上分批次进行仿真实例部署模拟时,可每次随机选择一个仿真实例;并根据随机选择出的仿真实例的属性信息和虚拟集群的属性信息,在虚拟集群30上对该仿真实例进行部署模拟,以得到该仿真实例对应的模拟调度结果。
但是,考虑到随机选择的仿真实例可能为资源需求较低的仿真实例,若先部署该仿真实例,可能导致部署该仿真实例的虚拟节点301中剩余的资源量无法满足资源需求较高的应用实例的需求,这样对于部署该仿真实例的虚拟节点301会产生资源碎片,资源利用率较低。
在本申请实施例中,为了提高虚拟节点301的资源利用率,即提高后续计算节点201的资源利用率,管控节点10在虚拟集群30上分批次进行部署模拟时,可根据多个仿真实例的属性信息,确定多个仿真实例的资源需求信息;并从虚拟集群30的属性信息中,获取虚拟集群30的资源信息;进一步,可根据多个仿真实例的资源需求信息和虚拟集群30的资源信息,确定多个仿真实例的资源需求率。其中,仿真实例的资源需求率是指仿真实例的资源需求占虚拟集群30的资源比例。
在本申请实施例中,不限定确定多个仿真实例的资源需求率的具体实施方式。在一些实施例中,可根据下述公式(1)和(2)确定仿真实例的资源需求率。其中,公式(1)和(2)可表示为:
在上述公式(1)和(2)中,n表示某一类物理资源,n=1,2,…,N。例如:n=1 表示CPU
资源,n=2表示内存资源等。N表示物理资源的总类数,即一共N类物理资源。m表示计算节点
的序号,m=1,2,…,M。M表示计算节点的总数量。r mn 表示计算节点m上第n类资源量,如表示序号为1的计算节点的CPU核数为8。
在上述公式(2)中,可将S i 作为应用实例i的资源需求率。其中,S值越大,对应的计算节点的资源需求率越高。
进一步,管控节点10可根据多个仿真实例的资源需求率,将多个仿真实例划分为多个模拟批次;其中,资源需求量越高的仿真实例的模拟批次越靠前。即管控节点10可根据多个仿真实例的资源需求率从高到低的顺序,将多个仿真实例划分为多个模拟批次,其中,资源需求率越高的仿真实例的模拟批次越靠前。可选地,一个模拟批次可对应一个应用实例。
相应地,针对任一当前模拟批次,管控节点10可根据当前模拟批次的仿真实例的属性信息和虚拟集群的属性信息,在虚拟集群上分批次进行部署模拟,得到当前模拟批次的仿真实例的模拟部署结果。
具体地,针对当前模拟批次的仿真实例,管控节点10从虚拟集群包含的虚拟节点中,确定与当前模拟批次的仿真实例的属性信息适配的目标虚拟节点。可选地,管控节点10可从虚拟集群30包含的虚拟节点301中,选择满足当前模拟批次的仿真实例的资源需求的虚拟节点301;并从满足当前模拟批次的仿真实例的资源需求的虚拟节点301中,选择与当前模拟批次的仿真实例的亲和性调度规则、容忍度规则以及标签信息适配的虚拟节点,作为目标虚拟节点。
在确定出与仿真实例的属性信息适配的目标虚拟节点之后,管控节点10可从目标虚拟节点中,调度满足仿真实例的资源需求信息的目标资源;并确定目标虚拟节点及目标资源为当前模拟批次的仿真实例的模拟调度结果。
在实际应用中,可能存在虚拟集群30中不存在与当前模拟批次的属性信息适配的目标虚拟节点的情况。可选地,基于上述虚拟调度器的描述,在本实施例中,管控节点10可调用虚拟调度器的外部进程监听仿真实例更新事件;并根据仿真实例更新事件,判断当前虚拟集群是否满足当前模拟批次的仿真实例的部署要求。具体地,虚拟调度器的外部进程可获取仿真实例对应的实例资源(如pod资源);若从仿真实例对应的实例资源中获取被选择节点标识(node-name),则确定当前虚拟集群满足模拟批次的仿真实例的部署要求,当前模拟批次的仿真实例部署模拟成功;若当前模拟批次产生的仿真实例更新事件表明模拟调度失败,则确定当前虚拟集群不满足模拟批次的仿真实例的部署要求,当前模拟批次的仿真实例部署模拟失败。
针对当前模拟批次的仿真实例的部署模拟失败的情况,管控节点10可在虚拟集群30中添加新的虚拟节点。可选地,管控节点10可根据未模拟部署的仿真实例的属性信息,在虚拟集群30中添加新的虚拟节点;其中,新的虚拟节点的属性信息与未模拟部署的仿真实例的属性信息相适配。当然,在一些实施例中,资源需求方可指定节点需求信息。其中,节点规格信息可以Node资源文件的形式提供。节点需求信息可包括:节点的资源规格(如CPU、内存规格)以及标签信息、污点信息等。相应地,管控节点10可获取节点需求信息,并根据节点需求信息,在虚拟集群30中添加新的虚拟节点,即在虚拟集群30中添加满足节点需求信息的虚拟节点。
由于虚拟节点发生变化,虚拟集群的结构也就发生变化。因此,管控节点10还可根据新的虚拟节点的属性信息和计算集群20的属性信息,构建新的虚拟集群。之后,管控节点10可执行对当前模拟批次的仿真实例的部署模拟操作,至多个仿真实例模拟实例部署成功。之后,可确定新的虚拟节点及新的虚拟节点用于部署当前模拟批次的仿真实例的目标资源,为当前模拟批次的仿真实例的模拟调度结果。之后,可确定每个模拟批次得到的模拟调度结果为在虚拟集群上进行应用部署模拟的模拟调度结果,即最终的模拟调度结果。
上述在虚拟集群30上进行仿真实例部署模拟的过程,可实施为:按照仿真实例的资源需求率从高到低的顺序,每次从当前未成功模拟部署的仿真实例中选择当前资源需求率最高的应用实例;并根据当前资源需求量最高的仿真实例的属性信息和虚拟集群的属性信息,在虚拟集群30上对该仿真实例进行部署模拟,得到当前资源需求量最高的仿真实例对应的模拟调度结果,至应用需求信息对应的所有仿真实例模拟部署完成。为了更清楚地描述上述在虚拟集群30上进行应用实例部署模拟的过程,下面结合图3进行示例性说明。如图3所示,在虚拟集群上进行应用实例部署模拟的过程主要包括以下步骤:
301、获取应用需求信息和计算集群的属性信息。
302、根据应用需求信息,确定应用部署对应的多个仿真实例及多个仿真实例的属性信息。
303、根据多个仿真实例的属性信息,确定多个仿真实例的资源需求信息。
304、根据计算集群的属性信息,构建虚拟集群。
305、从虚拟集群的属性信息中,获取虚拟集群的资源信息。
306、根据多个仿真实例的资源需求信息和虚拟集群的资源信息,确定多个仿真实例的资源需求率。
307、从尚未模拟部署成功的仿真实例中,选择资源需求率最高的仿真实例,作为当前模拟批次的仿真实例。
其中,尚未模拟部署成功的仿真实例可包括:尚未参与模拟部署的仿真实例以及上次模拟部署失败的仿真实例。
308、根据当前模拟批次的仿真实例的属性信息和虚拟集群的属性信息,判断虚拟集群是否存在与当前模拟批次的仿真实例的属性信息适配的目标虚拟节点,即判断当前模拟批次是否模拟部署成功。若判断结果为是,执行步骤309;若判断结果为否,执行步骤312。
309、从目标虚拟节点中,调度满足仿真实例的资源需求信息的目标资源。
310、确定目标虚拟节点及目标资源为当前模拟批次的仿真实例的模拟调度结果。
311、判断是否存在未部署应用实例;若判断结果为是,返回执行上述步骤307;若判断结果为否,执行步骤314。
312、获取节点需求信息。
313、根据节点需求信息,在虚拟集群中添加新的虚拟节点;并返回执行步骤304。
值得说明的是,在返回执行步骤304时,计算集群的属性信息包括:已模拟部署成功的应用实例的属性信息以及新的虚拟节点的属性信息。相应地,返回执行步骤304时构建出的虚拟集群为新的虚拟集群。
314、确定每个模拟批次得到的模拟调度结果为最终的模拟调度结果。
本实施例提供的基于模拟调度的应用部署方法,可预估当前计算集群是否可成功部署应用;若当前计算集群不满足应用部署调节,可根据资源需求方提供的节点规格信息,计算出保证应用部署成功需要添加的最小节点数量。这些,后续在根据模拟调度结果,将应用部署在真实的计算集群中时,可在保证应用部署成功的前提下添加较小甚至是最小的计算节点数量,有助于节约计算节点成本。
在得到模拟调度结果之后,管控节点10可输出模拟调度结果。其中,模拟调度结果可包括:应用实例的部署信息及集群规划信息等。模拟仿真结果可以json格式保存到文件中。其中,模拟调度结果内容可如下表1所示。其中,表1中仅以应用实例为pod、调度结果包含仿真实例、仿真实例对应的虚拟节点以及pod的要求和虚拟节点可提供的资源为例进行示出,但不构成限定。
表1 模拟调度结果
由于模拟调度结果是在根据真实的计算集群构建的虚拟集群上进行的,因此,模拟调度结果对真实应用部署的资源调度具有参考价值。基于此,如图4所示,管控节点10还可根据模拟调度结果,在计算集群20上进行应用实例部署。具体地,如图4所示,管控节点10可根据应用需求信息,创建应用部署对应的多个应用实例对应的实例资源。其中应用实例对应的实例资源可为应用实例对应的终态描述实例。对于K8s系统来说,管控节点10可部署有K8s控制器。其中,K8s控制器可根据应用需求信息,创建应用部署对应的多个应用实例的实例资源。
在真实计算系统中,多个应用实例的实例资源包含的应用实例的名称与上述模拟调度结果中仿真实例的名称可能不同,在本申请实施例中,为了确定应用实例对应的计算节点,需要确定模拟调度结果中仿真实例与实例资源包含的应用实例的名称之间的对应关系。基于此,
管控节点10可根据模拟调度结果和多个应用实例对应的实例资源,从计算集群20中确定多个应用实例对应的目标计算节点。对于需要扩容的计算集群20来说,真实应用实例部署时的计算集群为添加新的计算节点后的计算集群。其中图4中的虚线所示的计算节点为新添加的计算节点。其中,添加的新的计算节点的数量和规格可与上述模拟调度结果中新的虚拟节点的规格相同。
具体地,管控节点10可利用准入控制器(如webhook等)从多个应用实例对应的实例资源中,获取多个应用实例对应的工作负载信息;之后,可根据工作负载信息,确定模拟调度结果中的仿真实例与实例资源包含的应用实例之间的对应关系。这主要是由于实例资源包含的workload的名称与模拟调度结果中workload的名称是相同的。因此,对应相同的workload名称的仿真实例与应用实例是一一对应的。进一步,可根据模拟调度结果中的仿真实例与多个应用实例之间的对应关系,从模拟调度结果中确定多个应用实例对应的目标计算节点。
进一步,管控节点10可根据多个应用实例对应的实例资源,将多个应用实例部署至对应的目标计算节点。
对于真实的调度器(如K8s调度器)来说对计算集群进行资源调度时,无法识别上述应用实例模拟迁移得到的模拟调度结果。基于此,在本申请实施例中,管控节点10可增设准入控制器(如webhook)。其中,准入控制器可捕获到实例资源创建事件。基于此,管控节点10在将应用实例部署至目标计算节点时,可利用准入控制器绑定应用实例与目标计算节点。这样,管控节点10可根据应用实例与目标计算节点的绑定关系,在目标计算节点上部署应用实例。其中。利用准入控制器绑定应用实例与目标计算节点,在应用实例部署调度时,可绕过真实的调度器(如K8s调度器),利用模拟调度结果进行应用实例部署,无需真实的调度器重新为应用实例进行资源调度。
具体地,管控节点10可利用准入控制器将实例资源中被选择节点的标识(node-name)设置为目标计算节点的标识,实现需要迁移的应用实例与目标计算节点的绑定。这样,资源调度过程可绕过真实的调度器(如K8s调度器),利用模拟调度结果进行应用实例部署,无需真实的调度器重新为应用实例进行资源调度。由于设置被选择节点的标识后的实例资源可反映应用实例与目标计算节点的绑定关系,因此,管控节点10便可根据设置被选择节点的标识后的实例资源,在目标计算节点上创建对应的应用实例。
在本申请实施例中,可以模拟调度结果为参考进行应用部署的资源调度,实现资源编排,有助于提高真实计算集群的资源利用率。
除了上述系统实施例之外,本申请实施例还提供资源调度方法。下面对本申请实施例提供的资源调度方法进行示例性说明。
图5为本申请实施例提供的资源调度方法的流程示意图。如图5示,该资源调度方法包括:
501、获取应用需求信息和计算集群的属性信息。
502、根据计算集群的属性信息,构建虚拟集群。
503、根据应用需求信息和虚拟集群的属性信息,在虚拟集群上进行应用部署模拟,得到模拟调度结果。
504、根据模拟调度结果,在计算集群上部署应用需求信息对应的应用实例。
为了提高应用部署成功率,提出基于仿真调度的应用部署方案,主要实施方式如下:在步骤501中,可获取应用需求信息。其中,应用需求信息可由资源需求方提供。其中,关于应用需求信息的描述可参见上述系统实施例的相关内容,在此不再赘述。
在资源调度时,不仅需要获取应用需求信息,还需要获取计算集群的属性信息,来确定计算集群是否可部署应用实例。基于此,在步骤501中,还可获取计算集群的属性信息。在本申请实施例中,对于K8s系统来说,可获取client包,并从client包中获取计算集群的属性信息。其中,计算集群包括:计算节点,还包括:计算节点上部署的应用实例(如pod等)。关于计算集群的属性信息的描述,可参见上述实施例的相关内容,在此不再赘述。
由于计算集群的属性信息影响应用实例的资源调度。因此,在步骤502中,可根据计算集群的属性信息,构建虚拟集群。可选地,对于K8s系统来说,K8s社区提供有伪客户端(fake-client)包。在本申请实施例中,可利用fake-client包模拟K8s的能力。具体地,可将计算集群的属性信息导入fake-client包中,以得到虚拟集群。其中,虚拟集群与计算集群相对应。虚拟集群的属性信息与计算集群相同。
进一步,在步骤503中,可根据应用需求信息和虚拟集群的属性信息,在虚拟集群上进行应用部署模拟,得到模拟调度结果。由于应用部署是在虚拟集群上进行模拟部署的,因此,即便某个应用实例的调度结果不合理,也可以重新进行资源调度,得到合理的模拟调度结果。这样,在后续根据模拟调度结果,在计算集群上部署应用实例时,应用部署成功率较高。基于上述分析,在步骤504中,可根据模拟调度结果,在计算集群上部署应用实例。
在本实施例中,由于通过在虚拟集群上进行应用部署模拟,不受物理资源的限制,得到的模拟调度结果为应用部署成功的模拟结果;因此,根据模拟调度结果,在计算集群上部署应用实例,有助于提高应用部署成功率。
在本申请实施例中,不限定对应用实例进行模拟部署的具体实施方式。在一些实施例中,可根据应用需求信息,确定应用部署对应的多个仿真实例及多个仿真实例的属性信息。其中,关于仿真实例的属性信息,可参见上述应用实例的属性信息的相关内容,在此不再赘述。
由于仿真实例的属性信息在一定程度上可反映实例对计算节点的要求,而虚拟集群的属性信息可反映虚拟集群对应用实例的要求及自身的属性信息,因此,可根据多个仿真实例的属性信息和虚拟集群的属性信息,在虚拟集群上分批次进行部署模拟,得到模拟调度结果。
在本申请实施中,在虚拟集群上分批次进行应用实例部署模拟时,可每次随机选择一个仿真实例;并根据随机选择出的仿真实例的属性信息和虚拟集群的属性信息,在虚拟集群上对该仿真实例进行部署模拟,以得到该仿真实例对应的模拟调度结果。
但是,考虑到随机选择的仿真实例可能为资源需求较低的仿真实例,若先部署该仿真实例,可能导致部署该仿真实例的虚拟节点剩余的资源量无法满足资源需求较高的仿真实例的需求,这样对于部署该仿真实例的虚拟节点会产生资源碎片,资源利用率较低。
在本申请实施例中,为了提高虚拟节点的资源利用率,即提高后续计算节点的资源利用率,在虚拟集群上分批次进行部署模拟时,可根据多个仿真实例的属性信息,确定多个仿真实例的资源需求信息;并从虚拟集群的属性信息中,获取虚拟集群的资源信息;进一步,可根据所述多个仿真实例的资源需求信息和虚拟集群的资源信息,确定多个仿真实例的资源需求率。其中,仿真实例的资源需求率是指仿真实例的资源需求占虚拟集群的资源比例。其中,关于确定多个仿真实例的资源需求率的具体实施方式可参见上述系统实施例的相关内容,在此不再赘述。
进一步,可根据多个仿真实例的资源需求率,将多个仿真实例划分为多个模拟批次;其中,资源需求量越高的仿真实例的模拟批次越靠前。即可根据多个仿真实例的资源需求率从高到低的顺序,将多个仿真实例划分为多个模拟批次,其中,资源需求率越高的仿真实例的模拟批次越靠前。可选地,一个模拟批次可对应一个应用实例。
相应地,针对当前模拟批次,可根据当前模拟批次的仿真实例的属性信息和所述虚拟集群的属性信息,在虚拟集群上分批次进行部署模拟,得到当前模拟批次的仿真实例的模拟部署结果。
具体地,针对当前模拟批次的仿真实例,可从虚拟集群包含的虚拟节点中,确定与当前模拟批次的仿真实例的属性信息适配的目标虚拟节点。可选地,管控节点可从虚拟集群包含的虚拟节点中,选择满足当前模拟批次的仿真实例的资源需求的虚拟节点;并从满足当前模拟批次的仿真实例的资源需求的虚拟节点中,选择与当前模拟批次的仿真实例的亲和性调度规则、容忍度规则以及标签信息适配的虚拟节点,作为目标虚拟节点。
在确定出与仿真实例的属性信息适配的目标虚拟节点之后,可从目标虚拟节点中,调度满足仿真实例的资源需求信息的目标资源;并确定目标虚拟节点及目标资源为当前模拟批次的仿真实例的模拟调度结果。
在实际应用中,可能存在虚拟集群中不存在与当前模拟批次的属性信息适配的目标虚拟节点的情况。其中,关于判断当前虚拟集群是否存在与当前模拟批次的属性信息适配的目标虚拟节点的情况的具体实施方式,可参见上述系统实施例的相关内容,在此不再赘述。
针对当前模拟批次的仿真实例的部署模拟失败的情况,即当前虚拟集群是否存在与当前模拟批次的属性信息适配的目标虚拟节点的情况的,可在虚拟集群中添加新的虚拟节点。可选地,可根据未模拟部署的应用实例的属性信息,在虚拟集群中添加新的虚拟节点;其中,新的虚拟节点的属性信息与未模拟部署的应用实例的属性信息相适配。当然,在一些实施例中,资源需求方可指定节点需求信息。相应地,可获取节点需求信息,并根据节点需求信息,在虚拟集群中添加新的虚拟节点。
由于虚拟节点发生变化,虚拟集群的结构也就发生变化。因此,还可根据新的虚拟节点的属性信息和计算集群的属性信息,构建新的虚拟集群。之后,可执行对当前模拟批次的仿真实例的部署模拟操作,至多个仿真实例模拟实例部署成功。之后,可确定新的虚拟节点及新的虚拟节点用于部署当前模拟批次的仿真实例的目标资源,为当前模拟批次的仿真实例的模拟调度结果。之后,可确定每个模拟批次得到的模拟调度结果为在虚拟集群上进行应用部署模拟的模拟调度结果,即最终的模拟调度结果。
本实施例提供的基于模拟调度的应用部署方法,可预估当前计算集群是否可成功部署应用;若当前计算集群不满足应用部署调节,可根据资源需求方提供的节点规格信息,计算出保证应用部署成功需要添加的最小节点数量。这些,后续在根据模拟调度结果,将应用部署在真实的计算集群中时,可在保证应用部署成功的前提下添加较小甚至是最小的计算节点数量,有助于节约计算节点成本。
在得到模拟调度结果之后,可输出模拟调度结果。其中,模拟调度结果可包括:应用实例的部署信息及集群规划信息等。模拟仿真结果可以json格式保存到文件中。由于模拟调度结果是在根据真实的计算集群构建的虚拟集群上进行的,因此,模拟调度结果对真实应用部署的资源调度具有参考价值。基于此,还可根据模拟调度结果,在计算集群上进行应用实例部署。
具体地,可根据应用需求信息,创建应用部署对应的多个应用实例对应的实例资源。其中应用实例对应的实例资源可为应用实例对应的终态描述实例。在真实计算系统中,多个应用实例的实例资源包含的应用实例的名称与上述模拟调度结果中仿真实例的名称可能不同,在本申请实施例中,为了确定应用实例对应的计算节点,需要确定模拟调度结果中仿真实例与实例资源包含的应用实例的名称之间的对应关系。基于此,可根据模拟调度结果和多个应用实例对应的实例资源,从计算集群中确定多个应用实例对应的目标计算节点。对于需要扩容的计算集来说,真实应用实例部署时的计算集群为添加新的计算节点后的计算集群。添加的新的计算节点的数量和规格可与上述模拟调度结果中新的虚拟节点的规格相同。
具体地,可利用准入控制器(如webhook等)从多个应用实例对应的实例资源中,获取所述多个应用实例对应的工作负载信息;之后,可根据工作负载信息,确定模拟调度结果中的仿真实例与实例资源包含的应用实例之间的对应关系。这主要是由于实例资源包含的workload的名称与模拟调度结果中workload的名称是相同的。因此,对应相同的workload名称的仿真实例与应用实例是一一对应的。进一步,可根据模拟调度结果中的仿真实例与多个应用实例之间的对应关系,从模拟调度结果中确定多个应用实例对应的目标计算节点。
进一步,可根据多个应用实例对应的实例资源,将多个应用实例部署至对应的目标计算节点。
对于真实的调度器(如K8s调度器)来说对计算集群进行资源调度时,无法识别上述应用实例模拟迁移得到的目标模拟调度结果。基于此,在本申请实施例中,可增设准入控制器(如webhook)。其中,准入控制器可捕获到实例资源创建事件。基于此,在将应用实例部署至目标计算节点时,可并利用准入控制器将实例资源中被选择节点的标识(node-name)设置为目标计算节点的标识,实现需要迁移的应用实例与目标计算节点的绑定。这样,便可根据设置被选择节点的标识后的实例资源,在目标计算节点上创建对应的应用实例。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤501和502的执行主体可以为设备A;又比如,步骤501的执行主体可以为设备A,步骤502的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如501、502等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
相应地,本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行上述资源调度方法中的步骤。
本申请实施例还提供一种计算机程序产品,包括:计算机程序;当计算机程序被处理器执行时,可实现上述资源调度方法中的步骤。在本申请实施例中,不限定计算机程序产品的具体实现形式。在一些实施例中,该计算机程序产品可实现为资源管理系统软件或者插件等。
图6为本申请实施例提供的计算机设备的结构示意图。如图6所示,该计算机设备包括:存储器60a和处理器60b;其中,存储器60a,用于存储计算机程序;
处理器60b耦合至存储器60a,用于执行计算机程序以用于:获取应用需求信息和计算集群的属性信息;根据计算集群的属性信息,构建虚拟集群;根据应用需求信息和虚拟集群的属性信息,在虚拟集群上进行应用部署模拟,得到模拟调度结果;以及,根据模拟调度结果,在计算集群上部署应用需求信息对应的应用实例。
在一些实施例中,处理器60b在构建虚拟集群时,具体用于:将计算集群的属性信息导入伪客户端包中,以得到虚拟集群。
在另一些实施例中,处理器60b在虚拟集群上进行应用部署模拟时,具体用于:根据应用需求信息,确定应用部署对应的多个仿真实例及多个仿真实例的属性信息;根据多个仿真实例的属性信息和虚拟集群的属性信息,在虚拟集群上分批次进行部署模拟,得到模拟调度结果。
可选地,处理器60b在虚拟集群上分批次进行部署模拟时,具体用于:根据多个仿真实例的属性信息,确定多个仿真实例的资源需求信息;从虚拟集群的属性信息中,获取虚拟集群的资源信息;根据多个仿真实例的资源需求信息和虚拟集群的资源信息,确定多个仿真实例的资源需求率;根据多个仿真实例的资源需求率,将多个仿真实例划分为多个模拟批次;其中,资源需求率越高的仿真实例的模拟批次越靠前;以及,针对任一当前模拟批次,根据当前模拟批次的仿真实例的属性信息和虚拟集群的属性信息,在虚拟集群上分批次进行部署模拟,得到当前模拟批次的仿真实例的模拟部署结果。
可选地,处理器60b在虚拟集群上分批次进行部署模拟时,具体用于:针对当前模拟批次的仿真实例,从虚拟集群包含的虚拟节点中,确定与仿真实例的属性信息适配的目标虚拟节点;从目标虚拟节点中,调度满足仿真实例的资源需求信息的目标资源;以及,确定目标虚拟节点及目标资源为当前模拟批次的仿真实例的模拟调度结果。
相应地,处理器60b还用于:若当前模拟批次的仿真实例的部署模拟失败,在虚拟集群中添加新的虚拟节点;根据新的虚拟节点的属性信息和计算集群的属性信息,构建新的虚拟集群,并执行当前模拟批次的仿真实例的部署模拟操作,至多个仿真实例模拟部署成功;确定每个模拟批次得到的模拟调度结果为在虚拟集群上进行应用部署模拟的模拟调度结果。
可选地,处理器60b在虚拟集群中添加新的虚拟节点时,具体用于:获取节点需求信息;根据节点需求信息,在虚拟集群中添加新的虚拟节点。
在本申请一些实施例中,处理器60b在计算集群上部署应用实例时,具体用于:根据应用需求信息,创建应用部署对应的多个应用实例对应的实例资源;根据模拟调度结果和多个应用实例对应的实例资源,从计算集群中确定多个应用实例对应的目标计算节点;以及,根据多个应用实例对应的实例资源,将多个仿真实例部署至对应的目标计算节点。
可选地,处理器60b在从计算集群中确定多个应用实例对应的目标计算节点时,具体用于:利用准入控制器从多个应用实例对应的实例资源中,获取多个应用实例对应的工作负载信息;根据工作负载信息,确定模拟调度结果中的仿真实例与多个应用实例之间的对应关系;以及,根据模拟调度结果中的仿真实例与多个应用实例之间的对应关系,从模拟调度结果中确定多个应用实例对应的目标计算节点。
可选地,处理器60b在将多个应用实例部署至对应的目标计算节点时,具体用于:利用准入控制器将多个应用实例的实例资源中被选择的节点标识设置为目标计算节点的标识;以及根据多个应用实例对应的设置被选择节点标识后的实例资源,在目标计算节点上部署对应的应用实例。
在一些可选实施方式中,如图6所示,该计算机设备还可以包括:通信组件60c、电源组件60d等组件。图6中仅示意性给出部分组件,并不意味着计算机设备必须包含图6所示全部组件,也不意味着计算机设备只能包括图6所示组件。
本实施例提供的计算机设备,可获取应用需求信息和计算集群的属性信息;并根据计算集群的属性信息,构建虚拟集群;之后,可根据应用需求信息和虚拟集群的属性信息,在虚拟集群上进行应用部署模拟,得到模拟调度结果;之后,可根据模拟调度结果,在计算集群上部署应用实例。其中,通过在虚拟集群上进行应用部署模拟,不受物理资源的限制,得到的模拟调度结果为应用部署成功的模拟结果,实现了应用部署的资源预估。因此,根据模拟调度结果,在计算集群上部署应用实例,有助于提高应用部署成功率。
在本申请实施例中,存储器用于存储计算机程序,并可被配置为存储其它各种数据以支持在其所在设备上的操作。其中,处理器可执行存储器中存储的计算机程序,以实现相应控制逻辑。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
在本申请实施例中,处理器可以为任意可执行上述方法逻辑的硬件处理设备。可选地,处理器可以为中央处理器(Central Processing Unit,CPU)、图形处理器(GraphicsProcessing Unit,GPU)或微控制单元(Microcontroller Unit,MCU);也可以为现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程阵列逻辑器件(ProgrammableArray Logic,PAL)、通用阵列逻辑器件(General Array Logic,GAL)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)等可编程器件;或者为先进精简指令集(RISC)处理器(Advanced RISC Machines,ARM)或系统芯片(System on Chip,SOC)等等,但不限于此。
在本申请实施例中,通信组件被配置为便于其所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,4G,5G或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还可基于近场通信(NFC)技术、射频识别(RFID)技术、红外数据协会(IrDA)技术、超宽带(UWB)技术、蓝牙(BT)技术或其他技术来实现。
在本申请实施例中,显示组件可以包括液晶显示器(LCD)和触摸面板(TP)。如果显示组件包括触摸面板,显示组件可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
在本申请实施例中,电源组件被配置为其所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
在本申请实施例中,音频组件可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。例如,对于具有语言交互功能的设备,可通过音频组件实现与用户的语音交互等。
需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (11)
1.一种资源调度方法,其特征在于,包括:
获取应用需求信息和计算集群的属性信息;
根据所述计算集群的属性信息,构建虚拟集群;
根据所述应用需求信息和所述虚拟集群的属性信息,在所述虚拟集群上进行应用部署模拟,得到模拟调度结果;
根据所述模拟调度结果,在所述计算集群上部署所述应用需求信息对应的应用实例;
其中,所述根据所述模拟调度结果,在所述计算集群上部署所述应用需求信息对应的应用实例,包括:
根据所述应用需求信息,创建应用部署对应的多个应用实例对应的实例资源;
根据所述模拟调度结果和所述多个应用实例对应的实例资源,从所述计算集群中确定多个应用实例对应的目标计算节点;
根据所述多个应用实例对应的实例资源,将所述多个应用实例部署至对应的目标计算节点。
2.根据权利要求1所述的方法,其特征在于,所述根据所述应用需求信息和所述虚拟集群的属性信息,在所述虚拟集群上进行应用部署模拟,包括:
根据所述应用需求信息,确定应用部署对应的多个仿真实例及所述多个仿真实例的属性信息;
根据所述多个仿真实例的属性信息和所述虚拟集群的属性信息,在所述虚拟集群上分批次进行部署模拟,得到所述模拟调度结果。
3.根据权利要求2所述的方法,其特征在于,所述根据所述多个仿真实例的属性信息和所述虚拟集群的属性信息,在所述虚拟集群上分批次进行部署模拟,包括:
根据所述多个仿真实例的属性信息,确定所述多个仿真实例的资源需求信息;
从所述虚拟集群的属性信息中,获取所述虚拟集群的资源信息;
根据所述多个仿真实例的资源需求信息和所述虚拟集群的资源信息,确定所述多个仿真实例的资源需求率;
根据所述多个仿真实例的资源需求率,将所述多个仿真实例划分为多个模拟批次;其中,资源需求率越高的仿真实例的模拟批次越靠前;
针对任一当前模拟批次,根据当前模拟批次的仿真实例的属性信息和所述虚拟集群的属性信息,在所述虚拟集群上分批次进行部署模拟,得到当前模拟批次的仿真实例的模拟部署结果。
4.根据权利要求2所述的方法,其特征在于,所述根据所述多个仿真实例的属性信息和所述虚拟集群的属性信息,在所述虚拟集群上分批次进行部署模拟,包括:
针对当前模拟批次的仿真实例,从所述虚拟集群包含的虚拟节点中,确定与所述仿真实例的属性信息适配的目标虚拟节点;
从所述目标虚拟节点中,调度满足所述仿真实例的资源需求信息的目标资源;
确定所述目标虚拟节点及所述目标资源为所述当前模拟批次的仿真实例的模拟调度结果。
5.根据权利要求2所述的方法,其特征在于,还包括:
若当前模拟批次的仿真实例的部署模拟失败,在所述虚拟集群中添加新的虚拟节点;
根据所述新的虚拟节点的属性信息和所述计算集群的属性信息,构建新的虚拟集群,并执行当前模拟批次的仿真实例的部署模拟操作,至所述多个仿真实例模拟部署成功;
确定每个模拟批次得到的模拟调度结果为所述在所述虚拟集群上进行应用部署模拟的模拟调度结果。
6.根据权利要求5所述的方法,其特征在于,还包括:
获取节点需求信息;
所述在所述虚拟集群中添加新的虚拟节点,包括:
根据所述节点需求信息,在所述虚拟集群中添加新的虚拟节点。
7.根据权利要求1所述的方法,其特征在于,所述根据所述模拟调度结果和所述多个应用实例对应的实例资源,从所述计算集群中确定多个应用实例对应的目标计算节点,包括:
利用准入控制器从所述多个应用实例对应的实例资源中,获取所述多个应用实例对应的工作负载信息;
根据所述工作负载信息,确定所述模拟调度结果中的仿真实例与所述多个应用实例之间的对应关系;
根据所述模拟调度结果中的仿真实例与所述多个应用实例之间的对应关系,从所述模拟调度结果中确定所述多个应用实例对应的目标计算节点。
8.根据权利要求1所述的方法,其特征在于,所述根据所述多个应用实例对应的实例资源,将所述多个应用实例部署至对应的目标计算节点,包括:
利用准入控制器将所述多个应用实例的实例资源中被选择节点的标识设置为所述目标计算节点的标识;
根据多个应用实例的设置被选择节点的标识后的实例资源,在所述目标计算节点上部署对应的应用实例。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述根据所述计算集群的属性信息,构建虚拟集群,包括:
将所述计算集群的属性信息导入伪客户端包中,以得到所述虚拟集群。
10.一种计算系统,其特征在于,包括:管控节点和计算集群;
所述管控节点,用于获取应用需求信息和计算集群的属性信息;根据所述计算集群的属性信息,构建虚拟集群;根据所述应用需求信息和所述虚拟集群的属性信息,在所述虚拟集群上进行应用部署模拟,得到模拟调度结果;以及,根据所述模拟调度结果,在所述计算集群上部署应用实例;
所述管控节点在所述计算集群上部署应用实例时,具体用于:
根据所述应用需求信息,创建应用部署对应的多个应用实例对应的实例资源;
根据所述模拟调度结果和所述多个应用实例对应的实例资源,从所述计算集群中确定多个应用实例对应的目标计算节点;
根据所述多个应用实例对应的实例资源,将所述多个应用实例部署至对应的目标计算节点。
11.一种计算机设备,其特征在于,包括:存储器和处理器;其中,所述存储器,用于存储计算机程序;
所述处理器耦合至所述存储器,用于执行所述计算机程序以用于执行权利要求1-9任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111092377.0A CN113553140B (zh) | 2021-09-17 | 2021-09-17 | 资源调度方法、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111092377.0A CN113553140B (zh) | 2021-09-17 | 2021-09-17 | 资源调度方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113553140A CN113553140A (zh) | 2021-10-26 |
CN113553140B true CN113553140B (zh) | 2022-03-18 |
Family
ID=78134638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111092377.0A Active CN113553140B (zh) | 2021-09-17 | 2021-09-17 | 资源调度方法、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113553140B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114675956B (zh) * | 2022-04-14 | 2022-08-30 | 三峡智控科技有限公司 | 一种基于Kubernetes集群之间Pod配置及调度的方法 |
CN116340005B (zh) * | 2023-05-26 | 2023-08-15 | 北京好心情互联网医院有限公司 | 容器集群的调度方法、装置、设备及存储介质 |
CN117036564B (zh) * | 2023-08-15 | 2024-03-26 | 武汉蓝海科创技术有限公司 | 面向大型复杂装备的跨平台虚拟仿真三维资源共享方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918198A (zh) * | 2019-02-18 | 2019-06-21 | 中国空间技术研究院 | 一种基于用户特征预测的仿真云平台负载调度系统及方法 |
US10554502B1 (en) * | 2018-03-16 | 2020-02-04 | Intuit Inc. | Scalable web services execution |
CN111324445A (zh) * | 2018-12-14 | 2020-06-23 | 中国科学院深圳先进技术研究院 | 一种任务调度模拟系统 |
US10735319B1 (en) * | 2019-02-26 | 2020-08-04 | International Business Machines Corporation | Virtual container extended network virtualization in server cluster |
CN112217676A (zh) * | 2020-10-13 | 2021-01-12 | 北京工业大学 | 一种基于混合元启发式算法的Kubernetes容器集群节点选取方法 |
CN112433819A (zh) * | 2020-11-30 | 2021-03-02 | 中国科学院深圳先进技术研究院 | 异构集群调度的模拟方法、装置、计算机设备及存储介质 |
CN113312161A (zh) * | 2021-05-06 | 2021-08-27 | 联想(北京)有限公司 | 一种应用调度方法、平台及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10360050B2 (en) * | 2014-01-17 | 2019-07-23 | International Business Machines Corporation | Simulation of high performance computing (HPC) application environment using virtual nodes |
US10193762B2 (en) * | 2016-08-11 | 2019-01-29 | Rescale, Inc. | Dynamic optimization of simulation resources |
US10552217B2 (en) * | 2016-08-15 | 2020-02-04 | International Business Machines Corporation | Workload placement in a hybrid cloud environment |
CN113032102B (zh) * | 2021-04-07 | 2024-04-19 | 广州虎牙科技有限公司 | 资源重调度方法、装置、设备和介质 |
-
2021
- 2021-09-17 CN CN202111092377.0A patent/CN113553140B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10554502B1 (en) * | 2018-03-16 | 2020-02-04 | Intuit Inc. | Scalable web services execution |
CN111324445A (zh) * | 2018-12-14 | 2020-06-23 | 中国科学院深圳先进技术研究院 | 一种任务调度模拟系统 |
CN109918198A (zh) * | 2019-02-18 | 2019-06-21 | 中国空间技术研究院 | 一种基于用户特征预测的仿真云平台负载调度系统及方法 |
US10735319B1 (en) * | 2019-02-26 | 2020-08-04 | International Business Machines Corporation | Virtual container extended network virtualization in server cluster |
CN112217676A (zh) * | 2020-10-13 | 2021-01-12 | 北京工业大学 | 一种基于混合元启发式算法的Kubernetes容器集群节点选取方法 |
CN112433819A (zh) * | 2020-11-30 | 2021-03-02 | 中国科学院深圳先进技术研究院 | 异构集群调度的模拟方法、装置、计算机设备及存储介质 |
CN113312161A (zh) * | 2021-05-06 | 2021-08-27 | 联想(北京)有限公司 | 一种应用调度方法、平台及存储介质 |
Non-Patent Citations (2)
Title |
---|
Demo: EdgeVPN.io: Open-source Virtual Private Network for Seamless Edge Computing with Kubernetes;Renato Figueiredo;《IEEE》;20201231;全文 * |
面向NUMA架构的虚拟网络功能部署技术研究;许道强;《计算机工程与应用》;20190131;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113553140A (zh) | 2021-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113553140B (zh) | 资源调度方法、设备及系统 | |
US10402746B2 (en) | Computing instance launch time | |
CN113301078B (zh) | 网络系统、服务部署与网络划分方法、设备及存储介质 | |
EP3191948A1 (en) | Computing instance launch time | |
US11429434B2 (en) | Elastic execution of machine learning workloads using application based profiling | |
US9591094B2 (en) | Caching of machine images | |
CN105979007A (zh) | 加速资源处理方法、装置及网络功能虚拟化系统 | |
CN107783816A (zh) | 虚拟机的创建方法及装置、大数据集群创建的方法及装置 | |
CN112099917B (zh) | 调控系统容器化应用运行管理方法、系统、设备及介质 | |
CN113535411B (zh) | 资源调度方法、设备及系统 | |
US9729610B2 (en) | Method for intercepting an instruction produced by an application on a computer | |
CN111796838B (zh) | Mpp数据库自动部署方法及装置 | |
US20230206132A1 (en) | Method and Apparatus for Training AI Model, Computing Device, and Storage Medium | |
CN112256430A (zh) | 容器的部署方法、装置、设备及存储介质 | |
US20160070590A1 (en) | Computing Instance Placement Using Estimated Launch Times | |
CN111858050B (zh) | 服务器集群混合部署方法、集群管理节点及相关系统 | |
CN107025126A (zh) | 一种资源调度方法、nfvo和系统 | |
US9942083B1 (en) | Capacity pool management | |
CN113326098B (zh) | 支持kvm虚拟化与容器虚拟化的云管平台 | |
CN113268272B (zh) | 基于私有云的应用交付方法、装置及系统 | |
US11269615B2 (en) | Automatically orchestrating deployments of software-defined storage stacks | |
CN114780232A (zh) | 云应用调度方法、装置、电子设备及存储介质 | |
CN110351104A (zh) | 一种vim选择方法及装置 | |
CN116954878A (zh) | 容器集群的管理方法、装置、设备、存储介质及程序产品 | |
CN109617954B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |