一种Docker容器状态实时同步方法与流程

文档序号:13072494阅读:2775来源:国知局

本发明涉及云计算容器管理领域,具体涉及一种docker容器状态实时同步方法。



背景技术:

容器的管理和使用是云计算的下一个阶段,容器由于其轻量、易迁移、易启动等优点,逐渐被各大云计算平台采用,并以服务的方式提供给开发者使用。容器可能会由于其内部运行的进程异常,导致容器关机或者重启,此时,容器管理平台需要能够实时监控到容器的状态变化,并给出相应的告警信息,docker(开源容器引擎)提供了处理docker事件的接口,但不能处理全部的异常情况,例如docker宿主机关机、docker进程停止等。



技术实现要素:

为解决上述问题,提出了一种docker容器状态实时同步方法。

本发明的技术方案是:一种docker容器状态实时同步方法,包括以下步骤:

搭建容器管理平台,容器管理平台包括平台数据库;

创建容器,在etcd数据库保存容器信息,并设置容器ttl超时时间;

在容器所在宿主机部署容器监控组件,容器监控组件将监控数据周期上报到容器管理平台;

当容器管理平台接收到监控数据时,将监控数据保存到平台数据库,并查看平台数据库中相应容器状态是否为运行中,若相应容器状态为非运行,则将其状态更新为运行中,同时更新etcd数据库中相应容器ttl超时时间;

容器管理平台监听etcd数据库,当监听到容器信息被删除时,容器管理平台判断平台数据库中该容器状态是否为停止状态,若非停止状态,则将其更新为停止。

进一步地,还包括步骤:当容器管理平台启动时,将平台数据库中处于运行态的容器信息保存到etcd数据库,并设置容器ttl超时时间。

进一步地,etcd数据库容器信息被删除是指当容器管理平台在超过容器ttl超时时间后仍未收到监控数据,则etcd数据库中相应容器信息被删除。

进一步地,还包括步骤:当容器管理平台删除容器时,同时删除etcd书库内相应容器信息。

进一步地,容器管理平台监听etcd数据库是指利用etcd数据库的watch机制监听etcd数据库的指定目录。

进一步地,etcd数据库为3.0以上版本的etcd数据库。

进一步地,容器ttl超时时间为2分钟。

本发明提供的docker容器状态实时同步方法,采用etcd的key超时机制、watch机制,同时配置容器监控信息的周期上报,实现容器状态的实时更新,与docker原生接口提供的功能相比,除能够处理docker容器正常关闭、启动的状态更新外,还能够处理docker宿主机关机、docker进程停止异常场景下的容器状态更新,在生产环境下,这两种状态是非常重要的异常场景。

附图说明

图1本发明具体实施例流程示意图。

具体实施方式

下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。

如图1所示,本实施例提供的docker容器状态实时同步方法,在etcd数据库保存容器信息,并为该信息设置ttl超时时间(timetolive,存活时间),容器管理平台在收到容器的监控数据时,会刷新该信息的ttl超时时间,保证容器信息不会因为ttl到期而被删除;当容器关机、宿主机关机或docker进程停止时,容器管理平台无法收到该容器的监控信息,etcd数据库保存的容器信息由于ttl超时,会被自动删除,容器管理平台利用etcd数据库的watch机制监控到该容器信息被删除的信息后,会将平台数据库中的容器状态进行更新。容器由关机状态变为启动状态时,采用相同的流程处理。

具体包括以下步骤:

搭建容器管理平台,容器管理平台包括平台数据库;

创建容器,在etcd数据库保存容器信息,并设置容器ttl超时时间;

在容器所在宿主机部署容器监控组件,容器监控组件将监控数据周期上报到容器管理平台;

当容器管理平台接收到监控数据时,将监控数据保存到平台数据库,并查看平台数据库中相应容器状态是否为运行中,若相应容器状态为非运行,则将其状态更新为运行中,同时更新etcd数据库中相应容器ttl超时时间,保证容器信息不会因为ttl到期而被删除;

容器管理平台监听etcd数据库,当监听到容器信息被删除时,容器管理平台判断平台数据库中该容器状态是否为停止状态,若非停止状态,则将其更新为停止。

其中etcd数据库容器信息被删除是指当容器管理平台在超过容器ttl超时时间后仍未收到监控数据,则etcd数据库中相应容器信息被删除。容器管理平台利用etcd数据库的watch机制监听etcd数据库的指定目录,从而获得etcd数据库内容器信息。

本实施例还包括步骤:当容器管理平台启动时,将平台数据库中处于运行态的容器信息保存到etcd数据库,并设置容器ttl超时时间。当容器管理平台删除容器时,同时删除etcd书库内相应容器信息。

本实施例中,etcd数据库可以使用3.0以上版本的etcd数据库,容器ttl超时时间可设置为2分钟。

以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。



技术特征:

技术总结
本发明公开一种Docker容器状态实时同步方法,包括以下步骤:搭建容器管理平台;创建容器,在Etcd数据库保存容器信息,并设置容器TTL超时时间;在容器所在宿主机部署容器监控组件,容器监控组件将监控数据周期上报到容器管理平台;当容器管理平台接收到监控数据时,更新Etcd数据库中相应容器TTL超时时间;容器管理平台监听Etcd数据库,当监听到容器信息被删除时,容器管理平台判断平台数据库中该容器状态是否为停止状态,若非停止状态,则将其更新为停止。本方法能处理Docker宿主机关机、Docker进程停止异常场景下的容器状态更新。

技术研发人员:王德奎
受保护的技术使用者:郑州云海信息技术有限公司
技术研发日:2017.06.28
技术公布日:2017.12.01
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1