CN109558143B - 一种集群中部署应用的方法及装置 - Google Patents
一种集群中部署应用的方法及装置 Download PDFInfo
- Publication number
- CN109558143B CN109558143B CN201710868610.7A CN201710868610A CN109558143B CN 109558143 B CN109558143 B CN 109558143B CN 201710868610 A CN201710868610 A CN 201710868610A CN 109558143 B CN109558143 B CN 109558143B
- Authority
- CN
- China
- Prior art keywords
- application
- cluster
- deployed
- database
- preset
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种集群中部署应用的方法,当需要在未部署某一应用的集群中部署该应用时,直接在预设的第一数据库中查找是否存在与该应用对应的部署文件,该部署文件中包含有该应用的资源文件和可变参数文件。若预设的第一数据库中存在与该应用对应的部署文件,直接接收可变参数文件中的每个可变参数的值,并将可变参数的值写入该应用所对应的资源文件中,即可获得该应用的可执行资源信息,调用集群的应用程序编程接口API,运行获取到的与该应用对应的可执行资源信息,即可实现在集群中部署该应用。采用上述方法在集群中部署应用,大大降低了在集群中部署应用的操作的复杂度,极大的提高了集群中应用部署的速度。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种集群中部署应用的方法及装置。
背景技术
在一个集群中部署一个应用时,如在kubernetes(简称:k8s)集群中部署一个应用时,需要由技术人员在Jenkins上编写该应用对应的Jenkins文件,Jenkins对该Jenkins文件进行编译,制作应用对应的镜像,将该应用对应的镜像推送到docker仓库中。docker仓库根据该应用对应的镜像制作该应用对应的可执行资源信息,调用该kubernetes集群的API(Application Programming Interface,应用程序编程接口),在该kubernetes集群上运行该应用对应的可执行资源信息,以实现在该kubernetes集群部署该应用。
采用上述在kubernetes集群上部署应用的方法时,若需要在没有部署该应用的集群上部署同一应用时,需要在Jenkins上编写一个该应用对应的新的Jenkins文件,或者修改该应用对应的原Jenkins文件中的配置参数,然后,Jenkins重新进行编译,制作该应用对应的镜像,该应用对应的镜像推送到docker仓库中,操作过程复杂,应用部署速度慢。
发明内容
本发明解决的技术问题在于提供一种集群中部署应用的方法及装置,从而能够简化在集群中部署应用的复杂度,提高应用部署的速度。
为此,本发明解决技术问题的技术方案是:
一种集群中部署应用的方法,所述方法包括:
查找预设的第一数据库中是否存在第一应用对应的部署文件,所述预设的第一数据库包括应用与部署文件的对应关系,一个应用对应的部署文件包括该应用的资源文件和该应用的可变参数文件;
当所述预设的第一数据库中存在第一应用对应的部署文件时,接收所述第一应用对应的可变参数文件中每个可变参数的值;
将所述每个可变参数的值写入所述第一应用对应的资源文件,获得所述第一应用的可执行资源信息;
调用需部署所述第一应用的集群的应用程序编程接口API,运行所述第一应用对应的可执行资源信息,以在所述集群中部署所述第一应用。
可选的,所述方法还包括:
将所述第一应用作为已部署的应用,在预设的第二数据库中存储所述已部署的应用对应的可执行资源信息,所述预设的第二数据库包括已部署的应用与可执行资源信息的对应关系。
可选的,所述方法还包括:
监测是否需要在所述集群中恢复第二应用,所述第二应用是一个在所述集群中已部署的应用;
当需要在所述集群中恢复第二应用时,从所述预设的第二数据库中获取所述第二应用对应的可执行资源信息;
调用所述集群的API,运行所述第二应用对应的可执行资源信息,以在所述集群中部署所述第二应用。
可选的,监测是否需要在所述集群中恢复第二应用包括:
监测所述集群中正在运行的应用;
比较所述正在运行的应用与所述预设的第二数据库中已部署的应用是否一致;
当所述正在运行的应用与所述预设的第二数据库中已部署的应用不一致时,获取预设的第二数据库中,没有在所述集群中运行的已部署的应用作为所述第二应用。
可选的,创建所述预设的第一数据库包括:
接收Jenkins发送的应用的镜像;
根据所述应用的镜像制作所述应用的部署文件;
存储所述应用与所述应用的部署文件的对应关系,创建所述预设的第一数据库。
一种集群中部署应用的装置,其特征在于,所述装置包括:
查找单元,用于查找预设的第一数据库中是否存在第一应用对应的部署文件,所述预设的第一数据库包括应用与部署文件的对应关系,一个应用对应的部署文件包括该应用的资源文件和该应用的可变参数文件;
接收单元,用于当所述预设的第一数据库中存在第一应用对应的部署文件时,接收所述第一应用对应的可变参数文件中每个可变参数的值;
写入单元,用于将所述每个可变参数的值写入所述第一应用对应的资源文件,获得所述第一应用的可执行资源信息;
第一应用部署单元,用于调用需部署所述第一应用的集群的应用程序编程接口API,运行所述第一应用对应的可执行资源信息,以在所述集群中部署所述第一应用。
可选的,该装置还包括:
存储单元,用于将所述第一应用作为已部署的应用,在预设的第二数据库中存储所述已部署的应用对应的可执行资源信息,所述预设的第二数据库包括已部署的应用与可执行资源信息的对应关系。
可选的,该装置还包括:
监测单元,用于监测是否需要在所述集群中恢复第二应用,所述第二应用是一个在所述集群中已部署的应用;
获取单元,用于当需要在所述集群中恢复第二应用时,从所述预设的第二数据库中获取所述第二应用对应的可执行资源信息;
第二应用部署单元,用于调用所述集群的API,运行所述第二应用对应的可执行资源信息,以在所述集群中部署所述第二应用。
一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述的集群中部署应用的方法。
一种存储介质,其上存储有程序,该程序被处理器执行时实现所述的集群中部署应用的方法。
通过上述技术方案可知,本发明有如下有益效果:
本发明提供了一种集群中部署应用的方法,当需要在未部署某一应用的集群中部署该应用时,直接在预设的第一数据库中查找是否存在与该应用对应的部署文件,该部署文件中包含有该应用的资源文件和可变参数文件。若预设的第一数据库中存在与该应用对应的部署文件,直接接收可变参数文件中的每个可变参数的值,并将可变参数的值写入该应用所对应的资源文件中,即可获得该应用的可执行资源信息,调用集群的应用程序编程接口API,运行获取到的与该应用对应的可执行资源信息,即可实现在集群中部署该应用。采用上述方法在集群中部署应用,若预设的第一数据库中存在该应用对应的部署文件,此时,无需再次执行编译Jenkins文件、制作镜像、将镜像推至docker仓库等操作,直接利用该部署文件,即可在集群中部署该应用。大大降低了在集群中部署应用的操作的复杂度,极大的提高了集群中应用部署的速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的集群中应用部署的方法流程图;
图2为本发明提供的集群中应用恢复的方法流程图;
图3为本发明提供的集群中应用部署的装置结构图。
具体实施方式
为了给出集群中部署应用的实现方案,本发明实施例提供了一种集群中部署应用的方法及装置,可选的,本发明实施例提供的集群中部署应用的方法及装置,可以应用于kubernetes(简称:k8s)集群中部署应用的场景。以下结合说明书附图对本发明的实施例进行说明,应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
现有技术中,存在一个应用,该应用已被部署在至少一个集群中,当需要在未部署该应用的集群上部署该应用时,一般采用以下两种方法在该集群上进行该应用的部署。
第一种方法,在已部署该应用的集群上,删除已部署的该应用。并从Jenkins中,找到在之前部署该应用时创建的Jenkins文件,对该Jenkins文件中表示集群地址的配置参数进行修改,再对该修改过的Jenkins文件重新进行编译,制作对应镜像,将镜像推送到docker仓库等操作。再由docker仓库根据该应用的镜像,制作与该应用对应的可执行资源信息,最终实现在未部署该应用的集群上部署该应用。
例如,在A集群上已经部署了应用P,现要将应用P部署至未部署应用P的B集群上。在B集群上部署应用P时,需要将A集群中已经部署的应用P删除,并在之前部署应用P时创建的Jenkins文件上,对表示集群地址的配置参数进行修改,再对该修改过配置参数的Jenkins文件重新进行编译,制作镜像,推送镜像至docker仓库中等操作,再由docker仓库制作该应用P的可执行资源信息,最终实现在B集群上部署该应用P。
第二种方法,当需要在未部署某一应用的集群上部署该应用时,不必在已部署该应用的集群上,删除已部署的该应用,仅在未部署该应用的集群上,重新部署该应用即可。具体地,重新部署该应用时,需要由技术人员在Jenkins上再次编写与该应用对应的Jenkins文件,Jenkins对该Jenkins文件进行编译,制作与该应用对应的镜像,并将该应用对应的镜像推送到docker仓库中。docker仓库根据与该应用对应的镜像,制作与之对应的可执行资源信息,调用该集群的API,在该集群上运行由docker制作的与该应用对应的可执行资源信息,最终实现在该集群上部署该应用。
例如,在C集群上已经部署了应用Q,现要将该应用Q部署至未部署该应用的D集群上。则需要在D集群上重新部署该应用Q,在创建该应用Q的过程中,技术人员需要再次编写应用Q对应的Jenkins文件,对该Jenkins文件进行编译,制作与之对应的镜像,并将该镜像推到docker仓库等操作,再由docker仓库根据镜像制作可执行资源信息,最终实现在D集群上部署该应用Q。
通过上述介绍可知,现有技术中当需要在未部署某一应用的集群上,部署一个在其它集群中已部署的应用时,无论是采用第一种方法还是采用第二种方法,都需要再次进行对Jenkins文件进行编译,制作镜像,将镜像推到docker仓库等操作。也就是说,采用现有技术的方法重复部署一个应用时,总是需要反复执行编译、制作镜像、推镜像至docker仓库等操作。操作过程繁琐复杂,并且由于操作复杂,相应的降低了应用部署的速度。
本申请提供了一种集群中部署应用的方法,当需要在未部署某一应用的集群中部署该应用时,直接在第一数据库中查找是否存在与该应用对应的部署文件,该部署文件中包含有该应用的资源文件和可变参数文件。若第一数据库中存在与该应用对应的部署文件,直接接收可变参数文件中的每个可变参数的值,并将可变参数的值写入该应用所对应的资源文件中,即可获得该应用的可执行资源信息,调用集群的应用程序编程接口API,运行获取到的与该应用对应的可执行资源信息,即可实现在集群中部署该应用。采用上述方法在集群中部署应用,若第一数据库中存在该应用对应的部署文件,此时,无需再次执行编译Jenkins文件、制作镜像、将镜像推至docker仓库等操作,直接利用该部署文件,即可在集群中部署该应用。大大降低了在集群中部署应用的操作的复杂度,极大的提高了集群中应用部署的速度。
方法实施例
参见图1,为本申请提供的集群中部署应用的方法的流程图。该种集群中部署应用的方法包括:
步骤101:查找预设的第一数据库中是否存在第一应用对应的部署文件,预设的第一数据库包括应用与部署文件的对应关系,一个应用对应的部署文件包括该应用的资源文件和该应用的可变参数文件。
预先创建预设的第一数据库,该预设的第一数据库存储有应用与部署文件的对应关系。一般情况下,该应用采用应用的版本号表示,即该预设的第一数据库中存储有应用的版本号与部署文件的对应关系。当然,该应用还可以采用其它的方式进行表示,这里不再赘述。这里需要说明的是,该预设的第一数据库中的部署文件所对应的应用,都是已经在至少一个集群中部署的应用,不包括从未在任意一个集群部署过的应用。
对于预设的第一数据库中一个应用的部署文件来说,包括该应用的资源文件和该应用的可变参数文件。该应用的资源文件是部署该应用时,可被集群的API读取的资源文件。而可变参数文件包括多个可变参数,该可变参数都是该资源文件中参数值可变的参数。并且,一般情况下,对于一个应用来说,可变参数文件中所包含的可变参数的种类和个数是固定不变的,在部署该应用时,该可变参数的值可变。
为了便于理解,接下来,对预设的第一数据库的创建方法进行详细的介绍:
接收Jenkins发送的应用的镜像。
根据所述应用的镜像制作所述应用的部署文件。
存储所述应用与所述应用的部署文件的对应关系,创建所述预设的第一数据库。
在第一次部署某一应用时,需要由技术人员在Jenkins上编写与该应用对应的Jenkins文件,并对Jenkins文件进行编译,再根据编译得到的文件,制作与该应用对应的镜像。
镜像制作完成后,一方面,Jenkins将该镜像推至docker仓库中,由docker仓库根据镜像,制作该应用的可执行资源信息,调用该集群的API,在该集群上运行该应用的可执行资源信息,实现在该集群上部署该应用。另一方面,在部署该应用的同时,系统接收Jenkins发送的应用的镜像,根据该应用的镜像制作该应用的部署文件,建立应用与应用的部署文件之间的对应关系,并将该对应关系保存至预设的第一数据库中。
同样地,第一次在集群中部署其它应用时,系统接受Jenkins发送的应用的镜像,制作该应用的部署文件,并将应用与应用的部署文件之间的对应关系保存至预设的第一数据库。
需要说明的是,预设的第一数据库中,应保存所有在集群中已经部署的应用的部署文件,以及应用与部署文件之间的对应关系。
当需要在某个未部署第一应用的集群中部署第一应用时,在预设的第一数据库中,查找是否存在第一应用所对应的部署文件,若存在,表示该第一应用已在至少一个集群中被部署过;若不存在,则表示该第一应用从未在任意一个集群中部署过。对于预设的第一数据库不存在的应用,采用现有技术的方法,在集群中进行部署;本申请的技术方案针对于已在至少一个集群中被部署过的应用,即在预设的第一数据库中存在的应用,具体部署方式如下。
步骤102:当所述预设的第一数据库中存在第一应用对应的部署文件时,接收所述第一应用对应的可变参数文件中每个可变参数的值。
在第一数据库中,根据其中保存的应用与部署文件之间的对应关系进行查找,查找第一应用所对应的部署文件。当查找到第一数据库中存在第一应用对应的部署文件时,获取与第一应用对应的部署文件中包含的可变参数文件,并将可变参数文件中的可变参数显示在显示界面上,由技术人员根据实际情况填写每个可变参数的值,即系统接收第一应用对应的可变参数文件中每个可变参数的值。
步骤103:将所述每个可变参数的值写入所述第一应用对应的资源文件,获得所述第一应用的可执行资源信息。
当在第一数据库中查找到与第一应用对应的部署文件时,系统相应地获取该部署文件中包含的第一应用对应的资源文件。将在步骤102中接收到的第一应用对应的可变参数文件中包含的每个可变参数的值,相应地写入第一应用对应的资源文件中,即可获得第一应用的可执行资源信息。
需要说明的是,可变参数的值在资源文件中以占位符的形式存在,也就是说,在资源文件中,可变参数文件中可变参数的值可能为初始值,可能为空值,也可能为上一次部署该应用时根据当时的情况而填写的值。
由于可变参数的值在资源文件中以占位符的形式存在,当资源文件中可变参数的值为初始值时,再次部署应用时,部署人员根据实际情况填写的可变参数的值,将覆盖该初始值,作为新的可变参数值写入资源文件中;当可变参数的值为空值时,将部署人员根据实际情况填写的可变参数的值写入资源文件,给资源文件中各个可变参数的值赋值;当可变参数的值为上次部署该应用时填写的值时,部署人员根据实际情况填写的可变参数的值,将覆盖上次部署该应用时填写的值,将本次部署时填写的可变参数的值写入资源文件。
步骤104:调用需部署所述第一应用的集群的应用程序编程接口API,,运行所述第一应用对应的可执行资源信息,以在所述集群中部署所述第一应用。
调用需部署第一应用的集群的应用程序编程接口API一般采用以下两种方法:一种方法是直接调用API应用程序编程接口;另一种方法是通过kubectl工具,调用API应用程序接口。
调用需部署第一应用的集群的应用程序编程接口API,运行在步骤103中生成的与第一应用对应的可执行资源信息,即可实现在未部署第一应用的集群中,部署第一应用。
为了便于理解,现对本实施例提供的集群中部署应用的方法进行举例说明:
E集群中已部署了应用M,现要在未部署应用M的F集群中,部署应用M。
在E集群中第一次部署应用M时,技术人员在Jenkins上编写了与应用M对应的Jenkins文件,并对该Jenkins文件进行了编译,制作镜像等操作,Jenkins将应用M对应的镜像发送至docker仓库,由docker仓库根据应用M的镜像文件,制作应用M的可执行资源信息,调用API在E集群中运行应用M的可执行资源信息,以便在E集群中部署该应用M。在E集群中部署应用M的同时,根据Jenkins制作的应用M的镜像文件,制作应用M的部署文件,建立应用M与其部署文件之间的对应关系,并将应用M与其部署文件的对应关系保存至预设的第一数据库,其中,应用M的部署文件中包含应用M的资源文件以及应用M的可变资源文件。
现要在未部署应用M的F集群中部署应用M,直接在预设的第一数据库中,根据其中保存的应用与部署文件之间的对应关系,查找预设的第一数据库中是否存在与应用M对应的部署文件。
当在预设的第一数据库中找到应用M对应的部署文件时,提取该应用M对应的部署文件,即提取该应用M的资源文件与可变参数文件。
技术人员根据实际情况,在应用M的可变参数文件中,填写每个可变参数的值,具体的,技术人员可以根据界面的亮度,以及应用M所要部署的位置等信息,相应地在可变参数文件中相应的填写可变参数的值。将每个可变参数的值,相应地写入应用M的资源文件中,即可获得应用M对应的可执行资源信息。
直接调用F集群的应用程序编程接口API,或者通过kubectl工具调用F集群的应用程序编程接口API,运行获取到的第一应用对应的可执行资源信息,即可实现在未部署应用M的F集群上,部署应用M。
本实施例提供的一种集群中部署应用的方法,当需要在未部署某一应用的集群中部署该应用时,直接在预设的第一数据库中查找是否存在与该应用对应的部署文件,该部署文件中包含有该应用的资源文件和可变参数文件。若预设的第一数据库中存在与该应用对应的部署文件,直接接收可变参数文件中的每个可变参数的值,并将可变参数的值写入该应用所对应的资源文件中,即可获得该应用的可执行资源信息,调用集群的应用程序编程接口API,运行获取到的与该应用对应的可执行资源信息,即可实现在集群中部署该应用。采用上述方法在集群中部署应用,若预设的第一数据库中存在该应用对应的部署文件,此时,无需再次执行编译Jenkins文件、制作镜像、将镜像推至docker仓库等操作,直接利用该部署文件,即可在集群中部署该应用。大大降低了在集群中部署应用的操作的复杂度,极大的提高了集群中应用部署的速度。
在一种实现场景中,某些在该集群中已部署的应用,不能够正常运行。例如,集群重新启动后,某些在集群中已部署的应用,可能会在该集群中没有重新部署,或部署错误等情况,进而导致这些应用在该集群中不能正常运行。
现有技术中,集群重新启动后,需要由部署人员监测集群中已部署的所有应用是否均随集群的启动而重新部署,若发现有之前已部署的应用在集群重新启动后未重新部署,或发现集群已部署的应用中存在未能正常运行的应用,都需要由部署人员再次手动部署该应用,即由部署人员选择需要重新部署的Jenkins文件,再次执行对Jenkins文件的编译、制作镜像、将镜像推至docker仓库中等操作,实现对该应用的部署。操作流程繁琐复杂,此外,部署人员再手动部署该应用,增加了部署人员的工作量,浪费了部署人员的工作时间。
为了解决上述问题,本实施例提供了一种集群中应用的恢复方法,该方法包括:
步骤201:监测是否需要在所述集群中恢复第二应用,所述第二应用是一个在所述集群中已部署的应用。
步骤202:当需要在所述集群中恢复第二应用时,从所述预设的第二数据库中获取所述第二应用对应的可执行资源信息。
预先建立预设的第二数据库,该预设的第二数据库中包含有已在集群中部署的所有应用的可执行资源信息,以及所有应用与其可执行资源信息之间的对应关系。现对预设的第二数据库的建立方法进行具体介绍:
在集群中部署某一应用时,需要由docker仓库根据Jenkins推送过来的该应用的镜像文件,制作该应用的可执行资源文件。可执行资源文件制作完成后,一方面,由应用程序编程接口API调用该可执行资源文件,在集群中运行该可执行资源文件,实现在集群中部署该应用。另一方面,系统存储该应用的可执行资源文件至预设的第二数据库,并建立应用与可执行资源文件之间的对应关系,将该对应关系也存储至预设的第二数据库。
同样地,在集群中部署其它应用时,将该应用的可执行资源信息,以及应用与可执行资源信息的对应关系存储至预设的第二数据库中。
需要说明的是,预设的第二数据库中应该包含有某一集群中所有已部署的应用的可执行资源信息,以及该集群中所有的应用与可执行资源信息之间的对应关系,一个集群应该有一个与之对应的一个预设的第二数据库。当然,预设的第二数据库中也可以包含所有集群中的已部署的应用的可执行资源信息,此时,预设的第二数据库中,包括集群,应用,以及可执行资源信息三者之间的对应关系,用以查找每个集群已部署的应用,以及该应用的可执行资源信息。
下面均以一个集群对应于一个预设的第二数据库为例,对本实施例提供的集群中应用的恢复方法进行介绍。
由于预设的第二数据库中包含有集群中所有已部署的应用的可执行资源信息,以及所有已部署的应用与可执行资源信息之间的对应关系,监测集群中正在运行的应用,比较正在运行的应用与预设的第二数据库中已部署的应用是否一致。具体地,监测集群中正在运行的应用的个数和种类,以及应用的运行状态,与预设的第二数据库中已部署的应用是否一致,若正在运行的应用的个数与第二数据库中已部署的应用个数和种类不一致,则说明该集群中存在未被重新部署的应用,将上述未部署的应用作为第二应用;若正在运行的应用的运行状态与第二数据库中已部署的应用运行状态不一致,则说明存在已部署的应用未正常运行,也可将上述未正常运行的应用作为第二应用。
也就是说,上述第二应用是集群中曾经已部署过的应用,但是当前在集群中没有正常运行的应用。具体的,第二应用可以是在该集群重新启动时,没有在该集群中正常重新部署的应用;第二应用也可以是在集群运行状态不正常的应用。
当需要在集群中恢复第二应用时,根据预设的第二数据库中保存的应用与可执行资源信息之间的对应关系,从上述预设的第二数据库中,获取第二应用的可执行资源信息。
步骤203:调用集群的API,运行所述第二应用对应的可执行资源信息,以在所述集群中部署所述第二应用。
直接调用kubernetes集群的应用程序编程接口API,或者,通过kubectl工具调用应用程序编程接口API。运行在步骤202中获取到的可执行资源信息,从而实现在kubernetes集群中,部署未运行的第二应用。
为了便于理解,现对本实施例提供的集群中应用的恢复方法进行举例说明:
G集群中已部署的应用有应用1、应用2、应用3和应用4,在G集群中部署应用1、应用2、应用3和应用4时,系统将应用1、应用2、应用3和应用4的可执行资源信息保存至预设的第二数据库,并且将各个应用和应用的可执行资源信息之间的对应关系也保存至预设的第二数据库。
G集群重新启动后,系统对G集群中正在运行的应用进行监测,比较G集群中正在运行的应用与预设的第二数据库中所保存的已部署的应用是否一致,通过监测发现,G集群中正在运行的应用仅有应用1、应用2和应用3,已部署的应用4并未运行。
现要恢复应用4在G集群中正常运行,由于预设的第二数据库中保存有已部署的所有应用的可执行资源信息,以及应用与可执行资源信息之间的对应关系,因此,可在预设的第二数据库中,根据应用与可执行资源信息之间的对应关系,查找应用4所对应的可执行资源信息,找到应用4对应的可执行资源信息后,获取应用4对应的可执行资源信息。
直接调用G集群的应用程序编程接口API,或者,通过kubectl工具调用G集群的应用程序编程接口API。运行获取到的应用4对应的可执行资源信息,从而实现恢复G集群中应用4的部署。
本实施例提供的集群中应用的恢复方法,保存集群中所有已部署的应用的可执行资源信息,以及应用与可执行资源信息之间的对应关系至预设的第二数据库,集群重新启动后,通过对比集群中正在运行的应用与预设的第二数据库中保存的已部署的应用,查找是否存在未正常运行但是已部署的应用,若存在,则从预设的第二数据库中获取该应用对应的可执行资源信息,并调用集群的API,运行该应用对应的可执行资源信息,从而实现在集群中恢复该应用的运行。本实施例提供的方法,无需技术人员监测是否存在未运行的应用,只需由系统自动完成比较预设的第二数据库中所保存的应用与正在运行的应用,当监测到存在未正常运行的应用时,也无需技术人员再次部署该应用,直接从保存所有已部署应用的可执行资源信息的预设的第二数据库中,获取该正常未运行的应用的可执行资源信息,并在获取到该应用的可执行资源信息后,调用集群的API直接恢复运行该应用,大大降低了操作的复杂度,提高了操作效率,减少了技术人员不必要的工作量。
装置实施例
如图3所示,为本发明实施例提供的一种集群中部署应用的装置的结构示意图,该装置包括:
查找单元301,用于查找预设的第一数据库中是否存在第一应用对应的部署文件,所述预设的第一数据库包括应用与部署文件的对应关系,一个应用对应的部署文件包括该应用的资源文件和该应用的可变参数文件。
接收单元302,用于当所述预设的第一数据库中存在第一应用对应的部署文件时,接收所述第一应用对应的可变参数文件中每个可变参数的值。
写入单元303,用于将所述每个可变参数的值写入所述第一应用对应的资源文件,获得所述第一应用的可执行资源信息。
第一应用部署单元304,用于调用需部署所述第一应用的集群的应用程序编程接口API,运行所述第一应用对应的可执行资源信息,以在所述集群中部署所述第一应用。
可选的,该装置还包括:
存储单元,用于将所述第一应用作为已部署的应用,在预设的第二数据库中存储所述已部署的应用对应的可执行资源信息,所述预设的第二数据库包括已部署的应用与可执行资源信息的对应关系。
可选的,该装置还包括:
监测单元,用于监测是否需要在所述集群中恢复第二应用,所述第二应用是一个在所述集群中已部署的应用;
获取单元,用于当需要在所述集群中恢复第二应用时,从所述预设的第二数据库中获取所述第二应用对应的可执行资源信息;
第二应用部署单元,用于调用所述集群的API,运行所述第二应用对应的可执行资源信息,以在所述集群中部署所述第二应用。
本实施例图3所示的装置是与方法实施例所述的方法所对应的装置,具体实现方法类似,参考方法实施例中的描述,这里不再赘述。
所述集群中部署应用的装置包括处理器和存储器,图3所示的查找单元、接收单元、写入单元和第一应用部署单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现集群中部署应用。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述集群中部署应用的方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述集群中部署应用的方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
查找预设的第一数据库中是否存在第一应用对应的部署文件,所述预设的第一数据库包括应用与部署文件的对应关系,一个应用对应的部署文件包括该应用的资源文件和该应用的可变参数文件;
当所述预设的第一数据库中存在第一应用对应的部署文件时,接收所述第一应用对应的可变参数文件中每个可变参数的值;
将所述每个可变参数的值写入所述第一应用对应的资源文件,获得所述第一应用的可执行资源信息;
调用需部署所述第一应用的集群的应用程序编程接口API,运行所述第一应用对应的可执行资源信息,以在所述集群中部署所述第一应用。
可选的,所述方法还包括:
将所述第一应用作为已部署的应用,在预设的第二数据库中存储所述已部署的应用对应的可执行资源信息,所述预设的第二数据库包括已部署的应用与可执行资源信息的对应关系。
可选的,所述方法还包括:
监测是否需要在所述集群中恢复第二应用,所述第二应用是一个在所述集群中已部署的应用;
当需要在所述集群中恢复第二应用时,从所述预设的第二数据库中获取所述第二应用对应的可执行资源信息;
调用所述集群的API,运行所述第二应用对应的可执行资源信息,以在所述集群中部署所述第二应用。
可选的,监测是否需要在所述集群中恢复第二应用包括:
监测所述集群中正在运行的应用;
比较所述正在运行的应用与所述预设的第二数据库中已部署的应用是否一致;
当所述正在运行的应用与所述预设的第二数据库中已部署的应用不一致时,获取预设的第二数据库中,没有在所述集群中运行的已部署的应用作为所述第二应用。
可选的,创建所述预设的第一数据库包括:
接收Jenkins发送的应用的镜像;
根据所述应用的镜像制作所述应用的部署文件;
存储所述应用与所述应用的部署文件的对应关系,创建所述预设的第一数据库。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
查找预设的第一数据库中是否存在第一应用对应的部署文件,所述预设的第一数据库包括应用与部署文件的对应关系,一个应用对应的部署文件包括该应用的资源文件和该应用的可变参数文件;
当所述预设的第一数据库中存在第一应用对应的部署文件时,接收所述第一应用对应的可变参数文件中每个可变参数的值;
将所述每个可变参数的值写入所述第一应用对应的资源文件,获得所述第一应用的可执行资源信息;
调用需部署所述第一应用的集群的应用程序编程接口API,运行所述第一应用对应的可执行资源信息,以在所述集群中部署所述第一应用。
可选的,所述方法还包括:
将所述第一应用作为已部署的应用,在预设的第二数据库中存储所述已部署的应用对应的可执行资源信息,所述预设的第二数据库包括已部署的应用与可执行资源信息的对应关系。
可选的,所述方法还包括:
监测是否需要在所述集群中恢复第二应用,所述第二应用是一个在所述集群中已部署的应用;
当需要在所述集群中恢复第二应用时,从所述预设的第二数据库中获取所述第二应用对应的可执行资源信息;
调用所述集群的API,运行所述第二应用对应的可执行资源信息,以在所述集群中部署所述第二应用。
可选的,监测是否需要在所述集群中恢复第二应用包括:
监测所述集群中正在运行的应用;
比较所述正在运行的应用与所述预设的第二数据库中已部署的应用是否一致;
当所述正在运行的应用与所述预设的第二数据库中已部署的应用不一致时,获取预设的第二数据库中,没有在所述集群中运行的已部署的应用作为所述第二应用。
可选的,创建所述预设的第一数据库包括:
接收Jenkins发送的应用的镜像;
根据所述应用的镜像制作所述应用的部署文件;
存储所述应用与所述应用的部署文件的对应关系,创建所述预设的第一数据库。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种集群中部署应用的方法,其特征在于,所述方法包括:
查找预设的第一数据库中是否存在第一应用对应的部署文件,所述预设的第一数据库包括应用与部署文件的对应关系,一个应用对应的部署文件包括该应用的资源文件和该应用的可变参数文件;
当所述预设的第一数据库中存在第一应用对应的部署文件时,接收所述第一应用对应的可变参数文件中每个可变参数的值;
将所述每个可变参数的值写入所述第一应用对应的资源文件,获得所述第一应用的可执行资源信息;
调用需部署所述第一应用的集群的应用程序编程接口API,运行所述第一应用对应的可执行资源信息,以在所述集群中部署所述第一应用。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述第一应用作为已部署的应用,在预设的第二数据库中存储所述已部署的应用对应的可执行资源信息,所述预设的第二数据库包括已部署的应用与可执行资源信息的对应关系。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
监测是否需要在所述集群中恢复第二应用,所述第二应用是一个在所述集群中已部署的应用;
当需要在所述集群中恢复第二应用时,从所述预设的第二数据库中获取所述第二应用对应的可执行资源信息;
调用所述集群的API,运行所述第二应用对应的可执行资源信息,以在所述集群中部署所述第二应用。
4.根据权利要求3所述的方法,其特征在于,监测是否需要在所述集群中恢复第二应用包括:
监测所述集群中正在运行的应用;
比较所述正在运行的应用与所述预设的第二数据库中已部署的应用是否一致;
当所述正在运行的应用与所述预设的第二数据库中已部署的应用不一致时,获取预设的第二数据库中,没有在所述集群中运行的已部署的应用作为所述第二应用。
5.根据权利要求1所述的方法,其特征在于,创建所述预设的第一数据库包括:
接收Jenkins发送的应用的镜像;
根据所述应用的镜像制作所述应用的部署文件;
存储所述应用与所述应用的部署文件的对应关系,创建所述预设的第一数据库。
6.一种集群中部署应用的装置,其特征在于,所述装置包括:
查找单元,用于查找预设的第一数据库中是否存在第一应用对应的部署文件,所述预设的第一数据库包括应用与部署文件的对应关系,一个应用对应的部署文件包括该应用的资源文件和该应用的可变参数文件;
接收单元,用于当所述预设的第一数据库中存在第一应用对应的部署文件时,接收所述第一应用对应的可变参数文件中每个可变参数的值;
写入单元,用于将所述每个可变参数的值写入所述第一应用对应的资源文件,获得所述第一应用的可执行资源信息;
第一应用部署单元,用于调用需部署所述第一应用的集群的应用程序编程接口API,运行所述第一应用对应的可执行资源信息,以在所述集群中部署所述第一应用。
7.根据权利要求6所述的装置,其特征在于,该装置还包括:
存储单元,用于将所述第一应用作为已部署的应用,在预设的第二数据库中存储所述已部署的应用对应的可执行资源信息,所述预设的第二数据库包括已部署的应用与可执行资源信息的对应关系。
8.根据权利要求7所述的装置,其特征在于,该装置还包括:
监测单元,用于监测是否需要在所述集群中恢复第二应用,所述第二应用是一个在所述集群中已部署的应用;
获取单元,用于当需要在所述集群中恢复第二应用时,从所述预设的第二数据库中获取所述第二应用对应的可执行资源信息;
第二应用部署单元,用于调用所述集群的API,运行所述第二应用对应的可执行资源信息,以在所述集群中部署所述第二应用。
9.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行如权利要求1至5任一项所述的集群中部署应用的方法。
10.一种存储介质,其特征在于,其上存储有程序,该程序被处理器执行时实现如权利要求1至5任一项所述的集群中部署应用的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710868610.7A CN109558143B (zh) | 2017-09-22 | 2017-09-22 | 一种集群中部署应用的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710868610.7A CN109558143B (zh) | 2017-09-22 | 2017-09-22 | 一种集群中部署应用的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109558143A CN109558143A (zh) | 2019-04-02 |
CN109558143B true CN109558143B (zh) | 2022-02-22 |
Family
ID=65861895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710868610.7A Active CN109558143B (zh) | 2017-09-22 | 2017-09-22 | 一种集群中部署应用的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109558143B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475260A (zh) * | 2020-04-10 | 2020-07-31 | 杭州趣维科技有限公司 | 一种基于jenkins和kubernetes平台的可弹性CICD方法 |
CN111984269B (zh) * | 2020-08-20 | 2024-01-23 | 第四范式(北京)技术有限公司 | 提供应用构建服务的方法及应用构建平台 |
CN112068847B (zh) * | 2020-09-07 | 2022-05-13 | 海南大学 | 基于kubernets平台的计算环境部署方法及装置 |
CN116762057A (zh) * | 2020-12-18 | 2023-09-15 | 讯琥 (上海) 信息科技有限公司 | 用于管理、部署和编排高度分布式服务应用程序的自动化平台 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102736946A (zh) * | 2011-04-11 | 2012-10-17 | 阿里巴巴集团控股有限公司 | 一种应用节点的批量部署方法及装置 |
CN103019791A (zh) * | 2012-12-19 | 2013-04-03 | 中国电子科技集团公司第十五研究所 | 软件部署方法及软件部署系统 |
CN103455352A (zh) * | 2013-08-30 | 2013-12-18 | 中国电子科技集团公司第十五研究所 | 部署应用软件的方法及应用软件部署装置 |
CN104484198A (zh) * | 2014-12-04 | 2015-04-01 | 北京奇虎科技有限公司 | 一种安装应用程序的方法和装置 |
CN104899047A (zh) * | 2015-06-25 | 2015-09-09 | 广州杰赛科技股份有限公司 | 网页框架部署方法和系统 |
CN105487891A (zh) * | 2015-11-26 | 2016-04-13 | 航天恒星科技有限公司 | 一种分布式集群的部署方法及系统 |
CN106610853A (zh) * | 2015-10-26 | 2017-05-03 | 阿里巴巴集团控股有限公司 | 一种应用部署方法和装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7770151B2 (en) * | 2005-04-07 | 2010-08-03 | International Business Machines Corporation | Automatic generation of solution deployment descriptors |
CN102486735A (zh) * | 2010-12-02 | 2012-06-06 | 腾讯科技(深圳)有限公司 | 一种手机软件动态加载方法及装置 |
CN102662705B (zh) * | 2012-03-31 | 2015-06-03 | 中国工商银行股份有限公司 | 一种对计算机集群的系统环境进行升级的系统及方法 |
CN103064717B (zh) * | 2013-01-22 | 2016-01-27 | 浪潮(北京)电子信息产业有限公司 | 一种集群系统并行安装软件的装置和方法 |
US9544367B2 (en) * | 2014-06-16 | 2017-01-10 | Verizon Patent And Licensing Inc. | Automated server cluster selection for virtual machine deployment |
US20160179494A1 (en) * | 2014-12-18 | 2016-06-23 | Vladimir Pavlov | Integration of an arbitrary server installed as an extension of a computing platform |
CN105955761A (zh) * | 2016-06-30 | 2016-09-21 | 乐视控股(北京)有限公司 | 基于docker的灰度发布装置及方法 |
CN106330546A (zh) * | 2016-08-26 | 2017-01-11 | 北京易讯通信息技术股份有限公司 | 一种在私有云环境中应用集群部署的系统和方法 |
CN106708573B (zh) * | 2016-12-19 | 2020-12-18 | 中国银联股份有限公司 | 一种用于Hadoop集群自动安装的系统及方法 |
-
2017
- 2017-09-22 CN CN201710868610.7A patent/CN109558143B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102736946A (zh) * | 2011-04-11 | 2012-10-17 | 阿里巴巴集团控股有限公司 | 一种应用节点的批量部署方法及装置 |
CN103019791A (zh) * | 2012-12-19 | 2013-04-03 | 中国电子科技集团公司第十五研究所 | 软件部署方法及软件部署系统 |
CN103455352A (zh) * | 2013-08-30 | 2013-12-18 | 中国电子科技集团公司第十五研究所 | 部署应用软件的方法及应用软件部署装置 |
CN104484198A (zh) * | 2014-12-04 | 2015-04-01 | 北京奇虎科技有限公司 | 一种安装应用程序的方法和装置 |
CN104899047A (zh) * | 2015-06-25 | 2015-09-09 | 广州杰赛科技股份有限公司 | 网页框架部署方法和系统 |
CN106610853A (zh) * | 2015-10-26 | 2017-05-03 | 阿里巴巴集团控股有限公司 | 一种应用部署方法和装置 |
CN105487891A (zh) * | 2015-11-26 | 2016-04-13 | 航天恒星科技有限公司 | 一种分布式集群的部署方法及系统 |
Non-Patent Citations (1)
Title |
---|
Hadoop集群的部署与管理系统的设计与实现;王宾;《中国优秀硕士学位论文全文数据库 信息科技辑》;20131015(第10期);I138-70 * |
Also Published As
Publication number | Publication date |
---|---|
CN109558143A (zh) | 2019-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102354536B1 (ko) | 하이퍼레저 패브릭 네트워크 구축 방법과 컨트롤러 및 저장 매체 | |
CN109558143B (zh) | 一种集群中部署应用的方法及装置 | |
CN110413346B (zh) | 一种参数更新方法及装置 | |
CN105335187B (zh) | 一种应用的处理方法及装置 | |
CN106886434B (zh) | 一种分布式应用安装方法与装置 | |
CN108121633B (zh) | 异常捕获方法及装置 | |
CN107273146B (zh) | 虚拟机升级方法及装置 | |
CN110727446A (zh) | 自动部署方法、装置、设备及介质 | |
CN111831396A (zh) | 基于Docker软硬一体化的交付方法及装置 | |
CN110968357A (zh) | 一种maven项目的打包方法、装置、存储介质及处理器 | |
CN114996134A (zh) | 容器化部署方法、电子设备及存储介质 | |
CN109522189B (zh) | 一种数据监测方法、装置及系统 | |
CN110968406B (zh) | 处理任务的方法、装置、存储介质和处理器 | |
CN110968333B (zh) | 配置信息替换方法和装置、机器可读存储介质及处理器 | |
CN111198694A (zh) | 软件的安装方法及装置 | |
CN110968444A (zh) | 云计算平台的数据处理方法和装置 | |
CN107402749B (zh) | 实现图片加载库的方法及装置 | |
CN113448609B (zh) | 一种容器的升级方法、装置、设备和存储介质 | |
CN115080309A (zh) | 数据备份系统、方法、存储介质以及电子设备 | |
CN109117180B (zh) | 一种程序集成方法及装置 | |
CN112579145A (zh) | 应用部署方法及装置 | |
CN109146870B (zh) | 模块之间的数据交互方法和装置 | |
CN107784040B (zh) | 一种文件下发方法及装置 | |
CN110633181B (zh) | 可视化显示方法和装置 | |
CN109508195B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100080 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |