一种基于应用容器的应用管理方法及系统的利记博彩app
【专利摘要】一种基于应用容器的应用管理方法及系统,所述方法应用于应用管理系统中的容器调度器,所述应用管理系统包括云控制平台、所述容器调度器和包括至少一台宿主机的集群,所述方法包括:容器调度器接收云控制平台发送的应用创建指令,将应用创建指令推送至所述集群内的目标宿主机,以使所述目标宿主机根据所述应用创建指令获取目标镜像文件,使用所述目标镜像文件为所述目标镜像文件对应的目标应用创建目标应用容器。能够提高应用部署的效率。
【专利说明】
一种基于应用容器的应用管理方法及系统
技术领域
[0001]本发明涉及云技术领域,尤其涉及一种基于应用容器的应用管理方法及系统。
【背景技术】
[0002]在虚拟技术领域,Docker是一个开源的应用容器(英文全称:Applicat1nContainer)引擎,让开发者可以打包他们的应用到可移植的应用容器中,然后发布到任何流行的Linux机器上。简单的说,Docker技术为构建在Linux容器(英文全称:LinuxContainer,英文简称:LXC)之上,且基于进程应用容器(英文全称:Process Container)的轻量级虚拟机(英文全称:Virtual Machine,英文简称:VM)解决方案,即将应用和应用所依赖的运行环境打包成标准的应用容器或镜像,根据许可限制或特定要求将应用部署到特定的计算机,执行特定的任务。其中,应用容器使用沙箱机制,应用容器之间彼此相互隔离,每个应用容器中运行一个应用或一组应用,几乎没有性能开销,并且不依赖于任何语言和系统。
[0003]但使用Docker技术在集群部署应用时,应用部署人员需要先在服务器或每台宿主机上安装与应用相关的运行环境,例如数据库(MySQL),重申(英文全称:RedistrictingSystem,英文简称:Redis),汤姆猫(Tomcat)等运行环境,以及进行相应的参数配置,并且还需要根据应用对运行环境的需求,安装和配置相应的第三方支撑软件,以支撑该运行环境,另外在集群内部署应用时,需要应用部署人员分别在每台宿主机上创建应用容器副本,无法一键在集群内创建多个应用容器副本。可见,整个部署过程繁琐、效率较低。
【发明内容】
[0004]本发明提供了一种基于应用容器的应用管理方法及系统,能够解决现有技术中基于容器部署应用的效率较低的问题。
[0005]第一方面提供一种基于应用容器的应用管理方法,所述方法应用于应用管理系统中的容器调度器,所述应用管理系统包括云控制平台、所述容器调度器和包括至少一台宿主机的集群,所述方法包括:
[0006]容器调度器接收云控制平台发送的应用创建指令;
[0007]将所述应用创建指令推送至所述集群内的目标宿主机,以使所述目标宿主机根据所述应用创建指令获取目标镜像文件,使用所述目标镜像文件为所述目标镜像文件对应的目标应用创建目标应用容器。
[0008]在一些可能的设计中,在部署完目标应用容器后,容器调度器还可以对目标应用容器的容器资源进行管理,例如删除容器、增加容器、增加或减少容器的硬件资源,以及重新创建容器等。其中,所述容器资源至少包括如下项之一:分配给所述目标应用的应用容器数目、所述目标应用容器的数目,或所述目标应用容器运行时所需的硬件资源。以下分别进行说明:
[0009]1、容器调度器根据云控制平台发送的容器资源管理指令所指示的内容管理容器资源
[0010]a、应用部署人员根据需要在云控制平台管理容器资源。
[0011]b、应用部署人员根据获取的目标应用容器的运行状态管理容器资源。
[0012]然后,应用部署人员会将用于指示管理容器资源的信息发送给容器调度器,使得容器调度器根据所述容器资源管理指令管理所述目标应用容器的容器资源。
[0013]2、容器调度器根据获取的目标应用容器的运行状态自动管理容器资源
[0014]具体为:通过运行在宿主机上的宿主机守护模块获取所述目标应用容器的运行状态;
[0015]在确定所述运行状态满足预设管理条件时,根据所述运行状态和预设配置规则管理所述目标应用容器的容器资源。
[0016]可选的,所述运行状态包括软负载和工作状态。在第2种情况中,根据所述运行状态和预设配置规则管理所述目标应用容器的容器资源,包括以下之一:
[0017]在所述工作状态为失效状态时,使用所述目标镜像文件重新创建包含所述目标应用的第一应用容器;
[0018]在所述软负载超过第一阈值时,执行以下中的至少一项:增加分配给所述目标应用的应用容器的数目、将所述目标应用容器中的目标应用迀移至第二应用容器,或增加所述目标应用运行所需的硬件资源;
[0019]在所述软负载低于第二阈值时,执行以下中的至少一项:减少分配给所述目标应用的应用容器的数量、减少所述目标应用容器的数目,或减少所述目标应用运行所需的硬件资源;
[0020]在所述软负载低于第三阈值时,将所述目标应用容器关闭并删除。
[0021]通过根据应用容器的软负载动态的调整容器资源,实现负载均衡。另外,通过动态的管理容器资源,使得在集群中的宿主机失效或应用容器失效被关闭时,容器调度器能立即在原宿主机上重新创建新的应用容器,提高应用服务的可靠性。
[0022]可选的,在管理容器资源过程中,还可以判断是否需要进行告警,以便通知运营维护人员及时维护整个系统的容器资源的调配,在确定所述目标应用容器的运行状态满足预设告警条件时,将用于指示所述目标应用容器满足所述预设告警条件的告警信息发送至所述云控制平台,例如可以在管理控制台界面中以声光报警进行呈现,同时还可以通过短信、绑定的微信账号等推送告警信息,具体本文不作限定。
[0023]在一些可能的设计中,为进一步提高应用容器运行时的稳定性,还可以在所述目标应用容器失效或运行所述目标应用容器的第一宿主机失效时,启用所述目标应用容器的备份应用容器,或者在第一宿主机所属的集群内中的任一宿主机上创建所述目标应用容器的副本。
[0024]在一些可能的设计中,在部署完目标应用容器后,还可以根据需求对目标应用容器进行更新,具体如下:
[0025]1、通过修改目标镜像文件实现对目标应用进行更新。
[0026]容器调度器接收所述云控制平台发送的应用修改指令,所述应用修改指令用于指示对所述目标镜像文件的修改;
[0027]并根据所述应用修改指令更新所述目标镜像文件,并向所述集群内部署的所述目标应用容器推送修改信息,以使所述目标宿主机根据更新后的所述目标镜像文件创建新的目标应用容器。
[0028]2、通过上传更新的文件包实现对目标应用容器的应用文件进行更新。
[0029]容器调度器接收所述云控制平台发送的应用更新指令,所述应用更新指令用于指示对所述目标应用容器的应用文件的更新;
[0030]并根据所述应用更新指令向所述集群内部署的所述目标应用容器推送更新消息,以使所述目标应用容器获取所述更新文件,更新目标应用容器的应用文件。
[0031]以上第一方面从容器调度器的角度对一种基于应用容器的应用管理方法进行说明,第二方面从云控制平台的角度对一种基于应用容器的应用管理方法进行描述,所述方法应用于应用管理系统中的云控制平台,所述应用管理系统包括所述云控制平台、容器调度器和包括至少一台宿主机的集群,所述方法包括:
[0032]获取目标镜像文件;
[0033]对所述目标镜像文件对应的目标应用进行应用服务配置,具体为:配置目标应用的应用参数、目标应用的环境变量和目标应用的端口映射;
[0034]发送应用创建指令至所述容器调度器,以使所述容器调度器将所述应用创建指令推送至所述集群内的目标宿主机,以使所述目标宿主机根据所述应用创建指令获取目标镜像文件,使用所述目标镜像文件为所述目标镜像文件对应的目标应用创建目标应用容器。
[0035]在一些可能的设计中,在部署完目标应用容器后,云控制平台还可以对容器资源进行管理,例如删除容器、增加容器、增加或减少容器的硬件资源,以及重新创建容器等。其中,所述容器资源至少包括如下项之一:分配给所述目标应用的应用容器数目、所述目标应用容器的数目,或所述目标应用容器运行时所需的硬件资源。
[0036]云控制平台在对容器资源进行管理后,将容器资源管理指令发送至所述容器调度器,以使所述容器调度器根据所述容器资源管理指令的指示内容管理所述目标应用容器的容器资源。
[0037]可选的,应用部署人员可以在云控制平台上根据需求自行管理容器资源,还可以是根据目标应用容器的运行状态管理容器资源,故云控制平台在将容器资源管理指令发送至所述容器调度器之前,所述方法还包括:
[0038]云控制平台获取所述目标应用容器的运行状态;
[0039]在确定所述运行状态满足预设管理条件时,云控制平台根据所述运行状态管理所述目标应用容器的容器资源,所述容器资源至少包括如下项之一:分配给所述目标应用的应用容器数目、所述目标应用容器的数目,或所述目标应用容器运行时所需的硬件资源;
[0040]所述容器资源管理指令至少包含以下项之一:重新创建包含所述目标应用的第一应用容器、关闭并删除所述目标应用容器、分配给所述目标应用的应用容器数目、所述目标应用容器的数目,或所述目标应用容器运行时所需的硬件资源。
[0041]可选的,所述运行状态包括软负载和工作状态,所述云控制平台根据所述运行状态管理所述目标应用容器的容器资源,包括以下之一:
[0042]在所述软负载超过第一阈值时,执行以下中的至少一项:增加分配给所述目标应用的应用容器的数目、将所述目标应用容器中的目标应用迀移至第二应用容器,或增加所述目标应用运行所需的硬件资源;
[0043]在所述软负载低于第二阈值时,执行以下中的至少一项:减少分配给所述目标应用的应用容器的数量、减少所述目标应用容器的数目,或减少所述目标应用运行所需的硬件资源。
[0044]通过根据应用容器的软负载动态的调整容器资源,实现负载均衡。另外,通过动态的管理容器资源,并指示给容器调度器使得在集群中的宿主机失效或应用容器失效被关闭时,容器调度器能立即在原宿主机上重新创建新的应用容器,提高应用服务的可靠性。
[0045]可选的,在管理容器资源过程中,还可以判断是否需要进行告警,以便通知运营维护人员及时维护整个系统的容器资源的调配,在确定所述目标应用容器的运行状态满足预设告警条件时,将用于指示所述目标应用容器满足所述预设告警条件的告警信息发送至所述云控制平台,例如可以在管理控制台界面中以声光报警进行呈现,同时还可以通过短信、绑定的微信账号等推送告警信息,具体本文不作限定。
[0046]在一些可能的设计中,在部署完目标应用容器后,还可以根据需求对目标应用容器进行更新,具体如下:
[0047]1、通过修改目标镜像文件实现对目标应用进行更新。
[0048]云控制平台获取所述目标镜像文件;
[0049]对所述目标镜像文件进行修改;
[0050]将修改后的所述目标镜像文件上传至存储所述目标镜像文件的文件系统,并将应用修改指令发送至所述容器调度器,以使所述容器调度器根据应用修改指令更新所述目标镜像文件,并向所述集群内部署的所述目标应用容器推送修改信息,以使所述目标宿主机根据更新后的所述目标镜像文件创建新的目标应用容器。
[0051]2、通过上传更新的文件包实现对目标应用容器的应用文件进行更新。
[0052]云控制平台获取所述目标应用容器的应用文件的更新文件;
[0053]根据所述更新文件中的应用标识指示的目标应用,将所述更新文件上传至存储所述目标镜像文件的文件系统;
[0054]并将应用更新指令发送至所述容器调度器,以使所述容器调度器向所述集群内部署的所述目标应用容器推送更新消息,以使所述目标应用容器获取所述更新文件,更新目标应用容器的应用文件。
[0055]在更新目标应用容器时,不需要将目标应用容器中的目标应用退出。另外,升级目标应用需要更新目标应用容器,只需要将更新文件上传至文件系统,然后由容器调度器将更新要求推送至各目标应用容器,随后,目标应用容器中的自开发的基础服务自动获取应用部署人员上传的更新文件,并动态更新到目标应用容器中指定的文件夹,从而避免现有技术中需要频繁通过安全外壳SSH或远程桌面登录应用服务器所造成的Linux密码或其他密码泄露,以及减少安全隐患。
[0056]本发明第三方面提供一种控制组件,具有实现对应于上述第一方面提供的基于应用容器的应用管理方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。
[0057]一种可能的设计中,所述控制组件包括:
[0058]获取模块,用于接收云控制平台发送的应用创建指令;
[0059]发送模块,用于将所述应用创建指令推送至所述集群内的目标宿主机,以使所述目标宿主机根据所述应用创建指令获取目标镜像文件,并使用所述目标镜像文件为所述目标镜像文件对应的目标应用创建目标应用容器。
[0060]—种可能的设计中,所述控制组件包括:
[0061]相互连接的处理器、存储器、接收器和发射器;
[0062]其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中的程序代码来执行以下操作:
[0063]利用所述接收器接收云控制平台发送的应用创建指令;
[0064]利用所述发射器将所述应用创建指令推送至所述集群内的目标宿主机,以使所述目标宿主机根据所述应用创建指令获取目标镜像文件,使用所述目标镜像文件为所述目标镜像文件对应的目标应用创建目标应用容器。
[0065]本发明第四方面提供一种云控制平台,具有实现对应于上述第二方面提供的基于应用容器的应用管理方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。
[0066]一种可能的设计中,所述云控制平台包括:
[0067]获取模块,用于获取目标镜像文件;
[0068]处理模块,用于对所述目标镜像文件对应的目标应用进行应用服务配置;
[0069]发送模块,用于发送应用创建指令至所述容器调度器,以使所述容器调度器将所述应用创建指令推送至所述集群内的目标宿主机,以使所述目标宿主机根据所述应用创建指令获取目标镜像文件,并使用所述目标镜像文件为所述目标镜像文件对应的目标应用创建目标应用容器。
[0070]一种可能的设计中,所述云控制平台包括:
[0071]相互连接的处理器、存储器、接收器和发射器;
[0072]其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中的程序代码来执行以下操作:
[0073]利用所述接收器获取目标镜像文件;
[0074]并对所述目标镜像文件对应的目标应用进行应用服务配置;
[0075]利用所述发射器发送应用创建指令至所述容器调度器,以使所述容器调度器将所述应用创建指令推送至所述集群内的目标宿主机,以使所述目标宿主机根据所述应用创建指令获取目标镜像文件,使用所述目标镜像文件为所述目标镜像文件对应的目标应用创建目标应用容器。
[0076]本发明第五方面提供一种应用管理系统,具有实现上述基于应用容器的应用管理方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。
[0077]一种可能的设计中,所述应用管理系统包括:
[0078]如第三方面所述的控制组件、如第四方面所述的云控制平台,以及包括至少一台宿主机的集群。
[0079]相较于现有技术,本发明提供的方案中,容器调度器接收云控制平台发送的应用创建指令,根据所述应用创建指令获取目标镜像文件,容器调度器使用所述目标镜像文件创建目标应用容器,不需要预先在每台宿主机上安装支撑软件和运行环境,容器调度器即可在集群内部署目标应用容器,一定程度上减少应用部署操作和提高应用部署的效率。
【附图说明】
[0080]图1为本实施例中的应用管理系统的一种结构不意图;
[0081]图2为本实施例中的基于应用容器的应用管理方法的一种流程示意图;
[0082]图3为本实施例中的基于应用容器的应用管理方法的另一种流程示意图;
[0083]图4为本实施例中的进行应用服务配置的一种界面图;
[0084]图5为本实施例中的基于应用容器的应用管理方法的另一种流程示意图;
[0085]图6为本实施例中的控制组件的一种结构示意图;
[0086]图7为本实施例中的云控制平台的一种示意图;
[0087]图8为本实施例中的应用管理系统的一种结构不意图;
[0088]图9为本实施例中的实现基于应用容器的应用管理方法的装置的实体装置结构示意图。
【具体实施方式】
[0089]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0090]本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本文中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本文中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分不到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本发明实施例方案的目的。
[0091]本发明实施例提供了一种基于应用容器的应用管理方法及系统,用于云技术领域,能够提高基于容器部署应用的效率。以下进行详细说明。
[0092]如图1所示,本文中的应用管理系统包括云控制平台和集群系统。
[0093]其中,云控制平台用于实现集群管理,应用管理,应用发布,应用服务部署,应用服务启停、扩容,应用状态监控等功能,为应用部署人员或管理员提供应用部署的交互界面,应用部署人员或管理员无需关心集群系统底层的实现,可以直接在交互界面完成应用部署的一系列操作。
[0094]云控制平台包括:
[0095]宿主机管理模块,用于管理多个集群或区域集群,比如北京机房集群、上海机房集群、深圳机房集群,集群数据保存到数据库中。还可以显示指定集群下的所有宿主机列表及详细信息,数据可通过应用程序接口(英文全称:英文简称:API)从集群系统的后台即控制组件读取。还可以显示当前Docker镜像仓库中的镜像文件列表,并可为镜像文件设置图标、环境变量、端口映射、版本等信息。基础镜像是应用运行的基础环境,镜像文件保存到控制组件的镜像仓库中。应用部署人员或管理员还可以通过云控制平台查看用户密码修改、系统操作日志以及应用容器的告警信息等。
[0096]应用服务管理模块,用于管理用户的应用信息,应用信息包括应用的基本信息、所需的基础镜像、环境变量、需要导出的端口号、应用负载均衡设置、应用健康检查设置功能等。还可以负责不同版本的镜像文件或升级文件的上传、更新等管理。还可以在应用的镜像文件上传后,实现应用的部署,例如点击“部署应用”菜单后,根据交互界面显示的配置向导,对应用的资源、参数、容器节点数进行配置,然后可在交互界面中点击“启动”或“停止”按钮进行应用的启停操作。
[0097]应用容器监控界面,用于定期通过API从控制组件的监控信息采集模块获取监控数据,并以图形化界面显示在浏览器端。
[0098]集群系统包括控制组件、至少一个集群,每个集群包括至少一台宿主机,其中,控制组件用于控制集群内的宿主机,控制组件包括容器调度器、镜像仓库、监控信息采集模块以及缓存,容器调度器用于管理集群内部署的应用容器,例如创建应用容器、删除应用容器、增加应用容器以及容器资源的管理等,集群系统内可以设置至少一个容器调度器,每个集群可以设置至少一个容器调度器(包括主容器调度器、从容器调度器或备份容器调度器),集群之间的容器资源的管理彼此隔离,具体容器调度器的设置本文不作限定。镜像仓库用于存储镜像文件、应用容器的运行环境等信息;监控信息采集模块用于从集群内的宿主机中采集宿主机上运行的各应用容器的运行状态,运行状态包括:宿主机的处理器、内存、磁盘空间和网络输入输出(英文全称:Input/Output,英文简称:I/O)信息,以及各宿主机上运行的各个应用容器的处理器、内存、网络I/O信息等;缓存用于存储宿主机上运行的各应用容器的运行状态。
[0099]应用容器包括应用的运行环境和应用,应用容器中运行一个自开发的基础服务,该基础服务可以向网络接入服务汇报应用容器的网络地址、健康状况等信息。网络接入服务为应用提供服务访问入口功能。应用容器也可以称为容器。
[0100]每台宿主机上可以部署至少一个应用容器,这些应用容器可以是提供同一应用服务的容器,也可以是提供不同的应用服务的容器,具体不限定。当需要运行指定的应用时,由宿主机中的Docker容器引擎自动从镜像仓库拉取创建应用容器所需要的镜像文件到宿主机中。
[0101]可选的,所述集群系统还可以包括网络接入模块,用于用户访问宿主机上部署的应用容器中的应用。
[0102]为解决现有机制中的技术问题,本发明实施例主要提供以下技术方案:
[0103]1、应用部署人员在云控制平台创建应用信息,并将获取到的镜像文件上传至镜像仓库。
[0104]具体来说,应用部署人员可以使用现有的应用模版直接在云控制平台创建应用的镜像文件,也可以是从网络数据库等渠道获取已经创建好的镜像文件,然后在云控制平台创建相关的应用信息。
[0105]2、在云控制平台设置运行该镜像文件对应的应用的应用服务配置,然后将指示应用服务配置的指令发送给容器调度器,使得容器调度器根据指令中的应用服务配置自动的创建包含该应用、该应用的运行环境的应用容器,并在集群内的宿主机上部署该应用容器。
[0106]上述方案中,在部署应用容器时,应用部署人员只需要通过云控制平台的交互界面上预定义的向导式操作,为应用进行应用服务配置和启用该应用,即可不用参与具体的运行环境的安装和配置、应用的安装和配置等复杂操作,后续所有的应用容器部署工作都由集群系统自动完成,从而提高部署应用容器的效率。
[0107]请参照图2,以下对本发明提供一种基于应用容器的应用管理方法进行举例说明,应用部署人员登录云控制平台,建立宿主机集群信息,配置系统参数(如:用户信息、应用分类信息、基础镜像信息等),创建应用的基本信息(如:应用介绍,应用图标、端口、环境变量设置等),然后设置应用的运行环境镜像与运行环境镜像的版本信息,在交互界面中上传应用版本文件(可以是压缩文件格式),完成应用版本文件上传后,在集群内部署应用容器的具体过程如下:
[0108]101、云控制平台获取目标镜像文件,对所述目标镜像文件对应的目标应用进行应用服务配置。
[0109]其中,目标镜像文件可以由应用部署人员使用现有的应用模版创建,也可以是从网络数据库或其他渠道获取已经创建好的目标镜像文件,例如直接拷贝的方式,具体获取目标镜像文件的方式本文不作限定。
[0110]应用服务配置主要包括:配置目标应用的应用参数、目标应用的环境变量和目标应用的端口映射。其中,配置目标应用的应用参数包括应用名称、应用版本、服务名称、宿主机集群、资源配置、容器节点数、云盘空间以及负载方式;目标应用的环境变量包括管理员名称和管理员密码;目标应用的端口映射包括网络端口、绑定的域名和公网访问权限。
[0111]102、云控制平台发送应用创建指令至所述容器调度器。
[0112]应用创建指令用于指示容器调度器启用目标应用的服务,为目标应用创建相应的目标应用容器。
[0113]103、容器调度器接收云控制平台发送的应用创建指令,根据资源调度策略将所述应用创建指令推送至集群内的目标宿主机,以实现在所述集群内部署所述目标应用容器。
[0114]其中,目标宿主机包括集群内的至少一台待部署目标应用容器的宿主机,目标宿主机的选择由容器调度器根据预配置的资源调度策略计算的到。
[0115]104、目标宿主机接收到应用创建指令后获取目标镜像文件,并使用所述目标镜像文件为所述目标镜像文件对应的目标应用创建目标应用容器。
[0116]其中,在所述集群内部署所述目标应用容器包括:容器调度器通过资源调度算法选择待部署目标应用容器的目标宿主机,然后将应用创建指令推送到这些目标宿主机,以实现在待部署目标应用容器的宿主机上部署目标应用容器。还可以根据需要在同一台宿主机上部署至少一个目标应用容器,具体不作限定。另外,若上述目标应用比较复杂,还可以将目标应用拆分为多个分布式组件,并分别为每个分布式组件创建一个应用容器,然后建立这些应用容器之间的通信,实现负载均衡。
[0117]本发明实施例中,云控制平台为目标应用进行应用服务配置,并将启用目标应用、以及创建相应的目标应用容器的应用创建指令发送给容器调度器,容器调度器选择目标宿主机,目标宿主机获取目标镜像文件,并使用所述目标镜像文件创建目标应用容器,实现不需要预先在每台宿主机上安装支撑软件和运行环境,容器调度器即可自动在集群内部署目标应用容器,一定程度上减少部署操作和提高应用部署的效率,也减少了传统的命令式人工部署的错误操作概率。
[0118]可选的,在一些发明实施例中,在部署完目标应用容器后,云控制平台或容器调度器还可以对目标应用容器的容器资源进行管理,例如删除容器、增加容器、增加或减少容器的硬件资源,以及重新创建容器等。其中,所述容器资源至少包括如下项之一:分配给所述目标应用的应用容器数目、所述目标应用容器的数目,或所述目标应用容器运行时所需的硬件资源。以下分别进行说明:
[0119]1、容器调度器根据云控制平台发送的容器资源管理指令所指示的内容管理容器资源。
[0120]a、应用部署人员根据需要在云控制平台管理容器资源。
[0121]b、应用部署人员根据获取的目标应用容器的运行状态管理容器资源。
[0122]然后,应用部署人员会将用于指示管理容器资源的信息的容器资源管理指令发送给容器调度器,使得容器调度器根据所述容器资源管理指令管理所述目标应用容器的容器资源。
[0123]需要说明的是,对于云控制平台而言,仅仅针对容器资源的相关参数进行设置,最终对容器资源的配置由容器调度器执行。
[0124]所述运行状态包括软负载和工作状态,所述云控制平台根据所述运行状态管理所述目标应用容器的容器资源,包括以下之一:
[0125]在所述软负载超过第一阈值时,执行以下中的至少一项:增加分配给所述目标应用的应用容器的数目、将所述目标应用容器中的目标应用迀移至第二应用容器,或增加所述目标应用运行所需的硬件资源;
[0126]在所述软负载低于第二阈值时,执行以下中的至少一项:减少分配给所述目标应用的应用容器的数量、减少所述目标应用容器的数目,或减少所述目标应用运行所需的硬件资源。
[0127]通过根据应用容器的软负载动态的调整容器资源,实现负载均衡。另外,通过动态的管理容器资源,并指示给容器调度器使得在集群中的宿主机失效或应用容器失效被关闭时,容器调度器能立即在原宿主机上重新创建新的应用容器,提高应用服务的可靠性。
[0128]可选的,在管理容器资源过程中,云控制平台还可以判断是否需要进行告警,以便通知运营维护人员及时维护整个系统的容器资源的调配,在确定所述目标应用容器的运行状态满足预设告警条件时,将用于指示所述目标应用容器满足所述预设告警条件的告警信息发送至所述云控制平台,例如可以在管理控制台界面中以声光报警进行呈现,同时还可以通过短信、绑定的微信账号等推送告警信息,具体本文不作限定。
[0129]2、容器调度器根据获取的目标应用容器的运行状态自动管理容器资源。
[0130]具体为:通过运行在宿主机上的宿主机守护模块获取所述目标应用容器的运行状态;
[0131 ]在确定所述运行状态满足预设管理条件时,根据所述运行状态和预设配置规则管理所述目标应用容器的容器资源。
[0132]其中,所述容器资源管理指令至少包含以下项之一:重新创建包含所述目标应用的第一应用容器、关闭并删除所述目标应用容器、分配给所述目标应用的应用容器数目、所述目标应用容器的数目,或所述目标应用容器运行时所需的硬件资源。
[0133]可选的,所述运行状态包括软负载和工作状态,对于容器调度器而言,在根据运行状态自动管理应用容器时,第2种情况中,容器调度器根据所述运行状态管理和预设配置规则所述目标应用容器的容器资源,包括以下之一:
[0134]在所述工作状态为失效状态时,使用所述目标镜像文件重新创建包含所述目标应用的第一应用容器;
[0135]在所述软负载超过第一阈值时,执行以下中的至少一项:增加分配给所述目标应用的应用容器的数目、将所述目标应用容器中的目标应用迀移至第二应用容器,或增加所述目标应用运行所需的硬件资源;
[0136]在所述软负载低于第二阈值时,执行以下中的至少一项:减少分配给所述目标应用的应用容器的数量、减少所述目标应用容器的数目,或减少所述目标应用运行所需的硬件资源;
[0137]在所述软负载低于第三阈值时,将所述目标应用容器关闭并删除。
[0138]通过根据应用容器的软负载动态的调整容器资源,实现负载均衡。另外,通过动态的管理容器资源,使得在集群中的宿主机失效或应用容器失效被关闭时,容器调度器能立即在原宿主机上重新创建新的应用容器,提高应用服务的可靠性。可以理解的是,上述第一阈值、第二阈值和第三阈值从左至右,按从小到大排列。
[0139]可选的,在管理容器资源过程中,还可以判断是否需要进行告警,以便通知运营维护人员及时维护整个系统的容器资源的调配,在确定所述目标应用容器的运行状态满足预设告警条件时,将用于指示所述目标应用容器满足所述预设告警条件的告警信息发送至所述云控制平台,例如可以在管理控制台界面中以声光报警进行呈现,同时还可以通过短信、绑定的微信账号等推送告警信息,具体本文不作限定。
[0140]可选的,在一些发明实施例中,在部署完目标应用容器后,容器调度器还可以根据需求对目标应用容器进行更新,具体如下:
[0141]一、对于云控制平台:
[0142]1、通过修改目标镜像文件实现对目标应用进行更新。
[0143]具体的,云控制平台获取所述目标镜像文件;
[0144]对所述目标镜像文件进行修改;
[0145]将修改后的所述目标镜像文件上传至存储所述目标镜像文件的文件系统,并将应用修改指令发送至所述容器调度器,以使所述容器调度器根据应用修改指令更新所述目标镜像文件,并向所述集群内部署的所述目标应用容器推送修改信息,以使所述目标宿主机根据更新后的所述目标镜像文件创建新的目标应用容器。
[0146]2、通过上传更新的文件包实现对目标应用容器的应用文件进行更新。
[0147]具体的,云控制平台获取所述目标应用容器的应用文件的更新文件;
[0148]根据所述更新文件中的应用标识指示的目标应用,将所述更新文件上传至存储所述目标镜像文件的文件系统;
[0149]并将应用更新指令发送至所述容器调度器,以使所述容器调度器向所述集群内部署的所述目标应用容器推送更新消息,以使所述目标应用容器获取所述更新文件,更新目标应用容器的应用文件。
[0150]二、对于容器调度器:
[0151 ] 1、通过修改目标镜像文件实现对目标应用进行更新。
[0152]具体的,容器调度器接收所述云控制平台发送的应用修改指令,所述应用修改指令用于指示对所述目标镜像文件的修改;
[0153]根据所述应用修改指令更新所述目标镜像文件,并向所述集群内部署的所述目标应用容器推送修改信息,以使所述目标宿主机根据更新后的所述目标镜像文件创建新的目标应用容器。
[0154]2、通过上传更新的文件包实现对目标应用容器的应用文件进行更新。
[0155]具体的,容器调度器接收所述云控制平台发送的应用更新指令,所述应用更新指令用于指示对所述目标应用容器的应用文件的更新;
[0156]根据所述应用更新指令向所述集群内部署的所述目标应用容器推送更新消息,以使所述目标应用容器获取所述应用文件的更新文件,更新目标应用容器的应用文件,即从文件系统拉取该更新文件,并更新到目标应用容器里的应用卷文件系统中。
[0157]以上一、二两种情况中,在更新目标镜像文件时,不需要将目标应用容器中的目标应用退出,即不会影响目标应用的正常运行。另外,升级目标应用需要更新目标应用容器,只需要将更新文件上传至文件系统,然后由容器调度器将应用更新指令推送至各目标应用容器,随后,目标应用容器中的自开发的基础服务自动获取应用部署人员上传的更新文件,并动态更新到目标应用容器中指定的文件夹,从而避免现有技术中需要频繁通过安全外壳(英文全称:Secure Shell,英文简称:SSH)或远程桌面登录应用服务器所造成的Linux密码或其他密码泄露,一定程度上减少安全隐患。
[0158]可选的,在一些发明实施例中,应用访问者还可以通过网络接入模块来访问应用容器中的应用服务,网络接入模块侦听网络请求,当接收到访问请求后,根据访问请求中的网络端口、临时文件(cookie)或统一资源定位符(英文全称:Uniform Resource Locator,英文简称:URL)等路径在内存中查询匹配的应用容器A,然后将访问请求转发到该应用容器A中。如果内存中未能查询到匹配的应用容器,则从缓存中查找匹配的应用容器,然后将访问请求转发到该应用容器。
[0159]为便于理解本发明实施例,可参考图3、图4及图5所示的应用部署的流程图。
[0160]其中,图3为从应用服务配置到在宿主机上部署应用容器、删除应用容器、更新应用容器文件的流程图。
[0161]图4为进行应用服务配置的一个具体实施图,由图4可知,选择部署的应用名称为Z-FMS表单流程管理系统,应用版本为1.0,主机集群为深圳电信I,为该应用配置的资源为中央处理器(英文全称:,英文简称:CPU)*2核和内存512兆字节(英文全称:MegaByte,英文简称:MB),容器节点数为10,所占云盘空间为I千兆字节(英文全称:Gigabyte,英文简称:GB),环境变量配置和端口映射配置的内容可自行定义,本文不作限定,图4仅为本发明举出的一个具体实施例,不作为对本发明的限定。
[0162]图5为整个应用管理系统的内部交互流程图,图5中的应用接入点即为网络接入模块。图5中,管理员可通过登录云控制平台管理集群、基础镜像、资源管理等,应用部署人员可以通过登录云控制平台进行应用部署的相关应用服务配置,然后将启动应用的指令通过云控制平台发送给容器调度器,使得容器调度器在集群内创建应用容器。应用访问者可以通过预留的应用接入点访问某个应用容器中的应用。
[0163]以上对本发明中一种基于应用容器的应用管理方法进行说明,以下分别对执行上述应用容器管理的控制组件60、云控制平台70、及应用管理系统80进行描述。
[0164]—、参照图6,对控制组件60进行说明,所述控制组件60应用于应用管理系统,所述应用管理系统80包括云控制平台70、所述控制组件60和包括至少一台宿主机的集群,控制组件60包括:
[0165]获取模块601,用于接收云控制平台70发送的应用创建指令;
[0166]处理模块602,用于根据资源调度策略和所述获取模块601接收到的所述应用创建指令在所述集群内选择待部署目标应用容器的目标宿主机;
[0167]发送模块603,用于将所述应用创建指令推送至所述集群内的目标宿主机,以使所述目标宿主机根据所述应用创建指令获取目标镜像文件,使用所述目标镜像文件为所述目标镜像文件对应的目标应用创建目标应用容器。
[0168]本发明实施例中,处理模块602根据接收到的应用创建指令选择目标宿主机,并将应用创建指令推送至目标宿主机,以使目标宿主机获取目标镜像文件,使用所述目标镜像文件创建目标应用容器,不需要预先在每台宿主机上安装支撑软件和运行环境,容器调度器即可在集群内部署目标应用容器,一定程度上减少部署操作和提高应用部署的效率。
[0169]可选的,所述处理模块602还用于:
[0170]通过所述获取模块601接收所述云控制平台70发送的容器资源管理指令;
[0171]并根据所述容器资源管理指令管理所述目标应用容器的容器资源,所述容器资源至少包括如下项之一:分配给所述目标应用的应用容器数目、所述目标应用容器的数目,或所述目标应用容器运行时所需的硬件资源。
[0172]可选的,所述处理模块602还用于:
[0173]通过所述获取模块601获取所述目标应用容器的运行状态;
[0174]在确定所述运行状态满足预设管理条件时,根据所述运行状态和预设配置规则管理所述目标应用容器的容器资源,所述容器资源至少包括如下项之一:分配给所述目标应用的应用容器数目、所述目标应用容器的数目,或所述目标应用容器运行时所需的硬件资源。
[0175]可选的,所述运行状态包括软负载和工作状态,所述处理模块602具体执行以下之
[0176]在所述工作状态为失效状态时,使用所述目标镜像文件重新创建包含所述目标应用的第一应用容器;
[0177]在所述软负载超过第一阈值时,执行以下中的至少一项:增加分配给所述目标应用的应用容器的数目、将所述目标应用容器中的目标应用迀移至第二应用容器,或增加所述目标应用运行所需的硬件资源;
[0178]在所述软负载低于第二阈值时,执行以下中的至少一项:减少分配给所述目标应用的应用容器的数量、减少所述目标应用容器的数目,或减少所述目标应用运行所需的硬件资源;
[0179]在所述软负载低于第三阈值时,将所述目标应用容器关闭并删除。
[0180]可选的,所述处理模块602还用于:
[0181 ]在所述目标应用容器失效或运行所述目标应用容器的第一宿主机失效时,启用所述目标应用容器的备份应用容器,或者在第一宿主机所属的集群内中的任一宿主机上创建所述目标应用容器的副本。
[0182]二、参照图7,对云控制平台70进行说明,所述云控制平台70应用于应用管理系统80,所述应用管理系统80包括所述云控制平台70、容器调度器和包括至少一台宿主机的集群,云控制平台70包括:
[0183]获取模块701,用于获取目标镜像文件;
[0184]处理模块702,用于对所述获取模块701获取到的所述目标镜像文件对应的目标应用进行应用服务配置;
[0185]发送模块703,用于发送应用创建指令至所述容器调度器,以使所述容器调度器根据所述应用创建指令在集群内选择待部署目标应用容器的目标宿主机,并将应用创建指令推送至目标宿主机,以使所述目标宿主机根据应用创建指令获取目标镜像文件,使用所述目标镜像文件为所述目标镜像文件对应的目标应用创建目标应用容器。
[0186]本发明实施例中,处理模块702为目标应用进行应用服务配置,并通过发送模块703将启用目标应用、以及创建相应的目标应用容器的应用创建指令发送给容器调度器,容器调度器获取目标镜像文件,并使用所述目标镜像文件创建目标应用容器,实现不需要预先在每台宿主机上安装支撑软件和运行环境,容器调度器即可自动在集群内部署目标应用容器,一定程度上减少部署操作和提高应用部署的效率,也减少了传统的命令式人工部署的错误操作概率。
[0187]可选的,所述处理模块702具体用于:
[0188]配置目标应用的应用参数、目标应用的环境变量和目标应用的端口映射。
[0189]可选的,所述处理模块702具体用于:
[0190]在使用所述目标镜像文件在所述集群内部署所述目标应用容器时,根据所述目标镜像文件中的集群标识选择所述集群标识指示的目标集群类型。
[0191]可选的,所述处理模块702还用于:
[0192]通过所述发送模块703将容器资源管理指令发送至所述容器调度器,以使所述容器调度器根据所述容器资源管理指令的指示内容管理所述目标应用容器的容器资源,所述容器资源至少包括如下项之一:分配给所述目标应用的应用容器数目、所述目标应用容器的数目,或所述目标应用容器运行时所需的硬件资源。
[0193]可选的,所述处理模块702在通过所述发送模块703将容器资源管理指令发送至所述容器调度器之前,还用于:
[0194]通过所述获取模块701获取所述目标应用容器的运行状态;
[0195]在确定所述运行状态满足预设管理条件时,根据所述运行状态管理所述目标应用容器的容器资源,所述容器资源至少包括如下项之一:分配给所述目标应用的应用容器数目、所述目标应用容器的数目,或所述目标应用容器运行时所需的硬件资源;
[0196]所述容器资源管理指令至少包含以下项之一:重新创建包含所述目标应用的第一应用容器、关闭并删除所述目标应用容器、分配给所述目标应用的应用容器数目、所述目标应用容器的数目,或所述目标应用容器运行时所需的硬件资源。
[0197]可选的,所述运行状态包括软负载和工作状态,所述处理模块702具体执行以下之
[0198]在所述软负载超过第一阈值时,执行以下中的至少一项:增加分配给所述目标应用的应用容器的数目、将所述目标应用容器中的目标应用迀移至第二应用容器,或增加所述目标应用运行所需的硬件资源;
[0199]在所述软负载低于第二阈值时,执行以下中的至少一项:减少分配给所述目标应用的应用容器的数量、减少所述目标应用容器的数目,或减少所述目标应用运行所需的硬件资源。
[0200]三、参考图8,所述应用管理系统80包括:
[0201]如图6所述的控制组件60;
[0202]如图7所述的云控制平台70;
[0203]包括至少一台宿主机的集群。
[0204]其中,控制组件60包括容器调度器601.
[0205]所述云控制平台70,用于获取目标镜像文件,并对所述获取模块获取到的所述目标镜像文件对应的目标应用进行应用服务配置,以及发送应用创建指令至所述容器调度器601;
[0206]所述容器调度器601,用于根据所述云控制平台70发送的所述应用创建指令在集群内选择待部署目标应用容器的目标宿主机,并将应用创建指令推送至目标宿主机,以使所述目标宿主机根据应用创建指令获取目标镜像文件,使用所述目标镜像文件为所述目标镜像文件对应的目标应用创建目标应用容器。
[0207]其中,在使用所述目标镜像文件在所述集群内部署所述目标应用容器时,所述云控制平台70具体用于:
[0208]根据所述目标镜像文件中的集群标识选择所述集群标识指示的目标集群类型。
[0209]可选的,在一些发明实施例中,在部署完目标应用容器后,云控制平台70或容器调度器601还可以对目标应用容器的容器资源进行管理,例如删除容器、增加容器、增加或减少容器的硬件资源,以及重新创建容器等。其中,所述容器资源至少包括如下项之一:分配给所述目标应用的应用容器数目、所述目标应用容器的数目,或所述目标应用容器运行时所需的硬件资源。以下分别进行说明:
[0210]1、容器调度器601根据云控制平台70发送的容器资源管理指令所指示的内容管理容器资源。
[0211]a、应用部署人员根据需要在云控制平台70管理容器资源。
[0212]b、应用部署人员根据获取的目标应用容器的运行状态管理容器资源。
[0213]然后,应用部署人员会将用于指示管理容器资源的信息的容器资源管理指令发送给容器调度器601,使得容器调度器根据所述容器资源管理指令管理所述目标应用容器的容器资源。
[0214]需要说明的是,对于云控制平台而言,仅仅针对容器资源的相关参数进行设置,最终对容器资源的配置由容器调度器执行。
[0215]具体关于云控制平台70根据运行状态来管理容器资源的相关说明,以及判断是否需要进行告警,均可以参考上述图2所对应的方式实施例,此处不再赘述。
[0216]2、容器调度器601根据获取的目标应用容器的运行状态自动管理容器资源。
[0217]具体为:通过运行在宿主机上的宿主机守护模块获取所述目标应用容器的运行状态;
[0218]在确定所述运行状态满足预设管理条件时,根据所述运行状态和预设配置规则管理所述目标应用容器的容器资源。
[0219]其中,所述容器资源管理指令至少包含以下项之一:重新创建包含所述目标应用的第一应用容器、关闭并删除所述目标应用容器、分配给所述目标应用的应用容器数目、所述目标应用容器的数目,或所述目标应用容器运行时所需的硬件资源。
[0220]具体关于容器调度器601根据运行状态自动管理容器资源的相关说明,以及判断是否需要进行告警,均可以参考上述图2所对应的方式实施例,此处不再赘述。
[0221]可选的,在一些发明实施例中,在部署完目标应用容器后,容器调度器601还可以根据需求对目标应用容器进行修改或升级,具体如下:
[0222]一、对于云控制平台70:
[0223]1、通过修改目标镜像文件实现对目标应用进行更新。
[0224]具体的,云控制平台获取所述目标镜像文件;
[0225]对所述目标镜像文件进行修改;
[0226]将修改后的所述目标镜像文件上传至存储所述目标镜像文件的文件系统,并将应用修改指令发送至所述容器调度器,以使所述容器调度器601根据应用修改指令更新所述目标镜像文件,并向所述集群内部署的所述目标应用容器推送修改信息,以使所述目标宿主机根据更新后的所述目标镜像文件创建新的目标应用容器。
[0227]2、通过上传更新的文件包实现对目标应用容器的应用文件进行更新。
[0228]具体的,云控制平台获取所述目标应用容器的应用文件的更新文件;
[0229]根据所述更新文件中的应用标识指示的目标应用,将所述更新文件上传至存储所述目标镜像文件的文件系统;
[0230]并将应用更新指令发送至所述容器调度器601,以使所述容器调度器601向所述集群内部署的所述目标应用容器推送更新消息,以使所述目标应用容器获取所述更新文件,更新目标应用容器的应用文件。
[0231]二、对于容器调度器601:
[0232]1、通过修改目标镜像文件实现对目标应用进行更新。
[0233]具体的,容器调度器601接收所述云控制平台发送的应用修改指令,所述应用修改指令用于指示对所述目标镜像文件的修改;
[0234]并根据所述应用修改指令更新所述目标镜像文件,并向所述集群内部署的所述目标应用容器推送修改信息,以使所述目标宿主机根据更新后的所述目标镜像文件创建新的目标应用容器。
[0235]2、通过上传更新的文件包实现对目标应用容器的应用文件进行更新。
[0236]具体的,容器调度器601接收所述云控制平台发送的应用更新指令,所述应用更新指令用于指示对所述目标应用容器的应用文件的更新;
[0237]并根据所述应用更新指令向所述集群内部署的所述目标应用容器推送更新消息,以使所述目标应用容器获取所述应用文件的更新文件,更新目标应用容器的应用文件。
[0238]以上一、二两种情况中,在更新目标应用容器时,不需要将目标应用容器中的目标应用退出,另外,升级目标应用需要更新目标应用容器,只需要将更新文件上传至文件系统,然后由容器调度器601将应用更新指令推送至各目标应用容器,随后,目标应用容器中的自开发的基础服务自动获取应用部署人员上传的更新文件,并动态更新到目标应用容器中指定的文件夹,从而避免现有技术中需要频繁通过SSH或远程桌面登录应用服务器所造成的Linux密码或其他密码泄露,一定程度上减少安全隐患。
[0239]需要说明的是,在本发明各实施例(包括图6及图7所示的各实施例)中所有的获取模块对应的实体设备可以为接s收器,所有的发送模块对应的实体设备可以为发射器,所有的处理模块对应的实体设备可以为处理器。图6以及图7所示的各装置均可以具有如图9所示的结构,当其中一种装置具有如图9所示的结构时,图9中的处理器、发射器和接收器实现前述对应该装置的装置实施例提供的处理模块、发送模块和获取模块相同或相似的功能,图9中的存储器存储处理器执行上述基于应用容器的应用管理方法时需要调用的程序代码。
[0240]本发明还提供一种计算机存储介质,该介质存储有程序,该程序执行时包括上述基于应用容器的应用管理方法中的部分或者全部步骤。
[0241 ]本发明还提供一种计算机存储介质,该介质存储有程序,该程序执行时包括上述控制组件或云控制平台或应用管理系统执行上述基于应用容器的应用管理方法中的部分或者全部步骤。
[0242]例如,本文中的控制组件的结构中包括处理器、接收器和发射器,所述处理器被配置为支持控制组件执行上述方法中相应的功能。所述接收器和所述发射器用于支持控制组件与云控制平台之间的通信,向云控制平台发送上述方法中所涉及的信息或者指令。所述控制组件还可以包括存储器,所述存储器用于与处理器耦合,其保存运营商服务器必要的程序代码和数据。云控制平台类似,不再赘述。
[0243]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0244]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0245]在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0246]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0247]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0248]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0249]以上对本发明所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【主权项】
1.一种基于应用容器的应用管理方法,其特征在于,所述方法应用于应用管理系统中的容器调度器,所述应用管理系统包括云控制平台、所述容器调度器和包括至少一台宿主机的集群,所述方法包括: 所述容器调度器接收云控制平台发送的应用创建指令; 所述容器调度器将所述应用创建指令推送至所述集群内的目标宿主机,以使所述目标宿主机根据所述应用创建指令获取目标镜像文件,使用所述目标镜像文件为所述目标镜像文件对应的目标应用创建目标应用容器。2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 所述容器调度器接收所述云控制平台发送的容器资源管理指令; 所述容器调度器根据所述容器资源管理指令管理所述目标应用容器的容器资源,所述容器资源至少包括如下项之一:分配给所述目标应用的应用容器数目、所述目标应用容器的数目,或所述目标应用容器运行时所需的硬件资源。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括: 所述容器调度器获取所述目标应用容器的运行状态; 在确定所述运行状态满足预设管理条件时,所述容器调度器根据所述运行状态和预设配置规则管理所述目标应用容器的容器资源,所述容器资源至少包括如下项之一:分配给所述目标应用的应用容器数目、所述目标应用容器的数目,或所述目标应用容器运行时所需的硬件资源。4.根据权利要求3所述的方法,其特征在于,所述运行状态包括软负载和工作状态,所述根据所述运行状态和预设配置规则管理所述目标应用容器的容器资源,包括以下之一: 在所述工作状态为失效状态时,所述容器调度器使用所述目标镜像文件重新创建包含所述目标应用的第一应用容器; 在所述软负载超过第一阈值时,所述容器调度器执行以下中的至少一项:增加分配给所述目标应用的应用容器的数目、将所述目标应用容器中的目标应用迀移至第二应用容器,或增加所述目标应用运行所需的硬件资源; 在所述软负载低于第二阈值时,所述容器调度器执行以下中的至少一项:减少分配给所述目标应用的应用容器的数量、减少所述目标应用容器的数目,或减少所述目标应用运行所需的硬件资源; 在所述软负载低于第三阈值时,将所述目标应用容器关闭并删除。5.根据权利要求4所述的方法,其特征在于,所述方法还包括: 在所述目标应用容器失效或运行所述目标应用容器的第一宿主机失效时,所述容器调度器启用所述目标应用容器的备份应用容器,或者在第一宿主机所属的集群内中的任一宿主机上创建所述目标应用容器的副本。6.根据权利要求5所述的方法,其特征在于,所述方法还包括: 所述容器调度器接收所述云控制平台发送的应用修改指令,所述应用修改指令用于指示对所述目标镜像文件的修改; 并根据所述应用修改指令更新所述目标镜像文件,并向所述集群内部署的所述目标应用容器推送修改信息,以使所述目标宿主机根据更新后的所述目标镜像文件创建新的目标应用容器。7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括: 所述容器调度器接收所述云控制平台发送的应用更新指令,所述应用更新指令用于指示对所述目标应用容器的文件的更新; 所述容器调度器根据所述应用更新指令向所述集群内部署的所述目标应用容器推送更新消息,以使所述目标应用容器更获取所述更新文件,更新目标应用容器的应用文件。8.—种基于应用容器的应用管理系统,其特征在于,所述应用管理系统包括云控制平台、容器调度器和包括至少一台宿主机的集群; 所述云控制平台,用于获取目标镜像文件,并对所述获取模块获取到的所述目标镜像文件对应的目标应用进行应用服务配置,以及发送应用创建指令至所述容器调度器; 所述容器调度器,用于将所述云控制平台发送的所述应用创建指令推送至所述集群内的目标宿主机,以使所述目标宿主机根据所述应用创建指令获取目标镜像文件,使用所述目标镜像文件为所述目标镜像文件对应的目标应用创建目标应用容器。9.根据权利要求8所述的应用管理系统,其特征在于,所述云控制平台具体用于: 在使用所述目标镜像文件在所述集群内部署所述目标应用容器时,根据所述目标镜像文件中的集群标识选择所述集群标识指示的目标集群类型。10.根据权利要求9所述的应用管理系统,其特征在于,所述云控制平台还用于: 将容器资源管理指令发送至所述容器调度器,以使所述容器调度器根据所述容器资源管理指令的指示内容管理所述目标应用容器的容器资源; 所述容器资源至少包括如下项之一:分配给所述目标应用的应用容器数目、所述目标应用容器的数目,或所述目标应用容器运行时所需的硬件资源。11.根据权利要求10所述的应用管理系统,其特征在于,所述云控制平台在将容器资源管理指令发送至所述容器调度器之前,还用于: 获取所述目标应用容器的运行状态; 在确定所述运行状态满足预设管理条件时,根据所述运行状态管理所述目标应用容器的容器资源,所述容器资源至少包括如下项之一:分配给所述目标应用的应用容器数目、所述目标应用容器的数目,或所述目标应用容器运行时所需的硬件资源; 所述容器资源管理指令至少包含以下项之一:重新创建包含所述目标应用的第一应用容器、关闭并删除所述目标应用容器、分配给所述目标应用的应用容器数目、所述目标应用容器的数目,或所述目标应用容器运行时所需的硬件资源。12.根据权利要求11所述的应用管理系统,其特征在于,所述运行状态包括软负载和工作状态,所述云控制平台具体执行以下之一: 在所述软负载超过第一阈值时,执行以下中的至少一项:增加分配给所述目标应用的应用容器的数目、将所述目标应用容器中的目标应用迀移至第二应用容器,或增加所述目标应用运行所需的硬件资源; 在所述软负载低于第二阈值时,执行以下中的至少一项:减少分配给所述目标应用的应用容器的数量、减少所述目标应用容器的数目,或减少所述目标应用运行所需的硬件资源。13.根据权利要求9至12任一所述的应用管理系统,所述容器调度器还用于: 获取所述目标应用容器的运行状态; 在确定所述运行状态满足预设管理条件时,根据所述运行状态和预设配置规则管理所述目标应用容器的容器资源,所述容器资源至少包括如下项之一:分配给所述目标应用的应用容器数目、所述目标应用容器的数目,或所述目标应用容器运行时所需的硬件资源。14.根据权利要求13所述的应用管理系统,所述运行状态包括软负载和工作状态,所述根据所述运行状态和预设配置规则管理所述目标应用容器的容器资源,包括以下之一: 在所述工作状态为失效状态时,所述容器调度器使用所述目标镜像文件重新创建包含所述目标应用的第一应用容器; 在所述软负载超过第一阈值时,所述容器调度器执行以下中的至少一项:增加分配给所述目标应用的应用容器的数目、将所述目标应用容器中的目标应用迀移至第二应用容器,或增加所述目标应用运行所需的硬件资源; 在所述软负载低于第二阈值时,所述容器调度器执行以下中的至少一项:减少分配给所述目标应用的应用容器的数量、减少所述目标应用容器的数目,或减少所述目标应用运行所需的硬件资源; 在所述软负载低于第三阈值时,将所述目标应用容器关闭并删除。
【文档编号】G06F9/455GK106020930SQ201610318896
【公开日】2016年10月12日
【申请日】2016年5月13日
【发明人】包琼林, 刘祥涛, 姚子建, 赵彦晖, 孙淏添
【申请人】深圳市中润四方信息技术有限公司