[发明专利]一种Docker容器状态实时同步方法有效
申请号: | 201710509706.4 | 申请日: | 2017-06-28 |
公开(公告)号: | CN107423112B | 公开(公告)日: | 2020-06-26 |
发明(设计)人: | 王德奎 | 申请(专利权)人: | 浪潮云信息技术有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F11/30;H04L29/08 |
代理公司: | 济南舜源专利事务所有限公司 37205 | 代理人: | 刘雪萍 |
地址: | 250000 山东省济南市高*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 docker 容器 状态 实时 同步 方法 | ||
本发明公开一种Docker容器状态实时同步方法,包括以下步骤:搭建容器管理平台;创建容器,在Etcd数据库保存容器信息,并设置容器TTL超时时间;在容器所在宿主机部署容器监控组件,容器监控组件将监控数据周期上报到容器管理平台;当容器管理平台接收到监控数据时,更新Etcd数据库中相应容器TTL超时时间;容器管理平台监听Etcd数据库,当监听到容器信息被删除时,容器管理平台判断平台数据库中该容器状态是否为停止状态,若非停止状态,则将其更新为停止。本方法能处理Docker宿主机关机、Docker进程停止异常场景下的容器状态更新。
技术领域
本发明涉及云计算容器管理领域,具体涉及一种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本发明具体实施例流程示意图。
具体实施方式
下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术有限公司,未经浪潮云信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710509706.4/2.html,转载请声明来源钻瓜专利网。