掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本申请实施例涉及云计算技术领域,尤其涉及一种部署pod的方法及装置。

背景技术

各种虚拟机技术开启了云计算时代,而容器作为下一代虚拟化技术,正在逐渐兴起。容器是一个虚拟环境容器,可以看做一种轻量级的虚拟机,两者都可以对应用进行隔离。但容器不同于虚拟机,两者的主要区别在于:虚拟机依赖于虚拟机管理系统(Hypervisor),利用Hypervisor,在主操作系统之上运行多个不同的从操作系统,每个从操作系统可以看作是一个虚拟机,而容器由容器引擎管理。虚拟机启动需要数分钟,而容器可以在数毫秒内启动。

目前,在容器编排领域,最流行的是kubernetes(K8S)容器集群管理系统(以下简称管理系统)。K8S可以构建容器的部署服务,pod是K8S的基本部署单位,一个pod由一组工作在同一节点的容器构成。

在现有技术中,管理人员向管理系统下发部署pod的指令,指令中可以包括:pod的数量,每个pod包含的容器的数量,每个容器在工作时使用的每种类型的资源的最大值等信息。以部署一个pod为例,说明为pod分配资源的方式:针对每种类型的资源,管理系统确定pod包含的多个容器在工作时使用该种类型的资源的最大值的和值,所述和值即pod使用该种类型的资源的理论资源值。管理系统挑选合适的业务节点部署pod,业务节点为部署的pod分配对应理论资源值的资源。例如一个pod包括两个容器,一个容器a在工作时,理论上最多使用2个cpu,另一容器b在工作时,理论上最多使用1个cpu,则业务节点为该pod分配3个cpu。如果两个容器在不同时间点使用资源,理论上业务节点为该pod分配2个cpu就足够容器a和容器b够用,则按照每个容器在工作时使用的资源的最大值来分配3个cpu,会造成资源浪费。

发明内容

本申请实施例提供一种部署pod的方法及装置,用以解决目前按照pod中每个容器在工作时使用的资源的最大值来为pod分配资源,而造成资源浪费的问题。

第一方面,提供了一种部署pod的方法,可以应用于管理节点。管理节点可以接收管理人员或租户或者用户下发的部署调度域的指令,所述指令包括调度域占用的每种类型的资源的数量,所述调度域占用的资源用于至少一个pod使用。然后,管理节点选择用于部署调度域的业务节点,并向所述业务节点发送部署调度域的指令,所述指令包括调度域占用的每种类型的资源的数量。管理节点接收部署pod的指令,所述指令包括pod的数量,每个pod包括的容器的数量,以及调度域的关联信息。进一步地,管理节点根据所述调度域的关联信息,向所述业务节点发送部署pod的指令,所述指令包括pod的数量,每个pod包括的容器的数量,以及用于所述pod使用资源的调度域的标识。需要注意的是,管理节点接收部署调度域的指令与接收部署pod的指令的先后顺序可以不限制。

通过先在业务节点上部署调度域,为pod预留一部分资源。进而,在部署pod时,使pod使用调度域中的资源,不必再按照pod中每个容器在工作时使用的资源的最大值来为pod分配资源。多个pod中的容器均可以使用调度域中的资源,从而减少资源的浪费。

在一种可能的实现中,针对所述用于所述pod使用的调度域占用的任一类型的资源,该资源的数量小于所有的所述容器在工作时需要该类型的资源的最大值的和值,且不小于任一所述容器在工作时需要该类型的资源的最大值,保证能够支持所有的所述容器在不同时间点工作时的正常工作。以进一步减少资源浪费。

在一种可能的实现中,所述调度域的关联信息为调度域的标识或调度域的类型或业务节点的标识。则管理节点可以根据调度域的标识或调度域的类型或业务节点的标识,确定出部署pod的业务节点以及调度域。通过多种方式,可以灵活地确定出用于部署pod的业务节点以及调度域,提高体验效果。

在一种可能的实现中,管理节点在向所述业务节点发送部署调度域的指令之后,可以对资源列表中所述业务节点中每种类型的资源的剩余量进行更新,以及对资源池中每种类型的资源的剩余量进行更新,资源池中包括多个业务节点。以实现正确记录资源的使用情况,进一步提高资源利用率。

在一种可能的实现中,管理节点可以根据资源最优策略,在多个业务节点中选择用于部署调度域的业务节点;或者,管理节点接收到的部署调度域的指令中还包括业务节点的标识,管理节点可以将所述标识对应的业务节点作为用于部署调度域的业务节点。

在一种可能的实现中,如果调度域占用的每种类型的资源的数量包括调度域占用的cpu的数量;管理节点接收到的部署调度域的指令还可以包括:用于pod中的容器隔离使用的cpu的数量和/或用于pod中的容器共享使用的cpu的数量。管理节点接收的部署pod的指令也可以包括:与其它容器隔离使用cpu的第一容器标识。这样,业务节点将调度域中的对应数量的cpu分配给第一容器独享,第一容器与其它容器不会共享这些cpu,可以提高第一容器的性能。

在一种可能的实现中,管理节点可以接收删除调度域的指令,所述指令包括调度域的标识。然后管理节点确定是否存在pod使用所述标识的调度域中的资源;如果存在,则发出不能删除所述调度域的提示信息;如果不存在,则可以向部署所述调度域的业务节点发送删除所述调度域的指令。管理节点向业务节点发送的删除调度域的指令中包括待删除的调度域的标识。

第二方面,提供了一种部署pod的方法,可以应用于业务节点。业务节点可以接收管理节点发送的部署调度域的指令,所述指令包括调度域占用的每种类型的资源的数量,然后所述业务节点根据所述部署调度域的指令,部署所述调度域,部署的所述调度域中包括对应数量的对应类型的资源。业务节点还可以接收管理节点发送的部署pod的指令,所述部署pod的指令可以包括pod的数量,每个pod包括的容器的数量,以及用于所述pod使用资源的调度域的标识。然后业务节点可以部署对应数量的pod,每个pod包括对应数量的容器。并且业务节点控制任一所述容器在工作时使用所述调度域中的资源。

通过先在业务节点上部署调度域,为pod预留一部分资源。进而,在部署pod时,使pod使用调度域中的资源,不必再按照pod中每个容器在工作时使用的资源的最大值来为pod分配资源。多个pod中的容器均可以使用调度域中的资源,从而减少资源的浪费。

在一种可能的实现中,针对所述用于所述pod使用的调度域占用的任一类型的资源,该资源的数量小于所有的所述容器在工作时需要该类型的资源的最大值的和值,且不小于任一所述容器在工作时需要该类型的资源的最大值,保证能够支持所有的所述容器在不同时间点工作时的正常工作。以进一步减少资源量浪费。

在一种可能的实现中,如果调度域占用的每种类型的资源的数量包括调度域占用的cpu的数量;业务节点接收到的部署调度域的指令还可以包括:用于pod中的容器隔离使用的cpu的数量和/或用于pod中的容器共享使用的cpu的数量。业务节点接收的部署pod的指令也可以包括:与其它容器隔离使用cpu的第一容器标识。接而,所述业务节点控制所述第一容器在工作时使用所述调度域中的用于隔离使用的cpu,并控制第一容器外的其它容器在工作时使用所述调度域中除了用于隔离使用的cpu的其它cpu。这样,业务节点将调度域中的对应数量的cpu分配给第一容器独享,第一容器与其它容器不会共享这些cpu,可以提高第一容器的性能。

第三方面,提供了一种部署pod的装置,所述通信具有实现上述第一方面及第一方面任一可能的实现中的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的功能模块。

第四方面,提供了一种部署pod的装置,所述通信具有实现上述第二方面及第二方面任一可能的实现中的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的功能模块。

第五方面,提供了一种部署pod的装置,该装置可以为上述方法实施例中的管理节点,或者为设置在管理节点中的芯片。该装置包括通信接口以及处理器,可选的,还包括存储器。其中,该存储器用于存储计算机程序或指令,处理器分别与存储器和通信接口耦合,当处理器执行所述计算机程序或指令时,使装置通过所述通信接口执行上述第一方面及第一方面任一可能的实现中由管理节点执行的方法。

第六方面,提供了一种部署pod的装置,该装置可以为上述方法实施例中的业务节点,或者为设置在业务节点中的芯片。该装置包括通信接口以及处理器,可选的,还包括存储器。其中,该存储器用于存储计算机程序或指令,处理器分别与存储器和通信接口耦合,当处理器执行所述计算机程序或指令时,使装置通过所述通信接口执行上述第二方面及第二方面任一可能的实现中由业务节点执行的方法。

第七方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面及第一方面任一可能的实现中由管理节点执行的方法。

第八方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第二方面及第二方面任一可能的实现中由业务节点执行的方法。

第九方面,本申请提供了一种芯片系统,该芯片系统包括处理器和存储器,所述处理器、所述存储器之间电耦合;所述存储器,用于存储计算机程序指令;所述处理器,用于执行所述存储器中的部分或者全部计算机程序指令,当所述部分或者全部计算机程序指令被执行时,用于实现上述第一方面及第一方面任一可能的实现的方法中管理节点的功能。

在一种可能的设计中,所述芯片系统还可以包括通信接口,所述通信接口,用于发送所述处理器处理后的信号,或者接收输入给所述处理器的信号。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。

第十方面,本申请提供了一种芯片系统,该芯片系统包括处理器和存储器,所述处理器、所述存储器之间电耦合;所述存储器,用于存储计算机程序指令;所述处理器,用于执行所述存储器中的部分或者全部计算机程序指令,当所述部分或者全部计算机程序指令被执行时,用于实现上述第二方面及第二方面任一可能的实现的方法中业务节点的功能。

在一种可能的设计中,所述芯片系统还可以包括通信接口,所述通信接口,用于发送所述处理器处理后的信号,或者接收输入给所述处理器的信号。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。

第十一方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,当该计算机程序被运行时,上述第一方面及第一方面任一可能的实现中由管理节点执行的方法被执行。

第十二方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,当该计算机程序被运行时,上述第一方面及第一方面任一可能的实现中由业务节点执行的方法被执行。

第十三方面,提供了一种部署pod的系统,所述系统包括:执行上述第一方面及第一方面任一可能的实现中的方法的管理节点,以及执行上述第二方面及第二方面任一可能的实现中的方法的业务节点。

附图说明

图1为本申请实施例中提供的一种云计算系统;

图2a、图2b、图2c分别为本申请实施例中提供的一种为pod分配资源的示意图;

图3为本申请实施例中提供的一种部署pod的流程示意图;

图4为本申请实施例中提供的一种部署调度域的流程示意图;

图5为本申请实施例中提供的一种部署pod的流程示意图;

图6、图7、图8、图9分别为本申请实施例中提供的一种部署pod的装置结构图。

具体实施方式

下面将结合附图,对本申请实施例进行详细描述。

为便于理解本申请实施例,以下对本申请实施例的部分用语进行解释说明,以便于本领域技术人员理解。

1)、k8s是基于docker的开元容器集群管理系统,可以构建一个容器的调度服务,目的是让用户通过k8s集群来进行云端容器集群的管理,而无需用户进行复杂的设置工作。系统会自动选取合适的工作节点来执行具体的容器集群调度处理工作。其核心概念是容器仓(container pod)。一个pod由工作在同一工作节点上的一组容器构成。pod是k8s的最基本的部署单元,可以包括多个容器container,逻辑上标识某种应用的一个实例。如一个web应用由前端、后端和数据库三个组件构成,这三个组件运行在各自的容器中,针对这个实例可以常见包含三个container的pod。

2)调度域,又称资源集合,资源池等,可以包含各种类型的资源、例如cpu资源、存储资源(例如卷信息)、网络资源(例如网络空间)、内存资源(例如大页)。

本申请中的“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

本申请中所涉及的多个,是指两个或两个以上。

在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。

另外,在本申请实施例中,“示例的”一词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或实现方案不应被解释为比其它实施例或实现方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。

本申请实施例提供一种部署pod的方法及装置,其中,方法、装置是基于同一技术构思的,由于方法、装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。

本申请实施例的技术方案可以应用于各种云化的通信系统,例如:长期演进(longterm evolution,LTE)系统,全球互联微波接入(worldwide interoperability formicrowave access,WiMAX)通信系统,未来的第五代(5th Generation,5G)系统,如新一代无线接入技术(new radio access technology,NR),及未来的通信系统等。

为便于理解本申请实施例,接下来对本请的应用场景进行介绍,本申请实施例描述的业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

如图1所示,包括管理节点(master node)和业务节点(worker node)。管理节点上可以部署容器云管理平台(manage platform)(以下简称管理系统),例如云管理平台为k8s管理系统,该管理系统可以根据业务需求,选择合适的业务节点部署容器。

具体的,管理系统可以看作是对容器生命周期进行管理的一组进程。例如包括控制模块(controller)、调度模块(scheduler)、应用程序编程接口服务(applicationprogramming interface server,API server)模块等。这些进程实现了整个集群的资源管理、pod部署、系统建立等管理功能。

API server模块提供了资源对象的唯一操作入口,即为用户提供功能的接口模块,其他所有组件都必须通过其提供的API接口来操作资源数据,通过对相关的资源数据监听,完成相关的网元功能。

控制模块负责对各种容器模型的统一管控,例如对容器模型进行CRUD(增加Create、读取查询Read、更新Update和删除Delete)操作。容器模型例如可以指示以下信息中的一种或多种:pod中包括的容器的数量,容器中运行的应用程序的类型,容器在工作时使用的每种类型的资源的最大值,哪个容器需要独占cpu等信息。

调度模块负责为部署的单元(容器或pod)选择合适的业务节点。

在每个业务节点上运行有代理(agent)、容器引擎(container engine)等组件,负责对本节点上的pod的生命周期进行管理。例如agent组件负责业务节点上的pod的部署、修改、监控、删除等生命周期管理,同时负责定时向管理节点中的API server模块上报本节点的状态信息。容器引擎组件可以负责部署容器,容器引擎组件例如可以是Docker组件。

以管理系统为k8s为例进行说明,由于pod是k8s的基本部署单位,用户或者租户或者管理人员可以根据业务需求,向管理系统下发部署pod的指令。指令中可以包括:pod的数量,每个pod包含的容器的数量,每个容器在工作时使用的每种类型的资源的最大值等信息。管理系统确定一个pod包含的多个容器在工作时使用每种类型的资源的最大值的和值,并挑选合适的业务节点部署pod。业务节点为部署的pod分配所述最大值的和值的资源。

以pod在工作时使用的cpu资源为例进行说明:业务节点在为pod分配cpu资源时,实际上是为pod分配cpu的使用时间。例如,业务节点为pod分配3个cpu,可以理解为业务节点为pod分配3个cpu的使用时间。

如图2a所示,业务节点上部署两个pod,分别为pod1和pod2,任一个pod包括两个容器,容器a1和a2在工作时,分别最多使用2个cpu,容器b1和b2在工作时,分别最多使用1个cpu,则业务节点为两个pod分别分配3个cpu。假设业务节点上包括11个cpu。

在一种示例中,业务节点为pod1分配3个cpu,分别为cpu1、cpu2和cpu3,并为pod2分配的3个cpu,分别为cpu4、cpu5和cpu6。容器使用为其分配的cpu全部的运行时间。在该示例中,业务节点为不同的pod分配的资源是相互隔离的,在任何时间,一个pod中的容器不能使用为其他pod分配的资源。即pod1中的容器不能使用为pod2分配的cpu4、cpu5和cpu6,容器a1可以使用为pod1分配的cpu1、cpu2和cpu3中的任意两个cpu,例如cpu1和cpu2,容器b1可以使用pod1分配的cpu1、cpu2和cpu3中的任意一个cpu,例如cpu1或cpu2或cpu3。同理,pod2中的容器不能使用为pod1分配的cpu1、cpu2和cpu3,容器a2可以使用为pod2分配的cpu4、cpu5和cpu6中的任意两个cpu,容器b2可以使用pod2分配的cpu4、cpu5和cpu6中的任意一个cpu。

在另一种示例中,业务节点为不同的pod分配的资源在物理上是共享的,不同的pod使用该共享的资源的时间不同。具体的,业务节点可以指定pod1能够使用的cpu组,该cpu组中包括的cpu的数量等于pod1需要的cpu的最大数量。例如业务节点为pod分配cpu1-cpu6,并且还可以指示pod1分别使用cpu1至cpu6的运行时间的50%,6个50%即为300%,也就是pod1使用cpu的时间为300%,即为pod1分配了3个cpu。同理,业务节点可以指示pod2在另外的50%的时间里使用cpu1-cpu6,也相当于为pod2分配了3个cpu。

在实际应用中,由于一个pod中不同的容器中运行的应用不同,则一个pod中的多个容器的工作时间可能是不同的。这样,在一个pod中的至少两个容器在不同时间点使用资源时,按照每个容器在工作时使用的资源的最大值为pod分配资源,则会造成资源浪费。另外,一个pod中的多个容器在工作时,一般不会使用所述最大值的资源。并且,即使某一个pod中的容器在工作时使用的资源达到最大值,一般也不会存在多个pod中容器均达到最大值。则以上按照每个容器在工作时使用的资源的最大值来为pod分配资源分配,会造成资源浪费。

有鉴于此,本申请提出了在业务节点上部署调度域的方案,调度域可以看作是一个资源集合,可以包括多种类型的资源,例如包括计算资源、内存资源、网络带宽资源、磁盘资源等。调度域中的资源可以由一个pod或多个pod中的容器使用。这样,多个pod中的容器可以使用同一个资源集合中的资源,可以提高资源利用率。例如图2b所示,在图2a的基础上,业务节点部署调度域1,调度域1占用cpu1-cpu5,pod1和pod2中的容器一般会在不同时间点工作,pod1和pod2中的容器在工作时均可以使用调度域1中的cpu资源。

在提出部署调度的方案的基础上,图1所示的管理节点和业务节点中也应增加关于调度域的相关功能。

例如,管理节点上可以设置支持调度域的CRUD接口,例如将该接口定义为1F1接口,该接口可以执行CRUD指令。管理节点中的控制模块还可以负责各种调度域模型的统一管控,为了方便描述,可以将这部分功能定义为控制子模块。调度域模型可以指示调度域的资源信息,例如占用的资源类型,每种类型的资源占用多少数量。调度域模型还可以指示调度域中的资源为哪些类型的应用程序所使用等信息。管理节点中的调度模块还可以为即将部署的调度域选择合适的业务节点,为了方便描述,可以将这部分功能定义为调度子模块。进一步地,为了使即将部署的pod亲和到对应的调度域上,容器模型还可以指示该pod模型亲和的调度域模型。

再例如,业务节点中的代理agent组件还可以负责调度域中资源的管控,例如预留资源或者释放资源等。代理组件例如可以包括kunelet组件。

接下来,如图3所示,以一个具体的示例详细说明,在结合调度域的基础上部署pod的流程。

步骤301:管理节点接收部署调度域的指令,所述部署调度域的指令包括调度域占用的每种类型的资源的数量,所述调度域占用的资源用于至少一个pod使用。

当用户有部署pod的需求时,可以向管理系统请求部署调度域,以便为后续部署的pod预留资源。用户在部署调度域时,例如可以是在管理系统的显示界面上执行新建调度域的指令,也可以是描述一个创建调度域的文件。相应的,管理系统所在的管理节点可以接收到部署调度域的指令。在部署调度域时,可能会在一个指令中指示部署多个调度域,管理节点针对每个调度域的部署方式是相同的。在本申请中,以部署一个调度域为例进行说明。

一般在部署调度域时,还可以指定部署的该调度域占用的每种类型的资源的数量。例如cpu的数量、网络带宽的带宽值,磁盘的数量、内存占用多少兆等。

用户在部署调度域时,可以定义调度域的关联信息,则管理节点接收到的部署调度域的指令中还可以包括待部署的调度域的关联信息。该关联信息可以是调度域的标识,或者调度域的类型、或者业务节点的标识等。

在一种示例中,调度域的资源信息可以是用户在管理系统中输入或者选择的,即用户指示调度域占用的每种类型的资源的数量。

在另一种示例中,用户或者管理人员或者租户在设置调度域模型时,可以为调度域模型定义资源信息。管理节点接收到的部署调度域的指令为针对某一调度域模型,指示采用该调度域模型创建多少个调度域。则该部署调度域的指令中包括调度域占用的资源信息。

进一步地,在设置调度域模型时,如果还定了调度域模型名称,此处的调度域模型名称则可以理解为调度域的类型。则部署调度域的指令中的调度域的管理信息中还可以包括调度域的类型。

为了进一步提高资源利用率,针对所述用于所述pod使用的调度域占用的任一类型的资源,该资源的数量小于所有的所述容器在工作时需要该类型的资源的最大值的和值,且不小于任一所述容器在工作时需要该类型的资源的最大值,保证能够支持所有的所述容器在不同时间点工作时的正常工作。

步骤302:管理节点选择用于部署调度域的业务节点,并向所述业务节点发送部署调度域的指令,相应的,业务节点接收管理节点发送的部署调度域的指令,所述部署调度域的指令包括调度域占用的每种类型的资源的数量。

管理节点管理着多个业务节点,管理节点在接收到部署调度域的指令后,可以在多个业务节点中选择合适的业务节点来部署调度域。在选择出合适的业务节点后,可以控制该业务节点部署对应的调度域。

在选择用于部署调度域的业务节点时,可以是管理节点根据资源最优策略,在多个业务节点中选择用于部署调度域的业务节点。或者,也可以是用户在向管理节点下发部署调度域的指令时,指示部署该调度域的业务节点的标识,也就是管理节点接收到的部署调度域的指令中还包括业务节点的标识。管理节点可以将所述标识对应的业务节点作为用于部署调度域的业务节点。

管理节点在合适的业务节点上部署调度域后,管理节点可以保存调度域的标识以及业务节点的标识对应关系。进一步,还可以保存调度域的标识,调度域的类型,以及业务节点的标识的对应关系。

步骤303:业务节点部署所述调度域,所述调度域包括所述指令中的对应数量的对应类型的资源。

可选的,业务节点在部署所述调度域后,可以向管理节点反馈部署成功的响应消息。

当然也存在业务节点资源不足的情况,例如管理节点接收到的部署调度域的指令中包括业务节点的标识,则管理节点在所述标识对应的业务节点上部署调度域。在该情况下,指定的业务节点可能会存在资源不足的情况,则该业务节点可以向管理节点反馈部署失败的响应消息。相应的,管理节点接收部署失败的响应消息,再选择合适的节点部署调度域,直至部署成功。

在一个示例中,管理节点可以针对所有的业务节点,维护一个资源列表。管理节点在向所述业务节点发送部署调度域的指令之后,管理节点还可以对资源列表中所述业务节点中每种类型的资源的剩余量进行更新。并且管理节点还可以对资源池中每种类型的资源的剩余量进行更新,资源池中包括多个业务节点。

以上介绍了调度域被部署到业务节点上的过程。接下来介绍在基于调度域的基础上,部署pod的过程。

步骤304:管理节点接收部署pod的指令,所述指令包括pod的数量,每个pod包括的容器的数量,以及调度域的关联信息。

用户或者管理人员或者租户,可以向管理系统发送部署pod的指令,所述部署pod指令可以包括pod的数量,每个pod包括的容器的数量。由于管理系统已经部署有调度域。则部署pod的指令中可以包括调度域的关联信息,以便管理系统找到合适的调度域,用于待部署的pod使用其中的资源。

在一种示例中,每个pod中包括的容器的数量可以是用户在管理系统中输入或选择的,即用户指示pod中包括的容器的数量。

在另一种示例中,用户或者管理人员或者租户在设置容器模型时,可以为容器模型定义pod中包括的容器的数量。管理节点接收到的部署pod的指令为针对某一容器模型,指示采用该容器模型创建多少个pod。

进一步地,在设置容器模型时,还可以定义调度域的类型,也就是调度域模型名称。通过调度域类型指示部署的pod使用哪个类型的调度域中的资源。

需要注意的是,上述步骤304与步骤301的先后顺序不限。

步骤305:管理节点根据所述调度域的关联信息,向所述业务节点发送部署pod的指令,相应的,业务节点接收部署pod的指令,所述指令包括pod的数量,每个pod包括的容器的数量,以及用于所述pod使用资源的调度域的标识。

管理节点可以根据所述调度域的关联信息,找到用于部署pod的业务节点,并确定出该业务节点上的哪个调度域中的资源可以用于待部署的pod使用。

在根据所述调度域的关联信息,找到用于部署pod的业务节点时,例如,调度域的关联信息可以包括业务节点的标识,则管理节点可以将该标识的业务节点作为部署pod的业务节点。管理节点在该业务节点上选择合适的调度域为待部署的pod使用。再例如,调度域的关联信息可以包括调度域的类型,管理节点可以根据预先保存的调度域的类型与业务节点的标识的对应关系,识别出业务节点,将识别出的业务节点作为部署pod的业务节点。再例如,调度域的关联信息包括调度域的标识,管理节点可以根据预先保存的调度域的标识与业务节点的标识的对应关系,识别出部署pod的业务节点。

在确定业务节点上的哪个调度域中的资源可以用于待部署的pod使用时,如果调度域的关联信息中未对调度域的类型以及调度域的标识做限制,则可以在业务节点上选择任一调度域,用于pod使用。如果调度域的关联信息中限制了调度域的类型,则可以在业务节点选择对应的类型的任一调度域用于pod使用。如果调度域的关联信息中限制了调度域的标识,则可以将业务节点中的所述标识的调度域用于pod使用。

进一步地,管理节点上可以保存调度域的标识与pod的标识的对应关系。

步骤306:业务节点创建对应数量的pod,每个pod包括对应数量的容器;业务节点控制任一所述容器在工作时使用所述标识的调度域中的资源。

在图3所示实施例中,通过先在业务节点上部署调度域,为pod预留一部分资源。进而,在部署pod时,使pod使用调度域中的资源。业务节点不必再按照pod中每个容器在工作时使用的资源的最大值的和值来为pod分配资源。多个pod中的容器可以在不同时间点使用调度域中的资源,从而减少资源的浪费。

多个pod中的容器运行的应用的性能要求不尽相同,有的性能要求高,有的性能要求低。进一步地,如果调度域占用的每种类型的资源的数量包括调度域占用的cpu的数量;

在一示例中,如果调度域占用的每种类型的资源的数量包括调度域占用的cpu的数量;业务节点接收到的部署调度域的指令还可以包括:用于pod中的容器隔离使用的cpu的数量和/或用于pod中的容器共享使用的cpu的数量。业务节点接收的部署pod的指令也可以包括:与其它容器隔离使用cpu的第一容器标识。进而,所述业务节点控制所述第一容器在工作时使用所述调度域中的用于隔离使用的cpu,并控制第一容器外的其它容器在工作时使用所述调度域中除了用于隔离使用的cpu的其它cpu。用于容器隔离使用资源可以理解为业务节点将该资源分配给一个容器单独使用,其他容器不能使用。用于容器共享使用的资源可以理解为业务节点将该资源分配给多个容器使用,该多个容器可以在相同的时间点,或不同的时间点使用该资源。

这样,业务节点将调度域中的对应数量的cpu分配给第一容器独享,第一容器与其它容器不会共享这些cpu,可以提高第一容器的性能。

如图2c所示,在图2b的基础上,部署调度域的指令中包括的用于pod中的容器隔离使用的cpu的数量为2,并且指示pod1中的容器a1与其他容器隔离使用cpu,以及pod2中的容器a2与其他容器隔离使用cpu。业务节点可以根据指示,为容器a1分配cpu1,为容器分配cpu5。进而,业务节点控制pod1中的容器a1在工作时使用cpu1,pod2中的容器a2在工作时使用cpu5,cpu1和cpu5不能被其他容器使用。业务节点可以控制容器b1和容器b2在工作时使用cpu2、cpu3和cpu4中任一个或多个。

接下来结合前述介绍的管理节点中API server接口模块、调度模块(包括调度子模块)、控制模块(包括控制子模块),以及业务节点中的agent组件,容器引擎组件等,对图3所示实施例中的细节进一步地描述。

如图4所示,提供了一种部署调度域的流程。

上述步骤301的具体过程可以参见图4所示的步骤41:用户可以调用API server接口模块下发部署调度域的指令,该部署调度域的指令中包括调度域的数量,调度域的资源信息,即调度域占用的每种类型的资源的数量。

上述步骤302的具体过程可以参见图4所示的步骤42-步骤46:

步骤42:管理节点中的控制模块中的控制子模块可以关注API server模块是否接收到部署调度域的指令。

步骤43:如果控制子模块确定API server模块接收到部署调度域的指令,可以获取所述部署调度域的指令中的内容,例如部署的调度域的数量,以及每个调度域占用的资源信息。进一步地,控制子模块将该指令中的内容通过API server模块保存至数据库,例如storage db。

步骤44:管理节点中的调度模块中的调度子模块可以关注API server模块是否接收到部署调度域的指令,也就是确定是否存在调度域需要部署。如果调度子模块确定APIserver模块接收到部署调度域的指令,可以请求API server访问数据库,将需要部署的调度域的信息告知调度子模块。

步骤45:调度子模块如果确定存在待部署的调度域,则可以为该待部署的调度域选择合适的业务节点,并将选择的业务节点的标识告知API server模块。

步骤46:API server模块可以向业务节点中的agent组件发送部署调度域的指令,相应的,agent组件接收部署调度域的指令,该部署调度域的指令中指示调度域的占用的资源信息,还可以指示调度域的标识等。

在一种示例中,agent组件可以向API server模块订阅自身业务节点的状态信息,当API server模块要对业务节点的状态更新时,可以通知给业务节点的agent组件。状态更新例如在业务节点上部署调度域。具体的,当有调度域要部署到业务节点上时,API server模块主动向业务节点的agent组件发送部署调度域的指令。

上述步骤303的具体过程可以参见图4中的步骤47:agent组件根据部署调度域指令,部署对应的调度域。

agent根据部署调度域指令中的资源信息,对资源进行预留,例如包括cpu、内存等资源。并为对应的调度域分配对应的资源。

agent还可以为调度域创建配置信息,例如,创建资源对应的目录,并创建资源相关约束,即为调度域分配的资源有哪些,还可以创建网络命名空间等。

如图4所示,提供了一种部署调度域的流程。

上述步骤304的具体过程可以参见图5所示的步骤51:用户可以调用API server接口模块下发部署pod的指令,该部署pod的指令中包括pod的数量,每个pod包括的容器的数量,还可以包括调度域的关联信息。

上述步骤35的具体过程可以参加图5所示的步骤52-步骤56:

步骤52:管理节点中的控制模块可以关注API server模块是否接收到部署pod的指令。

步骤53:如果控制模块确定API server模块接收到部署pod的指令,可以获取部署pod的指令中的内容息,即待部署的pod的数量,以及调度域的关联信息。进一步地,控制模块通过API server模块将该指令中的内容保存到数据库。

步骤54:管理节点中的调度模块可以关注API server模块是否接收到部署pod的指令,也就是确定是否存在pod需要部署。如果调度模块确定API server模块接收到部署pod的指令,可以请求API server访问数据库,将需要部署的pod的信息告知调度模块。

步骤55:调度模块如果确定存在待部署的pod,则可以根据调度域的关联信息选择合适的业务节点,并将选择的业务节点的标识告知API server模块。

步骤56:API server模块向选择的业务节点上的agent组件发送部署pod的指令,相应的,agent组件接收部署pod的指令,该指令中指示pod的数量,pod包括的容器的数量,还可以指示调度域的标识等。

在一种示例中,agent组件可以向API server模块订阅自身业务节点的状态信息,当API server模块要对业务节点的状态更新时,可以通知给业务节点的agent组件。状态更新例如在业务节点上部署pod。具体的,当有pod要部署到业务节点上时,API server模块主动向业务节点上的agent组件发送部署pod的指令。

上述步骤306的具体过程可以参见图5中的步骤57:agent组件将创建pod的指令告知容器引擎组件,容器引擎组件根据指令部署对应的pod。

Agent组件还可以为pod创建配置信息,例如,创建资源对应的目录,并创建资源相关约束,即使用哪个调度域中的资源,还可以创建网络命名空间等。

在一个示例中,用户还可以根据业务需求,请求删除pod。例如可以是管理节点接收删除pod的指令,所述删除pod的指令中包括pod的标识。管理节点根据保存的pod的标识与业务节点的标识的对应关系,确定部署该标识的pod的业务节点。并向所述业务节点发送删除pod的指令,相应的,业务节点接收管理节点发送的删除pod的指令,所述删除pod的指令中包括pod的标识,业务节点可以将所述标识的pod删除。由此可以说明,一个调度域中的资源可以同时用于多个pod使用。如果因为业务需求,其中一个pod被删除,则该调度域中的资源会有闲置。此时,如果有用户需要部署pod,管理节点可以根据调度域中的资源,以及使用该资源的pod的情况,为待部署的pod选则合适的调度域,以避免资源浪费。

在一个示例中,用户还可以根据业务需求,请求删除调度域。例如可以是管理节点接收删除调度域的指令,所述指令包括调度域的标识;管理节点可以确定是否存在pod使用所述标识的调度域中的资源;如果是,则不能删除该标识的调度域,此时可以发出不能删除所述调度域的提示信息;如果不存在pod使用所述标识的调度域中的资源,则向部署所述调度域的业务节点发送删除所述调度域的指令,相应的,业务节点接收删除所述标识的调度域的指令。业务节点可以执行该指令,删除所述标识的调度域,即释放调度域中的资源。

在另一种示例中,也可以由业务节点来确定是否存在pod使用所述标识的调度域中的资源,例如管理节点接收删除调度域的指令,所述删除调度域的指令中包括调度域的标识,管理节点向业务节点发送所述删除调度域的指令,相应的,业务节点接收所述删除调度域的指令。业务节点确定是否存在pod使用所述标识的调度域中的资源;如果是,则不能删除该标识的调度域,此时业务节点可以向管理节点反馈不能删除所述调度域的信息;如果不存在pod使用所述标识的调度域中的资源,则业务节点执行该指令,删除所述标识的调度域,还可以向管理节点反馈删除成功。

前文结合介绍的本申请实施例的部署pod的方法,下文中将介绍本申请实施例中的装置。基于与上述部署pod的方法的同一技术构思,如图6所示,提供了一种部署pod的装置600,部署pod的装置600能够执行上述图3的方法中由管理节点执行的各个步骤,为了避免重复,此处不再详述。部署pod的装置600可以为管理节点,也可以为应用于管理节点中的芯片。部署pod的装置600可以包括:收发模块620,处理模块610,可选的,还包括存储模块630;处理模块610可以分别与存储模块630和收发模块620相连,所述存储模块630也可以与收发模块620相连;

收发模块620,用于接收部署调度域的指令,所述指令包括调度域占用的每种类型的资源的数量,所述调度域占用的资源用于至少一个pod使用;

处理模块610,用于选择用于部署调度域的业务节点;

收发模块620,还用于向所述业务节点发送部署调度域的指令,所述指令包括调度域占用的每种类型的资源的数量;以及接收部署pod的指令,所述指令包括pod的数量,每个pod包括的容器的数量,以及调度域的关联信息;并根据所述调度域的关联信息,向所述业务节点发送部署pod的指令,所述指令包括pod的数量,每个pod包括的容器的数量,以及用于所述pod使用资源的调度域的标识。

在一种可能的实现中,针对所述用于所述pod使用的调度域占用的任一类型的资源,该资源的数量小于所有的所述容器在工作时需要该类型的资源的最大值的和值,且不小于任一所述容器在工作时需要该类型的资源的最大值。

在一种可能的实现中,所述调度域的关联信息为调度域的标识或调度域的类型或业务节点的标识。

在一种可能的实现中,所述处理模块610,还用于对资源列表中所述业务节点中每种类型的资源的剩余量进行更新,以及对资源池中每种类型的资源的剩余量进行更新,资源池中包括多个业务节点。

在一种可能的实现中,所述存储模块630,可以用于存储资源池中每种类型的资源的剩余量,和/或业务节点中每种类型的资源的剩余量。

在一种可能的实现中,所述处理模块610,在用于选择用于部署调度域的业务节点时,具体用于:根据资源最优策略,在多个业务节点中选择用于部署调度域的业务节点;或者,接收到的部署调度域的指令中还包括业务节点的标识,将所述标识对应的业务节点作为用于部署调度域的业务节点。

在一种可能的实现中,如果调度域占用的每种类型的资源的数量包括调度域占用的cpu的数量;所述部署调度域的指令还包括:用于pod中的容器隔离使用的cpu的数量和/或用于pod中的容器共享使用的cpu的数量;所述部署pod的指令还包括:与其它容器隔离使用cpu的第一容器的标识。

在一种可能的实现中,所述收发模块620,还用于接收删除调度域的指令,所述指令包括调度域的标识;所述处理模块610,还用于确定是否存在pod使用所述标识的调度域中的资源;如果是,则发出不能删除所述调度域的提示信息;如果否,则通过所述收发模块向部署所述调度域的业务节点发送删除所述调度域的指令。

在一种可能的实现中,所述存储模块630可以用于存储业务节点的标识,业务节点上部署的调度域的标识和/或类型的对应关系。还可以存储业务节点的标识,以及业务节点上部署的pod的标识。还可以存储pod的标识,以及pod使用的资源所属的调度域的标识。

图6所示的处理模块610可以包括上述图4中的控制模块和调度模块的功能。

图6所示的收发模块620可以包括上述图4中的API server模块的功能。

如图7所示,提供了一种部署pod的装置700,部署pod的装置700能够执行上述图3的方法中由业务节点执行的各个步骤,为了避免重复,此处不再详述。部署pod的装置700可以为业务节点,也可以为应用于业务节点中的芯片。部署pod的装置700可以包括:收发模块720,处理模块710,可选的,还包括存储模块730;处理模块710可以分别与存储模块730和收发模块720相连,所述存储模块730也可以与收发模块720相连;

所述收发模块720,用于接收管理节点发送的部署调度域的指令,所述指令包括调度域占用的每种类型的资源的数量;

所述处理模块710,用于部署所述调度域,所述调度域中包括对应数量的对应类型的资源;

所述收发模块720,还用于接收管理节点发送的部署pod的指令,所述指令包括pod的数量,每个pod包括的容器的数量,以及用于所述pod使用资源的调度域的标识;

所述处理模块710,还用于部署对应数量的pod,每个pod包括对应数量的容器;并控制任一所述容器在工作时使用所述调度域中的资源。

在一种可能的实现中,针对所述用于所述pod使用的调度域占用的任一类型的资源,该资源的数量小于所有的所述容器在工作时需要该类型的资源的最大值的和值,且不小于任一所述容器在工作时需要该类型的资源的最大值。

在一种可能的实现中,如果调度域占用的每种类型的资源的数量包括调度域占用的cpu的数量;所述部署调度域的指令还包括:用于pod中的容器隔离使用的cpu的数量和/或用于pod中的容器共享使用的cpu的数量;所述部署pod的指令还包括:与其它容器隔离使用cpu的第一容器的标识;所述处理模块710,在用于控制任一所述容器在工作时使用所述调度域中的资源时,具体用于:控制所述第一容器在工作时使用所述调度域中的用于隔离使用的cpu,并控制第一容器外的其它容器在工作时使用所述调度域中除了用于隔离使用的cpu的其它cpu。

在一种可能的实现中,所述存储模块730可以用于存储pod的标识以及该标识的pod使用的资源所属的调度域的标识。

图7所示的处理模块710可以包括图5所示的容器引擎组件的功能以及agent组件中除收发信号外的其它功能。

图7所示的收发模块720可以包括图5所示agent组件中收发信号外的功能。

图8是本申请实施例的部署pod的装置800的示意性框图。应理解,所述部署pod的装置800能够执行图3所示的方法中由管理节点执行的各个步骤,为了避免重复,此处不再详述。部署pod的装置800包括:处理器810和通信接口820,可选的,还包括存储器830,所述处理器810和所述存储器830之间电偶合;

示例的,存储器830,用于存储计算机程序;所述处理器810,可以用于调用所述存储器中存储的计算机程序或指令,以通过所述通信接口820接收部署调度域的指令,所述指令包括调度域占用的每种类型的资源的数量,所述调度域占用的资源用于至少一个pod使用;以及选择用于部署调度域的业务节点;并通过所述通信接口820向所述业务节点发送部署调度域的指令,所述指令包括调度域占用的每种类型的资源的数量;以及接收部署pod的指令,所述指令包括pod的数量,每个pod包括的容器的数量,以及调度域的关联信息;并根据所述调度域的关联信息,向所述业务节点发送部署pod的指令,所述指令包括pod的数量,每个pod包括的容器的数量,以及用于所述pod使用资源的调度域的标识。

在一种可能的实现中,针对所述用于所述pod使用的调度域占用的任一类型的资源,该资源的数量小于所有的所述容器在工作时需要该类型的资源的最大值的和值,且不小于任一所述容器在工作时需要该类型的资源的最大值。

在一种可能的实现中,所述调度域的关联信息为调度域的标识或调度域的类型或业务节点的标识。

在一种可能的实现中,所述处理器810,还用于对资源列表中所述业务节点中每种类型的资源的剩余量进行更新,以及对资源池中每种类型的资源的剩余量进行更新,资源池中包括多个业务节点。

在一种可能的实现中,所述存储器830,可以用于存储资源池中每种类型的资源的剩余量,和/或业务节点中每种类型的资源的剩余量。

在一种可能的实现中,所述处理器810,在用于选择用于部署调度域的业务节点时,具体用于:根据资源最优策略,在多个业务节点中选择用于部署调度域的业务节点;或者,接收到的部署调度域的指令中还包括业务节点的标识,将所述标识对应的业务节点作为用于部署调度域的业务节点。

在一种可能的实现中,如果调度域占用的每种类型的资源的数量包括调度域占用的cpu的数量;所述部署调度域的指令还包括:用于pod中的容器隔离使用的cpu的数量和/或用于pod中的容器共享使用的cpu的数量;所述部署pod的指令还包括:与其它容器隔离使用cpu的第一容器的标识。

在一种可能的实现中,所述通信接口820,还用于接收删除调度域的指令,所述指令包括调度域的标识;所述处理器810,还用于确定是否存在pod使用所述标识的调度域中的资源;如果是,则发出不能删除所述调度域的提示信息;如果否,则通过所述收发模块向部署所述调度域的业务节点发送删除所述调度域的指令。

在一种可能的实现中,所述存储器830可以用于存储业务节点的标识,业务节点上部署的调度域的标识和/或类型的对应关系。还可以存储业务节点的标识,以及业务节点上部署的pod的标识。还可以存储pod的标识,以及pod使用的资源所属的调度域的标识。

图8所示的处理器810可以包括上述图4中的控制模块和调度模块的功能。

图8所示的通信接口820可以包括上述图4中的API server模块的功能。

图9是本申请实施例的部署pod的装置900的示意性框图。应理解,所述部署pod的装置900能够执行图3所示的方法中由业务节点执行的各个步骤,为了避免重复,此处不再详述。部署pod的装置900包括:处理器910和通信接口920,可选的,还包括存储器930,所述处理器910和所述存储器930之间电偶合;

示例的,存储器930,用于存储计算机程序;所述处理器910,可以用于调用所述存储器中存储的计算机程序或指令,以通过所述通信接口920接收管理节点发送的部署调度域的指令,所述指令包括调度域占用的每种类型的资源的数量;还可以用于部署所述调度域,所述调度域中包括对应数量的对应类型的资源;还可以通过所述通信接口920接收管理节点发送的部署pod的指令,所述指令包括pod的数量,每个pod包括的容器的数量,以及用于所述pod使用资源的调度域的标识;还可以部署对应数量的pod,每个pod包括对应数量的容器;并控制任一所述容器在工作时使用所述调度域中的资源。

在一种可能的实现中,针对所述用于所述pod使用的调度域占用的任一类型的资源,该资源的数量小于所有的所述容器在工作时需要该类型的资源的最大值的和值,且不小于任一所述容器在工作时需要该类型的资源的最大值。

在一种可能的实现中,如果调度域占用的每种类型的资源的数量包括调度域占用的cpu的数量;所述部署调度域的指令还包括:用于pod中的容器隔离使用的cpu的数量和/或用于pod中的容器共享使用的cpu的数量;所述部署pod的指令还包括:与其它容器隔离使用cpu的第一容器的标识;所述处理器910,在用于控制任一所述容器在工作时使用所述调度域中的资源时,具体用于:控制所述第一容器在工作时使用所述调度域中的用于隔离使用的cpu,并控制第一容器外的其它容器在工作时使用所述调度域中除了用于隔离使用的cpu的其它cpu。

在一种可能的实现中,所述存储器930可以用于存储pod的标识以及该标识的pod使用的资源所属的调度域的标识。

图9所示的处理器910可以包括图5所示的容器引擎组件的功能以及agent组件中除收发信号外的其它功能。

图9所示的通信接口920可以包括图5所示agent组件中收发信号外的功能。

上述的处理器可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器还可以进一步包括硬件芯片或其他通用处理器。上述硬件芯片可以是专用集成电路(application-specific integratedcircuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)及其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等或其任意组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

还应理解,本申请实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。应注意,本申请描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。

本申请实施例还提供了一种计算机存储介质,存储有计算机程序,该计算机程序被计算机执行时,可以使得所述计算机用于执行上述部署pod的方法。

本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述提供的部署pod的方法。

本申请实施例还提供了一种部署pod的系统,所述系统包括:执行上述部署pod的方法的管理节点和业务节点。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包括有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包括这些改动和变型在内。

相关技术
  • 一种部署pod的方法及装置
  • 容器组pod的部署配置方法、装置、设备及存储介质
技术分类

06120112901564