多容器如何实现mysql同步_一种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本发明具体实施例流程示意图。

具体实施方式

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

如图1所示,本实施例提供的Docker容器状态实时同步方法,在Etcd数据库保存容器信息,并为该信息设置TTL超时时间(Time To Live,存活时间),容器管理平台在收到容器的监控数据时,会刷新该信息的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分钟。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值