容器组的构建方法和装置制造方法及图纸

技术编号:19176711 阅读:32 留言:0更新日期:2018-10-17 00:15
本发明专利技术公开了一种容器组的构建方法和装置。其中,该方法包括:接收用于构建容器组的命令信息;根据命令信息对预设的配置文件进行解析,生成探针调用命令;基于探针调用命令,调用探针探测与容器组中待构建的当前容器具有依赖关系的容器的运行状态;判断运行状态不影响构建当前容器之后,构建当前容器。由此,本实施例可以通过调用探针来探测被依赖容器的运行状态,根据运行状态构建依赖容器,例如,创建、启动、停止或者删除容器,解决了容器打包工具构建容器组出现的异常问题,使得构建容器组时非常有条理、有逻辑性,提高了容器组的构建的质量。

Method and device for constructing container group

The invention discloses a method and a device for constructing a container group. The method includes: receiving command information for building container group; parsing default configuration file according to command information to generate probe invocation command; invoking probe to probe the running state of the container which is dependent on the current container to be built in the container group based on probe invocation command; and judging the running state of the container. The state does not affect the construction of the current container, then the current container is built. Thus, the implementation can detect the running state of the dependent container by calling the probe, and construct the dependent container according to the running state, such as creating, starting, stopping, or deleting the container, which solves the abnormal problem of constructing the container group by the container packaging tool and makes the container group very orderly and logical. The quality of container group is improved.

【技术实现步骤摘要】
容器组的构建方法和装置
本专利技术涉及云计算
,尤其涉及一种容器组的构建方法和装置。
技术介绍
随着通信技术的快速发展,云计算对人们的生活产生了越来越大的影响。docker容器以其轻量化,封装化,快速迭代等特性成为目前云计算机技术中最为火热的技术。各类应用往往通过在宿主机上部署功能不同的容器(一般每个容器只负责单一功能,运行单一进程),并通过容器间的彼此交互完成相关任务。申请人经研究发现:事实上容器间的配合工作与运行在宿主机上的普通进程一样,有着彼此依赖的关系。例如:容器化的web集群,启动顺序应该为数据库容器,web应用容器,负载均衡容器,且必须是数据库容器完全启动成功(容器本身+内部数据实例)后,web应用容器才应启动,并对外提供服务;容器停止或者退出时,也需要对有依赖关系的容器进行按顺序的逐一停止和退出操作,否则很容易造成数据不一致的问题。现有容器的打包工具,例如dockercompose、crane等工具,这些工具实现了在特定文件格式(json,yaml)中定义、创建和删除容器的相关命令,实现了容器的按顺序打包一体化启动和停止。但是这些工具都没有考虑容器中运行的业务应用状态的情况,而直接进行下一容器的操作。这就容易造成如下容器装配异常问题:1)只是按照定义的顺序进行了容器的相关创建、启动和删除操作等,而没有关注容器中应用的状态,使得看似容器组启动成功,却无法使用应用。2)无法快速定位容器包(组)启动或者退出异常的问题原因。例如,容器开始启动成功,运行很短一段时间后却退出了。3)容器组退出时,没有进行应用进程的逻辑检查,容易造成数据的不一致的问题。
技术实现思路
为了解决现有的容器组构建异常的问题,提高容器组的构建质量,本专利技术实施例提供了一种容器组的构建方法和装置。第一方面,提供了一种容器组的构建方法。该方法包括以下步骤:接收用于构建容器组的命令信息;根据命令信息对预设的配置文件进行解析,生成探针调用命令;基于探针调用命令,调用探针探测与容器组中待构建的当前容器具有依赖关系的容器的运行状态;判断运行状态不影响构建当前容器之后,构建当前容器。第二方面,提供了容器组的构建装置。该装置包括:信息接收单元,用于接收用于构建容器组的命令信息;文件解析单元,用于根据命令信息对预设的配置文件进行解析,生成探针调用命令;状态探测单元,用于基于探针调用命令,调用探针探测与容器组中待构建的当前容器具有依赖关系的容器的运行状态;容器构建单元,用于判断运行状态不影响构建当前容器之后,构建当前容器。由此,本实施例可以通过调用探针来探测被依赖容器的运行状态,根据运行状态构建依赖容器,例如,创建、启动、停止或者删除容器,解决了容器打包工具构建容器组出现的异常问题,使得构建容器组时非常有条理、有逻辑性,提高了容器组的构建的质量。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术一实施例的容器组构建系统的框架图。图2是本专利技术一实施例的容器组构建方法的流程示意图。图3是本专利技术另一实施例的容器组构建方法的流程示意图。图4是本专利技术一实施例的容器组构建装置的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。图1是本专利技术一实施例的容器组构建系统的框架图。如图1所示,该系统可以包括:url(UniformResourceLocator,统一资源定位符)接口101、探针模块102、解析模块103、缓存模块104、主控模块105、容器API(ApplicationProgrammingInterface,应用程序编程接口)106和OS(OperatingSystem,操作系统)调用接口107。其中,url接口101可以通过命令行或者web接口发出容器组构建(或者装配)命令。探针模块102可以以文件目录形式组织,在目录结构分成通用目录。例如,网络类目录。例如,IP(网络之间互连的协议)目录、tcp(TransmissionControlProtocol,传输控制协议)目录、udp(UserDatagramProtocol,用户数据报协议)、http(HyperTextTransferProtocol,超文本传输协议)等)。还例如,通用目录可以是数据库类(例如tnsping等)目录。又例如,通用目录可以是应用类目录。应用类目录中的探针需要用户自定义探针程序。解析模块103可以用于解析进程,例如,根据用户命令以及配置文件将文件内容解析为容器调用命令和探针调用命令放入缓存模块104。缓存模块104可以是解析文件缓冲区,例如,既可以是文件也可是内存。主控模块105可以顺序读取解析缓存模块104中的内容,还可以根据读取的内容进行容器相关操作。例如,若读取的内容不是探针调用命令,则可以不涉及容器内进程运行状态的判断,而可以直接调用容器命令或者容器API106进行容器操作;若读取的内容是探针调用命令,则可以为容器内进程运行状态进行判断,并将控制权转给探针程序。另外,主控模块105可以通过OS调用接口107对于探针返回的结果进行判断,若判断为true(容器构建正确)时,则装配下一容器;若为false(容器构建异常)则给出报错信息,并退出容器装配。本领域的技术人员可以理解上述接口或者模块可以根据实际构建需要进行灵活设置,例如,接口可以通过命令行代替,用来获取相关指令或者数据。下面各实施例均可以应用于本实施例的系统架构逐一装配各个容器。本实施例的系统可以作为下面各个实施例的实施主体执行具体的容器装配操作。为了描述简洁,各个实施例可以相互参考应用。图2是本专利技术一实施例的容器组的构建方法的流程示意图。如图2所示,该方法包括以下步骤:S210,接收用于构建容器组的命令信息;S220,根据命令信息对预设的配置文件进行解析,生成探针调用命令;S230,基于探针调用命令,调用探针探测与容器组中待构建的当前容器具有依赖关系的容器的运行状态;S240,判断运行状态不影响构建当前容器之后,构建当前容器。在步骤S210中,容器组可以是docker容器组。可以理解,容器组还可以是计算机语言所编写的其他容器组,例如,Android(安卓)操作系统的Java语言编写的容器组。构建容器组的命令可以是在特定文件格式(json、yarn)中定义、创建、装配容器的命令。配置文件可以由用户指定。配置文件可以包括各个容器名称、容器之间的依赖关系等参数。容器组(容器包)中的各个容器有相互依赖关系,例如容器化的web集群,启动顺序应该为数据库容器,web应用容器,负载均衡容器,且必须是数据库容器完全启本文档来自技高网
...

【技术保护点】
1.一种容器组的构建方法,其特征在于,包括以下步骤:接收用于构建容器组的命令信息;根据所述命令信息对预设的配置文件进行解析,生成探针调用命令;基于所述探针调用命令,调用探针探测与所述容器组中待构建的当前容器具有依赖关系的容器的运行状态;判断所述运行状态不影响构建所述当前容器之后,构建所述当前容器。

【技术特征摘要】
1.一种容器组的构建方法,其特征在于,包括以下步骤:接收用于构建容器组的命令信息;根据所述命令信息对预设的配置文件进行解析,生成探针调用命令;基于所述探针调用命令,调用探针探测与所述容器组中待构建的当前容器具有依赖关系的容器的运行状态;判断所述运行状态不影响构建所述当前容器之后,构建所述当前容器。2.根据权利要求1所述的方法,其特征在于,所述对预设的配置文件进行解析之前,还包括:在用于构建容器组的配置文件中定义所述容器组中各个容器之间的依赖关系;设置用于探测定义了所述依赖关系的所述各个容器的运行状态的探针,生成所述预设的配置文件。3.根据权利要求2所述的方法,其特征在于,所述设置用于探测所述各个容器的运行状态的探针,包括:基于所述各个容器的业务场景,设置用于探测所述各个容器的运行状态的探针。4.根据权利要求1所述的方法,其特征在于,所述调用探针探测,包括:通过参数将探针的文件导入所述具有依赖关系的容器内进行探测;或,通过宿主机直接对所述具有依赖关系的容器内的应用进行探测;或,构建与所述当前容器在同一网络内的通用探针容器,利用所述通用探针容器进行探测。5.根据权利要求1所述的方法,其特征在于,所述容器的运行状态包括以下项中的至少一项:所述容器的启动状态、所述容器的停止状态、所述容器内进程的启动状态、所述容器内进程的停止状态。6.根据权利要求1-5中任一项所述的方法,其特征在于,所述调用探针探测与所述容器组中待构建的当前容器的具有依赖关系的容器的运行状态之后,还包括:基于预设的等待时间、预设的探测次数和预设的递增时间差,探测与所述容器组中待构建的当前容器的具有依赖关系的容器的应用状态;判断所述预设的探测次数的探测结果是否符合预期;至少一个探测结果符合预期时,构建所述当前容器。7.根据权利要求1-5中任一项所述的方法,其特征在于,所述容器组为do...

【专利技术属性】
技术研发人员:陈海波王维东刘新荣
申请(专利权)人:中国移动通信集团山西有限公司中国移动通信集团公司
类型:发明
国别省市:山西,14

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1