CN113849259A - 一种虚拟机和容器混合调度系统、方法、调度器及装置 - Google Patents
一种虚拟机和容器混合调度系统、方法、调度器及装置 Download PDFInfo
- Publication number
- CN113849259A CN113849259A CN202010598237.XA CN202010598237A CN113849259A CN 113849259 A CN113849259 A CN 113849259A CN 202010598237 A CN202010598237 A CN 202010598237A CN 113849259 A CN113849259 A CN 113849259A
- Authority
- CN
- China
- Prior art keywords
- container
- physical machine
- containers
- deployed
- machine
- 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
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/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
-
- 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]
-
- 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/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
Abstract
一种虚拟机和容器混合调度系统、方法、调度器及装置,用以提供一种虚拟机和容器共部署的调度方式。本申请中,该调度系统包括调度器和资源池,资源池包括一个或多个物理机;调度器可以接收资源请求;在接收到该资源请求后,若调度器确认资源请求要求虚拟机资源,调度器从资源池选择用于部署虚拟机的物理机部署虚拟机,若调度器确认资源请求要求容器资源,调度器从资源池选择用于部署容器的物理机部署容器。由此,调度器统一对虚拟机和容器进行调度,虚拟机和容器可以部署在同一资源池内,为虚拟机和容器共部署提供了可能性,提高了虚拟机和容器调度效率。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种虚拟机和容器混合调度系统、方法、调度器及装置。
背景技术
目前,虚拟机调度架构以及容器调度架构是两个独立的架构,分别管理不同的物理机;虚拟机调度架构能够在所管理的物理机进行虚拟机调度,而容器调度架构能够实现在所管理的物理机上进行容器调度。
基于现有的虚拟机调度架构以及容器调度架构,虚拟机和容器只能部署在不同的物理机上,这无疑增加了物理机的部署成本,虚拟机调度架构以及容器调度架构相互独立的调度方式效率较低。
综上,亟需一种能够实现虚拟机和容器共部署的调度方式。
发明内容
本申请提供一种虚拟机和容器混合调度系统、方法、调度器及装置,用以提供一种虚拟机和容器共部署的调度方式。
第一方面,本申请实施例提供了一种虚拟机和容器混合调度系统,该调度系统包括调度器和资源池,资源池包括一个或多个物理机;调度器可以接收资源请求;在接收到该资源请求后,若调度器确认资源请求要求虚拟机资源,调度器从资源池选择用于部署虚拟机的物理机部署虚拟机,若调度器确认资源请求要求容器资源,调度器从资源池选择用于部署容器的物理机部署容器。
通过上述调度系统,调度器统一对虚拟机和容器进行调度,虚拟机和容器可以部署在同一资源池内,为虚拟机和容器共部署提供了可能性,提高了虚拟机和容器调度效率。
在一种可能的设计中,用于部署虚拟机的物理机与用于部署容器的物理机为同一物理机。也就是说,物理机允许同时部署虚拟机和容器。
通过上述调度系统,能够保证物理机上的资源可以被充分利用,提高物理机的资源利用率。
在一种可能的设计中,用于部署虚拟机的物理机与用于部署容器的物理机为不同物理机。
通过上述调度系统,资源池中允许存在只部署虚拟机的物理机或只部署容器的物理机,适用于不同场景。
在一种可能的设计中,调度器可以从虚拟机控制器或容器控制器接收资源请求。
通过上述调度系统,调度器可以通过虚拟机控制器或容器控制器及时接收到资源请求,便于后续确定用于部署虚拟机或容器的物理机。
在一种可能的设计中,系统还包括虚拟机控制器,资源请求包括待部署的虚拟机总数量以及虚拟机规格;调度器从资源池选择用于部署虚拟机的物理机部署虚拟机时,可以基于资源池的空闲资源分布信息,根据待部署的虚拟机总数量以及虚拟机规格确定用于部署虚拟机的物理机、物理机上待部署的虚拟机数量以及虚拟机规格,其中,空闲资源分布信息可以指示该资源池中空闲资源的分布情况,也即多个物理机上空闲资源的分布情况;在确定了用于部署虚拟机的物理机、物理机上待部署的虚拟机数量以及虚拟机规格之后,调度器可以指示虚拟机控制器在物理机上部署虚拟机,其中,物理机上部署的虚拟机符合确定的物理机上待部署的虚拟机数量以及虚拟机规格;之后,虚拟机控制器可以根据调度器的指示在物理机上部署虚拟机。
通过上述调度系统,调度器根据待部署的虚拟机数量以及虚拟机规格,确定用于部署虚拟机的物理机,并指示虚拟机控制器在物理机上部署虚拟机,实现虚拟机的调度。
在一种可能的设计中,系统还包括容器控制器,资源请求包括待部署的容器总数量以及容器的规格;调度器从资源池选择用于部署容器的物理机部署容器时,可以基于资源池的空闲资源分布信息,根据待部署的容器总数量以及容器的规格确定用于部署容器的物理机、物理机上待部署的容器数量以及容器的规格,空闲资源分布信息指示多个物理机上空闲资源的分布情况;在确定了用于部署容器的物理机、物理机上待部署的容器数量以及容器的规格之后,调度器可以指示容器控制器在物理机上部署容器,其中,物理机上部署的容器符合物理机上待部署的容器数量以及容器的规格;之后,容器控制器可以根据调度器的指示在物理机上部署容器。
通过上述调度系统,调度器根据待部署的容器数量以及容器规格,确定用于部署容器的物理机,并指示容器控制器在物理机上部署容器,实现容器的调度。
在一种可能的设计中,系统还包括容器控制器,资源请求包括用于部署的容器的候选物理机、候选物理机上待部署的容器数量以及容器的规格,其中,该候选物理机为该资源池中的物理机;调度器从资源池选择用于部署容器的物理机部署容器时,基于资源池的空闲资源分布信息,确定候选物理机的空闲资源分布情况,其中,空闲资源分布信息指示多个物理机上空闲资源的分布情况;之后,再基于候选物理机的空闲资源分布情况,根据候选物理机部署的容器数量以及容器的规格确定用于部署容器的物理机、物理机上待部署的容器数量以及容器的规格;指示容器控制器在物理机上部署容器,其中,物理机上部署的容器符合物理机上待部署的容器数量以及容器的规格;之后,容器控制器根据调度器的指示在物理机上部署容器。
通过上述调度系统,调度器根据用于部署的容器的候选物理机、候选物理机上待部署的容器数量以及容器的规格,确定用于部署容器的物理机,并指示容器控制器在物理机上部署容器,提供了另一种容器调度方式。
在一种可能的设计中,系统还包括容器控制器,调度器从资源池选择用于部署容器的物理机部署容器时,可以向容器控制器发送资源池的空闲资源分布信息,其中,空闲资源分布信息指示多个物理机上空闲资源的分布情况;容器控制器从调度器接收资源池的空闲资源分布信息后,基于资源池的空闲资源分布信息,根据待部署的容器总数量以及容器的规格确定用于部署容器的物理机、物理机上待部署的容器数量以及容器的规格;在物理机上部署容器,物理机上部署的容器符合物理机上待部署的容器数量以及容器的规格。
通过上述调度系统,调度器可以将资源池的空闲资源分布信息发送给容器控制器,之后容器控制器确定用于部署容器的物理机,并指示容器控制器在物理机上部署容器,提供了另一种容器调度方式,这种方式中可以有效减少容器控制器与调度器之间的信令交互,也可以提高容器调度的效率。
在一种可能的设计中,用于部署虚拟机的物理机与用于部署容器的物理机为同一物理机的情况下,该物理机包括虚拟机管理模块、容器管理模块以及代理模块。虚拟机和容器部署在同一物理机上,虚拟机和容器上容易存在资源冲突,为了解决资源冲突。
虚拟机管理模块可以向代理模块发送虚拟机资源分配请求,用于请求为物理机中待部署的虚拟机分配资源。容器管理模块可以向代理模块发送容器资源分配请求,用于请求为物理机待部署的容器分配资源;代理模块基于物理机的空闲资源,为待部署的虚拟机和容器分配资源;以及向虚拟机管理模块反馈为待部署的虚拟机分配的资源;以及向容器管理模块反馈为待部署的容器分配的资源;之后,虚拟机管理模块可以利用为待部署的虚拟机分配的资源创建虚拟机;容器管理模块,还用于利用为待部署的容器分配的资源创建容器。
通过上述调度系统,在物理机上,代理模块可以为容器和虚拟机统一分配资源,解决虚拟机和容器共部署时产生的资源冲突。
第二方面,本发明实施例提供了一种虚拟机和容器混合调度方法,有益效果可以参见第一方面的描述此处不再赘述,方法应用于调度器,该方法中,调度器可以先接收资源请求;之后,若调度器确定资源请求要求虚拟机资源,调度器从资源池选择用于部署虚拟机的物理机部署虚拟机;若调度器确定资源请求要求容器资源,调度器从资源池选择用于部署容器的物理机部署容器。
在一种可能的设计中,用于部署虚拟机的物理机与用于部署容器的物理机为同一物理机。
在一种可能的设计中,用于部署虚拟机的物理机与用于部署容器的物理机为不同物理机。
在一种可能的设计中,调度器在接收资源请求时,可以从虚拟机控制器接收资源请求,也可以从容器控制器接收资源请求。
在一种可能的设计中,资源请求包括待部署的虚拟机总数量以及虚拟机规格;调度器在从资源池选择用于部署虚拟机的物理机部署虚拟机时,可以基于资源池的空闲资源分布信息,根据待部署的虚拟机总数量以及虚拟机规格确定用于部署虚拟机的物理机、物理机上待部署的虚拟机数量以及虚拟机规格,其中,空闲资源分布信息指示多个物理机上空闲资源的分布情况;指示虚拟机控制器在物理机上部署虚拟机。其中,物理机上部署的虚拟机符合物理机上待部署的虚拟机数量以及虚拟机规格。
在一种可能的设计中,资源请求包括待部署的容器总数量以及容器的规格;调度器在从资源池选择用于部署容器的物理机部署容器时,可以基于资源池的空闲资源分布信息,根据待部署的容器总数量以及容器的规格确定用于部署容器的物理机、物理机上待部署的容器数量以及容器的规格,空闲资源分布信息指示多个物理机上空闲资源的分布情况;之后,指示容器控制器在物理机上部署容器,其中,物理机上部署的容器符合物理机上待部署的容器数量以及容器的规格。
在一种可能的设计中,资源请求包括用于部署的容器的候选物理机、候选物理机上待部署的容器数量以及容器的规格;调度器在从资源池选择用于部署容器的物理机部署容器时,可以基于资源池的空闲资源分布信息,确定候选物理机的空闲资源分布情况,其中,空闲资源分布信息指示多个物理机上空闲资源的分布情况;之后,基于候选物理机的空闲资源分布情况,根据候选物理机部署的容器数量以及容器的规格确定用于部署容器的物理机、物理机上待部署的容器数量以及容器的规格;再指示容器控制器在物理机上部署容器,其中,物理机上部署的容器符合物理机上待部署的容器数量以及容器的规格。
在一种可能的设计中,调度器在从资源池选择用于部署容器的物理机部署容器时,可以向容器控制器发送资源池的空闲资源分布信息,其中,空闲资源分布信息指示多个物理机上空闲资源的分布情况,以便容器控制器可以基于资源池的空闲资源分布信息确定用于部署容器的物理机,部署容器。
第三方面,本申请实施例还提供了一种调度器,该装置具有实现上述第二方面的方法实例中行为的功能,有益效果可以参见第二方面的描述此处不再赘述。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述装置的结构中包括传输单元以及处理单元,这些单元可以执行上述第二方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第四方面,本申请实施例还提供了一种装置,该装置具有实现上述第二方面的方法实例中行为的功能,有益效果可以参见第二方面的描述此处不再赘述。所述通信装置的结构中包括处理器和存储器,所述处理器被配置为支持所述基站执行上述第二方面方法中相应的功能。所述存储器与所述处理器耦合,其保存所述通信装置必要的程序指令和数据。所述通信装置的结构中还包括通信接口,用于与其他设备进行通信。
第五方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
第六方面,本申请还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面所述的方法。
第七方面,本申请还提供一种计算机芯片,所述芯片与存储器相连,所述芯片用于读取并执行所述存储器中存储的软件程序,执行上述第二方面所述的方法。
附图说明
图1为本申请提供的一种系统的架构示意图;
图2为本申请提供的一种虚拟机和容器混合调度方法示意图;
图3为本申请提供的一种调度器的结构示意图;
图4为本申请提供的一种装置的结构示意图。
具体实施方式
如图1所示,为本申请实施例适用的一种系统的架构示意图,该系统中包括调度器100以及资源池200,该资源池200包括一个或多个物理机210,该一个或多个物理机210上允许同时部署虚拟机和容器。可选的,该系统中还可以包括虚拟机控制器300、容器控制器400。
调度器100用于对资源池200中的一个或多个物理机210上部署的实例进行统一调度,实例的类型包括但不限于:容器、虚拟机。
调度器100可以接收来自虚拟机控制器300或者容器控制器400的资源请求,在本申请实施例中,为方便说明,将来自虚拟机控制器300的资源请求称为虚拟机资源请求,将来自容器控制器400的资源请求称为容器资源请求,其中,虚拟机资源请求用于要求虚拟机资源,容器资源请求用于要求容器资源。
调度器100在接收到虚拟机控制器300发送的虚拟机资源请求后,调度器100可以从资源池200中选择能够用于部署虚拟机的物理机210部署虚拟机。调度器100在选择的用于部署虚拟机的物理机210上部署虚拟机时,调度器100可以向虚拟机控制器300发送虚拟机资源响应,该虚拟机资源响应指示用于部署虚拟机的物理机210。以便虚拟机控制器300可以根据该虚拟机资源响应在物理机210上部署物理机210。
调度器100在接收到容器控制器400发送的容器资源请求后,调度器100可以从资源池200中选择能够用于部署容器的物理机210部署容器。调度器100在选择的用于部署容器的物理机210上部署容器时,调度器100可以向容器控制器400发送容器资源响应,该容器资源响应指示用于部署容器的物理机210。以便容器控制器400可以根据该容器资源响应在物理机210上部署物理机210。
在本申请实施例中,虚拟机控制器300,用于对资源池200中的一个或多个物理机210上部署的虚拟机进行调度。例如,虚拟机控制器300可以向调度器100发送虚拟机资源请求,要求虚拟机资源,还可以从调度器100接收到虚拟机资源响应,根据虚拟机资源响应在物理机210上部署虚拟机。
本申请实施例并不限定虚拟机控制器300发送虚拟机资源请求的场景,例如,该虚拟机资源请求可以是用户触发的,用户可以在虚拟机控制器300提供的虚拟机创建界面选择待部署的虚拟机总数量以及虚拟机规格,触发虚拟机控制器300向调度器100发送虚拟机资源请求。又例如,虚拟机控制器300可以接收来自其他设备(如客户端)的虚拟机创建请求,用于请求创建虚拟机,虚拟机创建请求中可以包括待部署的虚拟机总数量以及虚拟机规格,之后,虚拟机控制器300在确定需要创建虚拟机时,可以向调度器100发送虚拟机资源请求。
容器控制器400,用于对资源池200中的一个或多个物理机210上部署的容器进行调度。例如,容器控制器400可以向调度器100发送容器资源请求,要求容器资源,还可以从调度器100接收到容器资源响应,根据容器资源响应在物理机210上部署容器。
同样的,本申请实施例并不限定容器控制器400发送容器资源请求的场景,例如,该容器资源请求可以是用户触发的,用户可以在容器控制器400提供的容器创建界面选择待部署的容器总数量以及容器规格,触发容器控制器400向调度器100发送容器资源请求。又例如,容器控制器400可以接收来自其他设备(如客户端)的容器创建请求,用于请求创建容器,容器创建请求中可以包括待部署的容器总数量以及容器规格,之后,容器控制器400在确定需要创建容器时,可以向调度器100发送容器资源请求。
具体到资源池200中的每个物理机210内部,每个物理机210上可以部署有虚拟机管理模块211、容器管理模块213以及代理模块212。
虚拟机管理模块211可以对所在物理机210上部署的虚拟机进行管理,虚拟机管理模块211所执行的管理包括但不限于:创建虚拟机、删除虚拟机、停止虚拟机的运行状态、启动虚拟机。
当虚拟机控制器300需要在一个物理机210上部署虚拟机时,可以向该物理机210上部署的虚拟机管理模块211发送虚拟机创建指令,该虚拟机创建指令可以指示待部署的虚拟机数量以及虚拟机规格,待部署的虚拟机规格用于指示待创建虚拟机的所占用的资源,该资源包括但不限于:虚拟处理器、内存、磁盘、网络带宽、网络吞吐量、或网络比特率等。其中,虚拟处理器是中央处理器的一种虚拟机化技术。
虚拟机管理模块211在接收到该虚拟机创建指令后,可以根据该虚拟机创建指令在所在物理机210创建虚拟机。
容器管理模块213用于对所在物理机210上部署的容器进行管理,容器管理模块213所执行的管理包括但不限于:创建容器、删除容器、停止容器的运行状态、启动容器。
当容器控制器400需要在一个物理机210上部署容器时,可以向该物理机210上部署的容器管理模块213发送容器创建指令,该容器创建指令可以指示待部署的容器的数量以及容器的规格,待部署的容器的规格用于指示待部署的容器的所占用的资源,该资源包括但不限于:虚拟处理器、内存、磁盘、网络吞吐量、或网络比特率等。
容器管理模块213在接收到该容器创建指令后,可以根据该容器创建指令在所在物理机210创建容器。
代理模块212,用于可以为所在物理机210上待部署的虚拟机或容器分配资源,当虚拟机和容器部署在一个物理机210上,该代理模块212可以分别为该物理机210上待部署的虚拟机和容器分配资源,向虚拟机管理模块211反馈为待部署的虚拟机分配的资源,向容器管理模块213反馈为待部署的容器分配的资源。
虚拟机管理模块211在接收到代理模块212反馈的为待部署的虚拟机分配的资源后,可以利用为待部署的虚拟机分配的资源创建虚拟机。
容器管理模块213在接收到代理模块212反馈的为待部署的容器分配的资源后,可以利用为待部署的容器分配的资源创建容器。
下面结合附图2,对本申请实施例提供的一种实例调度方法进行说明,在如图2所示的方法中,步骤201~步骤203为调度器100对虚拟机的调度方法,步骤204~步骤206为调度器100对容器的调度方法,本申请实施例,并不限定调度器100可以对虚拟机和容器进行调度的先后顺序,调度器100可以对虚拟机和容器调度的先后顺序与实际应用调度器100接收虚拟机资源请求和容器资源请求的先后顺序有关,在本申请实施例中,仅是以调度器100可以先对虚拟机进行调度(步骤201~步骤203),之后再对容器进行调度(步骤204~步骤206)为例进行说明。该方法包括:
步骤201:虚拟机控制器300向调度器100发送虚拟机资源请求,该虚拟机资源请求要求虚拟机资源。
步骤202:调度器100接收到虚拟机资源请求后,确定虚拟机资源请求要求虚拟机资源。
步骤203:调度器100从所述资源池200选择用于部署虚拟机的物理机210部署虚拟机。
步骤204:容器控制器400向调度器100发送容器资源请求,该容器资源请求要求容器资源。
步骤205:调度器100接收到容器资源请求后,确定容器资源请求要求容器资源。
步骤206:调度器100从所述资源池200选择用于部署容器的物理机210部署容器。
下面先对调度器100调度虚拟机的方法进行说明:
虚拟机调度请求中可以包括待部署的虚拟机总数量以及虚拟机规格。若待部署的虚拟机的总数量为多个,且虚拟机规格不同,虚拟机调度请求中可以包括各个虚拟机规格。
调度器100在接收到该虚拟机调度请求后,可以获取该调度器100保存的资源池200的空闲资源分布信息,该资源池200的空闲资源分布信息可以指示资源池200中的一个或多个物理机210上的空闲资源的分布情况,还可以指示该一个或多个物理机210上已占用的资源。可选的,资源池200的空闲资源分布信息还可以指示该一个或多个物理机210上部署的虚拟机和容器数量、每个虚拟机规格以及每个容器的规格。
调度器100基于该资源池200的空闲资源分布信息,根据待部署的虚拟机总数量以及虚拟机规格从一个或多个物理机210中选择用于部署虚拟机的物理机210,调度器100还可以确定选择的物理机210上待部署的虚拟机数量以及虚拟机规格。如果选择的物理机210的数量为多个,调度器100可以确定每个物理机210上待部署的虚拟机数量以及虚拟机规格。
调度器100在选择了用于部署虚拟机的物理机210后,可以在该物理机210上部署虚拟机。
需要说明的是,若调度器100在确定用于部署虚拟机的物理机210时,若当前存在空闲资源的物理机210所能部署的虚拟机数量低于待部署的虚拟机总数量,或当前存在空闲资源的物理机210所能部署的虚拟机规格与待部署的虚拟机规格不一致,调度器100可以直接向虚拟机控制器300反馈调度失败响应,调度器100也可以确定用于部署部分虚拟机的物理机210,在选择的部分虚拟机的物理机210上部署虚拟机,在这种情况下,调度器100可以将用于部署部分虚拟机的物理机210信息(如能够部署的虚拟机数量以及虚拟机规格)反馈给虚拟机控制器300,虚拟机控制器300接收到用于部署部分虚拟机的物理机210信息后,可以根据预设的策略(如虚拟机全部部署的策略或虚拟机允许部分部署的策略等)确定是否部署部分虚拟机,若确定部署虚拟机则可以在物理机210上部署部分虚拟机,若确定不部署部分虚拟机,则可以通知用户虚拟机调度失败。
本申请实施例并不限定调度器100在该物理机210上部署虚拟机的方式,下面对本申请实施例提供的一种调度器100在物理机210上部署虚拟机的方式进行说明:
调度器100选择了用于部署虚拟机的物理机210,确定了物理机210上待部署的虚拟机数量以及虚拟机规格后,调度器100可以指示虚拟机控制器300在该物理机210上部署虚拟机,虚拟机控制器300在调度器100的指示下在该物理机210上部署虚拟机,部署的虚拟机符合确定的物理机210上待部署的虚拟机数量以及虚拟机规格,也即,部署的虚拟机数量与确定的物理机210上待部署的虚拟机数量一致,部署的虚拟机规格与确定的物理机210上待部署的虚拟机规格一致。
示例性的,调度器100可以将用于部署虚拟机的物理机210信息携带在虚拟机调度响应中,反馈给虚拟机控制器300。该用于部署虚拟机的物理机210信息包括该物理机210上待部署的虚拟机数量以及虚拟机规格。为了指示该物理机210,物理机210信息中还可以包括该物理机210的标识,该物理机210的标识可以为该物理机210的地址,如网际互连协议(internet protocol,IP)地址、媒体存取控制位址(media access control address,MAC),也可以为物理机210的编号,凡是能够标识该物理机210的信息均可以作为物理机210的标识。
虚拟机控制器300在接收到虚拟机调度响应后,根据该虚拟机调度响应中携带的用于部署虚拟机的物理机210信息确定用于部署虚拟机物理机210、该物理机210上待部署的虚拟机数量以及虚拟机规格。虚拟机控制器300可以在该物理机210上部署虚拟机,该物理机210上部署的虚拟机符合虚拟机调度响应中指示的该物理机210上待部署的虚拟机数量以及虚拟机规格。
针对任一用于部署虚拟机的物理机210,虚拟机控制器300可以向该物理机210上的虚拟机管理模块211发送虚拟机创建指令,该虚拟机创建指令中包括待部署的虚拟机数量以及虚拟机规格。本申请实施例并不限定该物理机210上待部署的虚拟机数量,可以为一个,也可以为多个,该物理机210上部署的虚拟机规格可以相同,也可以不同。
虚拟机管理模块211在接收到虚拟机创建指令后,可以根据该虚拟机创建指令在该物理机210上创建虚拟机,该物理机210上创建的虚拟机符合该物理机210上待部署的虚拟机数量和虚拟机规格。也即,虚拟机管理模块211所创建的虚拟机数量与该虚拟机创建指令中包括的待部署的虚拟机数量一致,虚拟机管理模块211所创建的虚拟机规格与该虚拟机创建指令中包括的虚拟机规格一致。
可选的,虚拟机管理模块211在根据该虚拟机创建指令在该物理机210上创建虚拟机之前,可以向该物理机210的代理模块212发送虚拟机资源分配请求,该虚拟机资源分配资源请求中包括该物理机210上待部署的虚拟机数量以及虚拟机规格,虚拟机资源分配请求用于请求为该物理机210上待部署的虚拟机分配资源。
代理模块212在接收到该虚拟机资源分配请求后,可以基于该物理机210上空闲资源,根据待部署的虚拟机数量以及虚拟机规格,为待部署的虚拟机分配资源。之后,向虚拟机管理模块211反馈携带有为待部署的虚拟机分配的资源的虚拟机资源分配响应。虚拟机管理模块211利用为待部署的虚拟机分配的资源创建虚拟机。
代理模块212在接收到该虚拟机资源分配请求后,也可以先确定该物理机210上是否部署容器,或该物理机210上是否存在待部署的容器(如接收到容器资源分配请求),若当前物理机210上未部署容器,且不存在待部署的容器,也就是说,该物理机210部署的实例类型仅为虚拟机,虚拟机和容器在资源占用上不存在冲突,代理模块212可以直接向虚拟机管理模块211发送指示消息,该指示消息用于指示虚拟机管理模块211可自行为虚拟机分配资源。虚拟机管理模块211在接收到该指示消息后,可以直接利用该物理机210上的空闲资源创建虚拟机。
若当前物理机210上部署容器,或存在待部署的容器,也就是说,该物理机210部署的实例的类型有虚拟机和容器两种,虚拟机和容器在资源占用上可能存在冲突,也即虚拟机在创建过程中,可能会占用到容器需要占用的资源,代理模块212可以在基于该物理机210上的空闲资源,根据待部署的虚拟机数量以及虚拟机规格,为待部署的虚拟机分配资源。
虚拟机管理模块211在该物理机210上创建虚拟机后,可以向虚拟机控制器300发送虚拟机创建成功响应,虚拟机创建成功响应还可以包括虚拟机管理模块211创建的虚拟机数量以及虚拟机所占用的资源。
虚拟机控制器300在接收到该虚拟机创建成功响应后,确定虚拟机创建成功,还可以将该虚拟机创建成功响应反馈至调度器100,该调度器100在接收到虚拟机创建成功响应后,可以更新资源池200的空闲资源分布信息,将该物理机210上虚拟机已占用的资源标记为已占用,还可以标记该物理机210上部署的虚拟机数量以及每个虚拟机规格。
下面先对调度器100调度容器的方法进行说明:
在本申请实施例中调度器100在接收到容器资源请求后,可以采用三种方式调度容器,下面分别对这三种方式进行说明:
方式一、调度器100根据待部署的容器的总数量以及容器的规格确定用于部署容器的物理机210。
容器调度请求中可以包括待部署的容器总数量以及容器的规格。若待部署的容器的总数量为多个,且容器的规格不同,容器调度请求中可以包括各个容器的规格。
调度器100在接收到该容器调度请求后,可以获取该调度器100保存的资源池200的空闲资源分布信息,该资源池200的空闲资源分布信息的说明可以参见前述说明,此处不再赘述。
调度器100基于该资源池200的空闲资源分布信息,根据待部署的容器总数量以及容器的规格从一个或多个物理机210中选择用于部署容器的物理机210,调度器100还可以确定选择的物理机210上待部署的容器的数量以及容器的规格。如果选择的物理机210的数量为多个,调度器100可以确定每个物理机210上待部署的容器的数量以及容器的规格。
需要说明的是,若调度器100在确定用于部署容器的物理机210时,若当前存在空闲资源的物理机210所能部署的容器数量低于待部署的容器总数量,或当前存在空闲资源的物理机210所能部署的容器规格与待部署的容器规格不一致,调度器100可以直接向容器控制器400反馈调度失败响应,调度器100也可以确定用于部署部分容器的物理机210,在选择的部分容器的物理机210上部署容器,在这种情况下,调度器100可以将用于部署部分容器的物理机210信息(如能够部署的容器数量以及容器规格)反馈给容器控制器400,容器控制器400接收到用于部署部分容器的物理机210信息后,可以根据预设的策略确定是否部署部分容器,若确定部署容器则可以在物理机210上部署部分容器,若确定不部署部分容器,则可以通知用户容器调度失败。
调度器100在选择了用于部署容器的物理机210后,可以在该物理机210上部署容器。
本申请实施例并不限定调度器100在该物理机210上部署容器的方式,下面对本申请实施例提供的一种调度器100在物理机210上部署容器的方式进行说明:
调度器100选择了用于部署容器的物理机210,确定了物理机210上待部署的容器数量以及容器规格后,调度器100可以指示容器控制器400在该物理机210上部署容器,容器控制器400在调度器100的指示下在该物理机210上部署容器,部署的容器符合确定的物理机210上待部署的容器数量以及容器规格。也即,部署的容器数量与确定的物理机210上待部署的容器数量一致,部署的容器规格与确定的物理机210上待部署的容器规格一致。
示例性的,调度器100可以将用于部署容器的物理机210信息携带在容器调度响应中,反馈给容器控制器400。该用于部署容器的物理机210信息包括该物理机210上待部署的容器的数量以及容器的规格。为了指示该物理机210,物理机210信息中还可以包括该物理机210的标识,该物理机210的标识可以为该物理机210的地址,如IP地址、MAC地址,也可以为物理机210的编号,凡是能够标识该物理机210的信息均可以作为物理机210的标识。
容器控制器400在接收到容器调度响应后,根据该容器调度响应中携带的用于部署容器的物理机210信息确定用于部署容器物理机210、该物理机210上待部署的容器的数量以及容器的规格。
针对任一用于部署容器的物理机210,容器控制器400可以向该物理机210上的容器管理模块213发送容器创建指令,该容器创建指令中包括待部署的容器的数量以及容器的规格。本申请实施例并不限定该物理机210上待部署的容器的数量,可以为一个,也可以为多个,该物理机210上部署的容器的规格可以相同,也可以不同。
容器管理模块213在接收到容器创建指令后,可以根据该容器创建指令在该物理机210上创建容器,容器管理模块213所创建的容器的数量与该容器创建指令中包括的待部署的容器的数量一致,容器管理模块213所创建的容器的规格与该容器创建指令中包括的容器的规格一致。
可选的,容器管理模块213在根据该容器创建指令在该物理机210上创建容器之前,可以向该物理机210的代理模块212发送容器资源分配请求,该容器资源分配资源请求中包括该物理机210上待部署的容器的数量以及容器的规格。容器资源分配请求用于请求为待部署的容器分配资源。
代理模块212在接收到该容器资源分配请求后,可以基于该物理机210上的空闲资源,根据待部署的容器的数量以及容器的规格,为待部署的容器分配资源。之后,向容器管理模块213反馈携带有为待部署的容器分配的资源的容器资源分配响应。容器管理模块213利用为待部署的容器分配的资源创建容器。
代理模块212在接收到该容器资源分配请求后,也可以先确定该物理机210上是否部署虚拟机,或该物理机210上是否存在待部署的虚拟机(如接收到容器资源分配请求),若当前物理机210上未部署虚拟机,且不存在待部署的虚拟机,也就是说,该物理机210部署的实例类型仅为容器,虚拟机和容器在资源占用上不存在冲突,代理模块212可以直接向容器管理模块213发送指示消息,该指示消息用于指示容器管理模块213可自行为容器分配资源。容器管理模块213在接收到该指示消息后,可以直接利用该物理机210上空闲的资源创建容器。
若当前物理机210上部署虚拟机,或存在待部署的虚拟机,也就是说,该物理机210部署的实例的类型有虚拟机和容器两种,虚拟机和容器在资源占用上可能存在冲突,容器可能会占用虚拟机占用的资源,代理模块212可以在基于该物理机210上的空闲资源,根据待部署的容器的数量以及容器的规格,为待部署的容器分配资源。
容器管理模块213在该物理机210上创建容器后,可以向容器控制器400发送容器创建成功响应,容器创建成功响应还可以包括容器管理模块213创建的容器数量以及容器所占用的资源。
容器控制器400在接收到该容器创建成功响应后,确定容器创建成功,可以将该容器创建成功响应反馈至调度器100,该调度器100在接收到容器创建成功响应后,可以更新资源池200的空闲资源分布信息,将该物理机210上容器已占用的资源标记为已占用,还可以更新该物理机210上部署的容器的数量以及每个容器的规格。
方式二、调度器100根据用于部署容器的候选物理机确定用于部署容器的物理机210。
容器控制器400可以存储有资源分布信息,该资源分布情况与该资源池200的空闲资源分布信息类似,可以指示多个物理机210上的空闲资源,还可以指示多个物理机210上已占用的资源。区别在于,资源池200的空闲资源分布信息是调度器100存储的,资源分布信息是容器控制器400存储的。在实际应用中,资源池200的空闲资源分布信息与资源分布信息可能一致,也可能不一致(例如,容器控制器400未及时更新资源分布信息)。
容器控制器400可以根据存储的资源分布信息以及待部署容器的总数量和容器的规格,确定用于部署容器的候选物理机。
容器控制器400可以确定一个或多个候选物理机,例如针对任一候选物理机,容器控制器400可以确定该候选物理机上待部署的容器数量和容器规格。
容器控制器400可以将候选物理机、候选物理机上待部署的容器数量以及容器的规格携带在容器调度请求中,向调度器100发送该容器调度请求。
从容器角度而言,对于任一待部署的容器,容器控制器400确定的候选物理机中可以包括一个或多个可以部署该容器的候选物理机。
这里需要说明的是,容器调度请求中包括候选物理机,是指包括可以指示用于部署容器的候选物理机的信息,例如该候选物理机的标识,候选物理机的标识的说明可以参见前述内容中物理机210的标识的说明,此处不再赘述。
调度器100在接收到该容器调度请求后,可以获取该调度器100保存的资源池200的空闲资源分布信息,调度器100从资源池200的空闲资源分布信息确定候选物理机的空闲资源分布情况。
调度器100在确定了候选物理机的空闲资源分布情况后,可以基于候选物理机的空闲资源分布情况,根据该候选物理机上待部署容器的数量以及容器的规格确定用于部署容器的物理机210,该物理机210上待部署的容器数量以及容器规格。
例如,调度器100可以根据该候选物理机上待部署容器的数量以及容器的规格确定候选物理机是否能够部署符合该候选物理机上待部署的容器数量以及容器规格的容器。调度器100确定出能够部署符合该候选物理机上待部署容器数量以及容器的规格的容器的候选物理机,之后对这些候选物理机进行进一步筛选,从容器角度而言,对于任一待部署的容器,调度器100可以从这些候选物理机中包括的一个或多个可以部署该容器的候选物理机选择物理机210作为用于部署该容器的物理机210。
需要说明的是,若调度器100在确定用于部署容器的物理机210时,若部分候选物理机所能部署的容器数量低于该候选物理机上待部署的容器数量,或部分候选物理机所能部署的容器规格与该候选物理机上待部署的容器规格不一致,调度器100可以直接向容器控制器400反馈调度失败响应,调度器100也可以确定用于部署部分容器的物理机210,在选择的部分容器的物理机210上部署容器,在这种情况下,调度器100可以将用于部署部分容器的物理机210信息(如能够部署的容器数量以及容器规格)反馈给容器控制器400,容器控制器400接收到用于部署部分容器的物理机210信息后,可以根据预设的策略确定是否部署部分容器,若确定部署容器则可以在物理机210上部署部分容器,若确定不部署部分容器,则可以通知用户容器调度失败。
调度器100确定了用于部署容器的物理机210,确定了物理机210上待部署的容器数量以及容器规格后,调度器100可以指示容器控制器400在该物理机210上部署容器,容器控制器400在调度器100的指示下在该物理机210上部署容器,部署的容器符合确定的物理机210上待部署的容器数量以及容器规格,也即,部署的容器数量与确定的物理机210上待部署的容器数量一致,部署的容器规格与确定的物理机210上待部署的容器规格一致。
示例性的,调度器100可以将用于部署容器的物理机210信息携带在容器调度响应中,发送给容器控制器400。该用于部署容器的物理机210信息包括该物理机210上待部署的容器数量以及容器规格。为了指示该物理机210,物理机210信息中还可以包括该物理机210的标识,该物理机210的标识的说明可以参见前述内容,此处不再赘述。
容器控制器400在接收到容器调度响应后,根据该容器调度响应中携带的用于部署容器的物理机210信息确定待部署容器的物理机210、物理机210上待部署的容器数量以及容器规格。
针对任一用于部署容器的物理机210,容器控制器400可以向该物理机210上的容器管理模块213发送容器创建指令,该容器创建指令中包括该物理机210上待部署的容器的数量以及容器的规格。本申请实施例并不限定该物理机210上待部署的容器的数量,可以为一个,也可以为多个,该物理机210上部署的容器的规格可以相同,也可以不同。
容器管理模块213在接收到容器创建指令后,在该物理机210上创建容器的方式可以参见方式一中的相关说明,具体可以参见前述说明,此处不再赘述。
容器管理模块213在该物理机210上创建容器后,可以向容器控制器400发送容器创建成功响应,容器创建成功响应还可以包括容器管理模块213所创建的容器所占用的资源。
容器控制器400在接收到该容器创建成功响应后,确定容器创建成功,可以更新该物理机210上部署的容器信息,例如,更新该物理机210上部署的容器的数量以及每个容器的规格。可以更新物理机210上空闲资源的分布情况,若将已占用的资源标记为非空闲。
容器管理模块213在该物理机210上创建容器后,可以向容器控制器400发送容器创建成功响应,容器创建成功响应还可以包括容器管理模块213所创建的容器数量以及容器所占用的资源。
容器控制器400在接收到该容器创建成功响应后,确定容器创建成功,可以更新资源分布信息,将该物理机210上容器已占用的资源标记为已占用,还可以更新该物理机210上部署的容器的数量以及每个容器的规格。容器控制器400还可以将该容器创建成功响应反馈至调度器100,该调度器100在接收到容器创建成功响应后,可以更新资源池200的空闲资源分布信息,将该物理机210上容器已占用的资源标记为已占用,还可以更新该物理机210上部署的容器的数量以及每个容器的规格。
方式三、调度器100可以将资源池200的空闲资源分布信息共享给容器控制器400,容器控制器400可以自行基于资源池200的空闲资源分布信息,根据待部署的容器的总数量和容器的规格选择用于部署容器的物理机210,在该物理机210上部署容器。
在这种方式下,容器控制器400在确定需要部署容器时,可以从调度器100获取资源池200的空闲资源分布信息,该资源池200的空闲资源分布信息的说明可以参见前述内容,此处不再赘述。
容器控制器400基于该资源池200的空闲资源分布信息,根据待部署的容器总数量以及容器规格从一个或多个物理机210中选择用于部署容器的物理机210,容器控制器400还可以确定选择的物理机210上待部署的容器数量以及容器规格。如果选择的物理机210的数量为多个,容器控制器400可以确定每个物理机210上待部署的容器数量以及容器规格。
容器控制器400在选择了用于部署容器的物理机210后,可以在该物理机210上部署容器。
本申请实施例并不限定容器控制器400在该物理机210上部署容器的方式,下面对本申请实施例提供的一种容器控制器400在物理机210上部署容器的方式进行说明:
容器控制器400在确定了用于部署容器的物理机210、以及该物理机210上待部署的容器的数量以及容器的规格后,针对任一用于部署容器的物理机210,容器控制器400可以向该物理机210上的容器管理模块213发送容器创建指令,该容器创建指令中包括待部署的容器的数量以及容器的规格。本申请实施例并不限定该物理机210上待部署的容器的数量,可以为一个,也可以为多个,该物理机210上部署的容器的规格可以相同,也可以不同。
容器管理模块213在接收到容器创建指令后,创建容器的方式可以参见方式一的相关说明,此处不再赘述。
容器管理模块213在该物理机210上创建容器后,可以向容器控制器400发送容器创建成功响应,容器创建成功响应还可以包括容器管理模块213所创建的容器所占用的资源。
容器控制器400在接收到该容器创建成功响应后,确定容器创建成功,还可以将该容器创建成功响应反馈至调度器100,该调度器100在接收到容器创建成功响应后,可以更新资源池200的空闲资源分布信息,将该物理机210上容器已占用的资源标记为已占用,还可以更新该物理机210上部署的容器的数量以及每个容器的规格。
基于与方法实施例同一发明构思,本申请实施例还提供了一种调度器,用于执行上述如图2所示的方法实施例中所述调度器执行的方法,相关特征可参见上述方法实施例,此处不再赘述,如图3所示,该调度器300包括传输单元301和处理单元302;
传输单元301,用于接收资源请求;
处理单元302,用于在确认资源请求要求虚拟机资源的情况下,从资源池选择用于部署虚拟机的物理机部署虚拟机,在确认资源请求要求容器资源的情况下,从资源池选择用于部署容器的物理机部署容器。
在一种可能的实施方式中,用于部署虚拟机的物理机与用于部署容器的物理机为同一物理机。
在一种可能的实施方式中,用于部署虚拟机的物理机与用于部署容器的物理机为不同物理机。
在一种可能的实施方式中,传输单元301在接收资源请求时可以从虚拟机控制器接收资源请求,也可以从容器控制器接收资源请求。
在一种可能的实施方式中,资源请求包括待部署的虚拟机总数量以及虚拟机规格;处理单元302在从资源池选择用于部署虚拟机的物理机部署虚拟机时,可以基于资源池的空闲资源分布信息,根据待部署的虚拟机总数量以及虚拟机规格确定用于部署虚拟机的物理机、物理机上待部署的虚拟机数量以及虚拟机规格,其中,空闲资源分布信息指示多个物理机上空闲资源的分布情况;之后,指示虚拟机控制器在物理机上部署虚拟机。其中,物理机上部署的虚拟机符合物理机上待部署的虚拟机数量以及虚拟机规格。
在一种可能的实施方式中,资源请求包括待部署的容器总数量以及容器的规格;处理单元302在从资源池选择用于部署容器的物理机部署容器时,可以基于资源池的空闲资源分布信息,根据待部署的容器总数量以及容器的规格确定用于部署容器的物理机、物理机上待部署的容器数量以及容器的规格,空闲资源分布信息指示多个物理机上空闲资源的分布情况;之后,指示容器控制器在物理机上部署容器,其中,物理机上部署的容器符合物理机上待部署的容器数量以及容器的规格。
在一种可能的实施方式中,资源请求包括用于部署的容器的候选物理机、候选物理机上待部署的容器数量以及容器的规格;处理单元302在从资源池选择用于部署容器的物理机部署容器,可以基于资源池的空闲资源分布信息,确定候选物理机的空闲资源分布情况,其中,空闲资源分布信息指示多个物理机上空闲资源的分布情况;之后,基于候选物理机的空闲资源分布情况,根据候选物理机部署的容器数量以及容器的规格确定用于部署容器的物理机、物理机上待部署的容器数量以及容器的规格;指示容器控制器在物理机上部署容器,其中,物理机上部署的容器符合物理机上待部署的容器数量以及容器的规格。
在一种可能的实施方式中,处理单元302在从资源池选择用于部署容器的物理机部署容器时,可以向容器控制器发送资源池的空闲资源分布信息,其中,空闲资源分布信息指示多个物理机上空闲资源的分布情况。
需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
在一个简单的实施例中,本领域的技术人员可以想到如图2所示的实施例中调度器可采用图4所示的形式。
如图4所示的装置400,包括至少一个处理器401、存储器402,可选的,还可以包括通信接口403。
存储器402可以是易失性存储器,例如随机存取存储器;存储器也可以是非易失性存储器,例如只读存储器,快闪存储器,硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器402是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器402可以是上述存储器的组合。
存储器402可以是易失性存储器,例如随机存取存储器;存储器也可以是非易失性存储器,例如只读存储器,闪存,硬盘(hard disk drive,HDD)或固态硬盘(solid-statedrive,SSD)、或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器402可以是上述存储器的组合。
本申请实施例中不限定上述处理器401以及存储器402之间的具体连接介质。
处理器401可以为CPU,该处理器401还可以是其他通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件、人工智能芯片、片上芯片等。通用处理器可以是微处理器或者是任何常规的处理器等。具有数据收发功能,能够与其他设备进行通信,在如图1装置中,也可以设置独立的数据收发模块,例如通信接口403,用于收发数据;处理器401在与其他设备进行通信时,可以通过通信接口403进行数据传输,如从接收资源请求。
当所述调度器采用图4所示的形式时,图4中的处理器401可以通过调用存储器402中存储的计算机执行指令,使得所述检测装置可以执行上述任一方法实施例中的所述调度器执行的方法。
具体的,图3的传输单元301、处理单元302的功能/实现过程均可以通过图4中的处理器401调用存储器402中存储的计算机执行指令来实现。或者,图3中的处理单元302的功能/实现过程可以通过图4中的处理器401调用存储器402中存储的计算机执行指令来实现,图3的传输单元301的功能/实现过程可以通过图4中的通信接口403来实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (27)
1.一种虚拟机和容器混合调度系统,其特征在于,包括调度器和资源池,所述资源池包括多个物理机;
所述调度器,用于接收资源请求;
所述调度器,还用于在确认所述资源请求要求虚拟机资源的情况下,从所述资源池选择用于部署虚拟机的物理机部署虚拟机,在确认所述资源请求要求容器资源的情况下,从所述资源池选择用于部署容器的物理机部署容器。
2.根据权利要求1所述的系统,其特征在于,所述用于部署虚拟机的物理机与所述用于部署容器的物理机为同一物理机。
3.根据权利要求1所述的系统,其特征在于,所述用于部署虚拟机的物理机与所述用于部署容器的物理机为不同物理机。
4.根据权利要求1至3任一项所述的系统,其特征在于,所述调度器从虚拟机控制器或容器控制器接收所述资源请求。
5.根据权利要求1至4任一项所述的系统,其特征在于,所述系统还包括虚拟机控制器,所述资源请求包括待部署的虚拟机总数量以及虚拟机规格;所述调度器从所述资源池选择用于部署虚拟机的物理机部署虚拟机时,具体用于:
基于所述资源池的空闲资源分布信息,根据所述待部署的虚拟机总数量以及虚拟机规格确定用于部署虚拟机的物理机、所述物理机上待部署的虚拟机数量以及虚拟机规格,其中,所述空闲资源分布信息指示所述多个物理机上空闲资源的分布情况;
指示所述虚拟机控制器在所述物理机上部署虚拟机,其中,所述物理机上部署的虚拟机符合所述物理机上待部署的虚拟机数量以及虚拟机规格;
所述虚拟机控制器,用于根据所述调度器的指示在所述物理机上部署虚拟机。
6.根据权利要求1至4任一项所述的系统,其特征在于,所述系统还包括容器控制器,所述资源请求包括待部署的容器总数量以及容器的规格;所述调度器从所述资源池选择用于部署容器的物理机部署容器时,具体用于:
基于所述资源池的空闲资源分布信息,根据所述待部署的容器总数量以及容器的规格确定用于部署容器的物理机、所述物理机上待部署的容器数量以及容器的规格,所述空闲资源分布信息指示所述多个物理机上空闲资源的分布情况;
指示所述容器控制器在所述物理机上部署容器,其中,所述物理机上部署的容器符合所述物理机上待部署的容器数量以及容器的规格;
所述容器控制器,用于根据所述调度器的指示在所述物理机上部署容器。
7.根据权利要求1至4任一项所述的系统,其特征在于,所述系统还包括容器控制器,所述资源请求包括用于部署的容器的候选物理机、所述候选物理机上待部署的容器数量以及容器的规格;所述调度器从所述资源池选择用于部署容器的物理机部署容器时,具体用于:
基于所述资源池的空闲资源分布信息,确定所述候选物理机的空闲资源分布情况,其中,所述空闲资源分布信息指示所述多个物理机上空闲资源的分布情况;
基于所述候选物理机的空闲资源分布情况,根据所述候选物理机部署的容器数量以及容器的规格确定用于部署容器的物理机、所述物理机上待部署的容器数量以及容器的规格;
指示所述容器控制器在所述物理机上部署容器,其中,所述物理机上部署的容器符合所述物理机上待部署的容器数量以及容器的规格;
所述容器控制器,用于根据所述调度器的指示在所述物理机上部署容器。
8.根据权利要求1至4任一项所述的系统,其特征在于,所述系统还包括容器控制器,所述调度器从所述资源池选择用于部署容器的物理机部署容器时,具体用于:
向所述容器控制器发送所述资源池的空闲资源分布信息,其中,所述空闲资源分布信息指示所述多个物理机上空闲资源的分布情况;
所述容器控制器,用于从所述调度器接收所述资源池的空闲资源分布信息;
基于所述资源池的空闲资源分布信息,根据所述待部署的容器总数量以及容器的规格确定用于部署容器的物理机、所述物理机上待部署的容器数量以及容器的规格;
在所述物理机上部署容器,所述物理机上部署的容器符合所述物理机上待部署的容器数量以及容器的规格。
9.根据权利要求1至4任一项所述的系统,其特征在于,若所述用于部署虚拟机的物理机与所述用于部署容器的物理机为同一物理机,所述物理机包括虚拟机管理模块、容器管理模块以及代理模块:
所述虚拟机管理模块,还用于向所述代理模块发送虚拟机资源分配请求,用于请求为所述物理机中待部署的虚拟机分配资源;
所述容器管理模块,还用于向所述代理模块发送容器资源分配请求,用于请求为所述物理机中待部署的容器分配资源;
所述代理模块,还用于基于所述物理机的空闲资源,为所述待部署的虚拟机和所述待部署的容器分配资源;以及向所述虚拟机管理模块反馈为所述待部署的虚拟机分配的资源;以及向所述容器管理模块反馈为所述待部署的容器分配的资源;
所述虚拟机管理模块,还用于利用为所述待部署的虚拟机分配的资源创建虚拟机;
所述容器管理模块,还用于利用为所述待部署的容器分配的资源创建容器。
10.一种虚拟机和容器混合调度方法,其特征在于,所述方法应用于调度器,包括:
接收资源请求;
在确认所述资源请求要求虚拟机资源的情况下,从所述资源池选择用于部署虚拟机的物理机部署虚拟机,在确认所述资源请求要求容器资源的情况下,从所述资源池选择用于部署容器的物理机部署容器。
11.根据权利要求10所述的方法,其特征在于,所述用于部署虚拟机的物理机与所述用于部署容器的物理机为同一物理机。
12.根据权利要求10所述的方法,其特征在于,所述用于部署虚拟机的物理机与所述用于部署容器的物理机为不同物理机。
13.根据权利要求10至12任一项所述的方法,其特征在于,所述接收资源请求包括:
从虚拟机控制器或容器控制器接收所述资源请求。
14.根据权利要求10至13任一项所述的方法,其特征在于,所述资源请求包括待部署的虚拟机总数量以及虚拟机规格;所述从所述资源池选择用于部署虚拟机的物理机部署虚拟机,具体包括:
基于所述资源池的空闲资源分布信息,根据所述待部署的虚拟机总数量以及虚拟机规格确定用于部署虚拟机的物理机、所述物理机上待部署的虚拟机数量以及虚拟机规格,其中,所述空闲资源分布信息指示所述多个物理机上空闲资源的分布情况;
指示所述虚拟机控制器在所述物理机上部署虚拟机,其中,所述物理机上部署的虚拟机符合所述物理机上待部署的虚拟机数量以及虚拟机规格。
15.根据权利要求10至13任一项所述的方法,其特征在于,所述资源请求包括待部署的容器总数量以及容器的规格;所述从所述资源池选择用于部署容器的物理机部署容器,具体包括:
基于所述资源池的空闲资源分布信息,根据所述待部署的容器总数量以及容器的规格确定用于部署容器的物理机、所述物理机上待部署的容器数量以及容器的规格,所述空闲资源分布信息指示所述多个物理机上空闲资源的分布情况;
指示所述容器控制器在所述物理机上部署容器,其中,所述物理机上部署的容器符合所述物理机上待部署的容器数量以及容器的规格。
16.根据权利要求10至13任一项所述的方法,其特征在于,所述资源请求包括用于部署的容器的候选物理机、所述候选物理机上待部署的容器数量以及容器的规格;所述从所述资源池选择用于部署容器的物理机部署容器,具体包括:
基于所述资源池的空闲资源分布信息,确定所述候选物理机的空闲资源分布情况,其中,所述空闲资源分布信息指示所述多个物理机上空闲资源的分布情况;
基于所述候选物理机的空闲资源分布情况,根据所述候选物理机部署的容器数量以及容器的规格确定用于部署容器的物理机、所述物理机上待部署的容器数量以及容器的规格;
指示所述容器控制器在所述物理机上部署容器,其中,所述物理机上部署的容器符合所述物理机上待部署的容器数量以及容器的规格。
17.根据权利要求10至13任一项所述的方法,其特征在于,所述从所述资源池选择用于部署容器的物理机部署容器,具体包括:
向所述容器控制器发送所述资源池的空闲资源分布信息,其中,所述空闲资源分布信息指示所述多个物理机上空闲资源的分布情况。
18.一种调度器,其特征在于,所述调度器包括:
传输单元,用于接收资源请求;
处理单元,用于在确认所述资源请求要求虚拟机资源的情况下,从所述资源池选择用于部署虚拟机的物理机部署虚拟机,在确认所述资源请求要求容器资源的情况下,从所述资源池选择用于部署容器的物理机部署容器。
19.根据权利要求18所述的调度器,其特征在于,所述用于部署虚拟机的物理机与所述用于部署容器的物理机为同一物理机。
20.根据权利要求18所述的调度器,其特征在于,所述用于部署虚拟机的物理机与所述用于部署容器的物理机为不同物理机。
21.根据权利要求18至20任一项所述的调度器,其特征在于,所述传输单元在接收资源请求时,具体用于:
从虚拟机控制器或容器控制器接收所述资源请求。
22.根据权利要求18至21任一项所述的调度器,其特征在于,所述资源请求包括待部署的虚拟机总数量以及虚拟机规格;所述处理单元在从所述资源池选择用于部署虚拟机的物理机部署虚拟机时,具体用于:
基于所述资源池的空闲资源分布信息,根据所述待部署的虚拟机总数量以及虚拟机规格确定用于部署虚拟机的物理机、所述物理机上待部署的虚拟机数量以及虚拟机规格,其中,所述空闲资源分布信息指示所述多个物理机上空闲资源的分布情况;
指示所述虚拟机控制器在所述物理机上部署虚拟机,其中,所述物理机上部署的虚拟机符合所述物理机上待部署的虚拟机数量以及虚拟机规格。
23.根据权利要求18至21任一项所述的调度器,其特征在于,所述资源请求包括待部署的容器总数量以及容器的规格;所述处理单元在从所述资源池选择用于部署容器的物理机部署容器时,具体用于:
基于所述资源池的空闲资源分布信息,根据所述待部署的容器总数量以及容器的规格确定用于部署容器的物理机、所述物理机上待部署的容器数量以及容器的规格,所述空闲资源分布信息指示所述多个物理机上空闲资源的分布情况;
指示所述容器控制器在所述物理机上部署容器,其中,所述物理机上部署的容器符合所述物理机上待部署的容器数量以及容器的规格。
24.根据权利要求18至21任一项所述的调度器,其特征在于,所述资源请求包括用于部署的容器的候选物理机、所述候选物理机上待部署的容器数量以及容器的规格;所述处理单元在从所述资源池选择用于部署容器的物理机部署容器时,具体用于:
基于所述资源池的空闲资源分布信息,确定所述候选物理机的空闲资源分布情况,其中,所述空闲资源分布信息指示所述多个物理机上空闲资源的分布情况;
基于所述候选物理机的空闲资源分布情况,根据所述候选物理机部署的容器数量以及容器的规格确定用于部署容器的物理机、所述物理机上待部署的容器数量以及容器的规格;
指示所述容器控制器在所述物理机上部署容器,其中,所述物理机上部署的容器符合所述物理机上待部署的容器数量以及容器的规格。
25.根据权利要求18至21任一项所述的调度器,其特征在于,所述处理单元在从所述资源池选择用于部署容器的物理机部署容器时,具体用于:
向所述容器控制器发送所述资源池的空闲资源分布信息,其中,所述空闲资源分布信息指示所述多个物理机上空闲资源的分布情况。
26.一种装置,其特征在于,包括存储器和处理器;所述存储器存储有程序指令,所述处理器运行所述程序指令以执行权利要求10~17任一所述的方法。
27.一种计算机可读存储介质,其特征在于,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如权利要求10~17任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010598237.XA CN113849259A (zh) | 2020-06-28 | 2020-06-28 | 一种虚拟机和容器混合调度系统、方法、调度器及装置 |
PCT/CN2021/091733 WO2022001353A1 (zh) | 2020-06-28 | 2021-04-30 | 一种虚拟机和容器混合调度系统、方法、调度器及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010598237.XA CN113849259A (zh) | 2020-06-28 | 2020-06-28 | 一种虚拟机和容器混合调度系统、方法、调度器及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113849259A true CN113849259A (zh) | 2021-12-28 |
Family
ID=78972123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010598237.XA Pending CN113849259A (zh) | 2020-06-28 | 2020-06-28 | 一种虚拟机和容器混合调度系统、方法、调度器及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113849259A (zh) |
WO (1) | WO2022001353A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107832143B (zh) * | 2017-10-17 | 2020-11-03 | 北京京东尚科信息技术有限公司 | 一种物理机资源的处理方法和装置 |
CN108287748B (zh) * | 2017-10-25 | 2021-10-22 | 国云科技股份有限公司 | 一种虚拟机与容器并行调度方法 |
US11126461B2 (en) * | 2018-07-12 | 2021-09-21 | Vmware, Inc. | Techniques for container scheduling in a virtual environment |
CN109885377B (zh) * | 2018-11-23 | 2023-04-28 | 中国银联股份有限公司 | 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统 |
CN110825494A (zh) * | 2019-11-01 | 2020-02-21 | 北京京东尚科信息技术有限公司 | 物理机调度方法及装置、计算机可存储介质 |
CN111708632A (zh) * | 2020-05-19 | 2020-09-25 | 中国人民财产保险股份有限公司 | 一种云资源管理方法及装置 |
-
2020
- 2020-06-28 CN CN202010598237.XA patent/CN113849259A/zh active Pending
-
2021
- 2021-04-30 WO PCT/CN2021/091733 patent/WO2022001353A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022001353A1 (zh) | 2022-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109302483B (zh) | 一种应用程序的管理方法及系统 | |
CN110647394B (zh) | 一种资源分配方法、装置及设备 | |
CN107547596B (zh) | 一种基于Docker的云平台控制方法及装置 | |
CN110896355B (zh) | 一种网络切片的选择方法及装置 | |
CN110611926B (zh) | 一种告警的方法及装置 | |
CN106921977B (zh) | 一种基于业务流的服务质量规划方法、装置及系统 | |
CN105335229B (zh) | 一种业务资源的调度方法和装置 | |
CN113296792B (zh) | 存储方法、装置、设备、存储介质和系统 | |
US10993127B2 (en) | Network slice instance management method, apparatus, and system | |
CN110049504B (zh) | 一种会话管理方法及装置 | |
CN104144073A (zh) | 主从装置环境的部署方法与主从装置环境的部署系统 | |
CN105429938A (zh) | 一种资源配置方法及装置 | |
CN110716787A (zh) | 容器地址设置方法、设备和计算机可读存储介质 | |
CN109358967A (zh) | 一种me平台app实例化迁移方法及服务器 | |
CN113849260A (zh) | 一种实例的处理核分配方法及装置 | |
CN113296926B (zh) | 一种资源分配方法、计算设备及存储介质 | |
WO2016095524A1 (zh) | 资源分配方法及装置 | |
CN112948050A (zh) | 一种部署pod的方法及装置 | |
CN113961335A (zh) | 资源调度方法、资源调度系统及设备 | |
CN113535319A (zh) | 一种实现多rdma网卡虚拟化的方法、设备及存储介质 | |
CN113285843B (zh) | 容器网络配置方法、装置、计算机可读介质及电子设备 | |
CN111163140A (zh) | 资源获取和分配的方法、装置和计算机可读存储介质 | |
CN112099728B (zh) | 一种执行写操作、读操作的方法及装置 | |
CN113849259A (zh) | 一种虚拟机和容器混合调度系统、方法、调度器及装置 | |
WO2014079050A1 (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220217 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TA01 | Transfer of patent application right |