一种实现容器应用可用性定时探测的方法与流程

专利2022-06-29  95


本发明涉及容器探测技术领域,具体的说是一种实现容器应用可用性定时探测的方法。



背景技术:

kubernetes是一个全新的基于容器技术的分布式架构领先方案,在docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列功能,提高了大规模容器集群管理的便捷性和高可用性。

容器技术是比较流行的提供微服务的paas技术,而kubernetes是近期最流行的容器编排管理技术,kubernetes通过pod管理容器,如何有效的保证容器应用高可用是一个很紧迫的问题。



技术实现要素:

本发明针对目前技术发展的需求和不足之处,提供一种实现容器应用可用性定时探测的方法,以有效保证容器应用的高可用。

本发明的一种实现容器应用可用性定时探测的方法,解决上述技术问题采用的技术方案如下:

一种实现容器应用可用性定时探测的方法,该方法基于容器组管理程序镜像hyperkube,容器组管理程序镜像hyperkube包括容器组管理程序kubelet、容器探测管理器probermanager、容器探测工作器proberworker、状态管理器statusmanager、容器活性管理器livenessmanager、探测结果管理器resultmanager、容器准备管理器readinessmanager;

该方法实现过程包括:

用户创建pod,并通过容器组管理程序kubelet注册到容器探测工作器proberworker;

容器探测工作器proberworker管理当前容器组管理程序kubelet的pod数据,并对容器进行定时检测;

容器探测工作器proberworker把检测结果存入管道;

容器探测管理器probermanager从管道中获取容器检测结果,并调用statusmanager完成对pod状态的定时刷新。

具体的,所涉及容器组管理程序镜像hyperkube包括probe_http、probe_exec、probe_tcp;

probe_http完成对容器的http_get请求,并返回请求结果;

probe_exec完成对容器的命令请求,并返回请求结果;

probe_tcp完成对容器的tcp协议请求,请返回请求结果。

具体的,所涉及用户在容器组管理程序kubelet创建liveness或readiness的pod,并注册pod到容器探测工作器proberworker;

liveness探针用于检测容器是否活着,若容器已经死掉,则重启容器;

readinessprobe探针用于容器服务是否正常,若服务异常,则从service的endpoint中删除容器服务。

更具体的,所涉及liveness探针和readinessprobe探针的执行检测的策略包括配置:

initialdelayseconds:容器启动后多长时间开始探测;

periodseconds:探针执行频率,默认10秒;

timeoutseconds:探针执行超时时间,默认1秒;

failurethreshold:探测成功后,连续失败多少次认为失败,默认3次;

successthreshold:探测失败后,连续成功多少次认为成功,默认1次。

更具体的,所涉及liveness探针包括exec、httpget、tcpsocket三种类型;

exec用于在容器内执行命令,根据命令执行结果探测容器;

httpget用于调用容器的http请求,根据请求返回结果探测容器;

cpsocket用于调用容器的tcp请求,根据请求返回结果探测容器。

更具体的,所涉及readinessprobe探针包括exec、httpget、tcpsocket三种类型;

exec用于在容器内执行命令,根据命令执行结果探测容器;

httpget用于调用容器的http请求,根据请求返回结果探测容器;

cpsocket用于调用容器的tcp请求,根据请求返回结果探测容器。

具体的,所涉及容器组管理程序kubelet启动时,首先初始化容器探测管理器probermanager对象。

具体的,一个pod是一个worker,容器探测工作器proberworker对worker进行增加、删除、检测。

本发明的一种实现容器应用可用性定时探测的方法,与现有技术相比具有的有益效果是:

本发明可以定时探测容器、探测容器活性失败后重启容器组、探测容器准备失败后清理问题容器的服务注册信息,保证容器应用的高可用性。

附图说明

附图1是本发明的架构框图;

附图2是本发明的流程示意图。

具体实施方式

为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清楚、完整的描述。

实施例一:

结合附图1,本实施例提出一种实现容器应用可用性定时探测的方法,该方法基于容器组管理程序镜像hyperkube,容器组管理程序镜像hyperkube包括容器组管理程序kubelet、容器探测管理器probermanager、容器探测工作器proberworker、状态管理器statusmanager、容器活性管理器livenessmanager、探测结果管理器resultmanager、容器准备管理器readinessmanager。

结合附图2,本实施例的一种实现容器应用可用性定时探测的方法,其实现过程包括:

用户创建pod,并通过容器组管理程序kubelet注册到容器探测工作器proberworker;

容器探测工作器proberworker管理当前容器组管理程序kubelet的pod数据,并对容器进行定时检测;

容器探测工作器proberworker把检测结果存入管道;

容器探测管理器probermanager从管道中获取容器检测结果,并调用statusmanager完成对pod状态的定时刷新。

本实施例中,所涉及容器组管理程序镜像hyperkube包括probe_http、probe_exec、probe_tcp。其中,

probe_http完成对容器的http_get请求,并返回请求结果;

probe_exec完成对容器的命令请求,并返回请求结果;

probe_tcp完成对容器的tcp协议请求,请返回请求结果。

本实施例中,所涉及用户在容器组管理程序kubelet创建liveness或readiness的pod,并注册pod到容器探测工作器proberworker。其中,

liveness探针用于检测容器是否活着,若容器已经死掉,则重启容器;

readinessprobe探针用于容器服务是否正常,若服务异常,则从service的endpoint中删除容器服务。

本实施例中,所涉及liveness探针和readinessprobe探针的执行检测的策略包括配置:

initialdelayseconds:容器启动后多长时间开始探测;

periodseconds:探针执行频率,默认10秒;

timeoutseconds:探针执行超时时间,默认1秒;

failurethreshold:探测成功后,连续失败多少次认为失败,默认3次;

successthreshold:探测失败后,连续成功多少次认为成功,默认1次。

进一步的,本实施例所涉及liveness探针包括exec、httpget、tcpsocket三种类型;

exec用于在容器内执行命令,根据命令执行结果探测容器;

httpget用于调用容器的http请求,根据请求返回结果探测容器;

cpsocket用于调用容器的tcp请求,根据请求返回结果探测容器。

同样的,本实施例所涉及readinessprobe探针也包括exec、httpget、tcpsocket三种类型;

exec用于在容器内执行命令,根据命令执行结果探测容器;

httpget用于调用容器的http请求,根据请求返回结果探测容器;

cpsocket用于调用容器的tcp请求,根据请求返回结果探测容器。

本实施例中,所涉及容器组管理程序kubelet启动时,首先初始化容器探测管理器probermanager对象。

本实施例中,一个pod是一个worker,容器探测工作器proberworker对worker进行增加、删除、检测。

综上可知,采用本发明的一种实现容器应用可用性定时探测的方法,可以定时探测容器、探测容器活性失败后重启容器组、探测容器准备失败后清理问题容器的服务注册信息,保证容器应用的高可用性。

基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。


技术特征:

1.一种实现容器应用可用性定时探测的方法,其特征在于,该方法基于容器组管理程序镜像hyperkube,容器组管理程序镜像hyperkube包括容器组管理程序kubelet、容器探测管理器probermanager、容器探测工作器proberworker、状态管理器statusmanager、容器活性管理器livenessmanager、探测结果管理器resultmanager、容器准备管理器readinessmanager;

该方法实现过程包括:

用户创建pod,并通过容器组管理程序kubelet注册到容器探测工作器proberworker;

容器探测工作器proberworker管理当前容器组管理程序kubelet的pod数据,并对容器进行定时检测;

容器探测工作器proberworker把检测结果存入管道;

容器探测管理器probermanager从管道中获取容器检测结果,并调用statusmanager完成对pod状态的定时刷新。

2.根据权利要求1所述的一种实现容器应用可用性定时探测的方法,其特征在于,所述容器组管理程序镜像hyperkube包括probe_http、probe_exec、probe_tcp;

probe_http完成对容器的http_get请求,并返回请求结果;

probe_exec完成对容器的命令请求,并返回请求结果;

probe_tcp完成对容器的tcp协议请求,请返回请求结果。

3.根据权利要求1所述的一种实现容器应用可用性定时探测的方法,其特征在于,用户在容器组管理程序kubelet创建liveness或readiness的pod,并注册pod到容器探测工作器proberworker;

liveness探针用于检测容器是否活着,若容器已经死掉,则重启容器;

readinessprobe探针用于容器服务是否正常,若服务异常,则从service的endpoint中删除容器服务。

4.根据权利要求3所述的一种实现容器应用可用性定时探测的方法,其特征在于,所述liveness探针和readinessprobe探针的执行检测的策略包括配置:

initialdelayseconds:容器启动后多长时间开始探测;

periodseconds:探针执行频率;

timeoutseconds:探针执行超时时间;

failurethreshold:探测成功后,连续失败多少次认为失败;

successthreshold:探测失败后,连续成功多少次认为成功。

5.根据权利要求3所述的一种实现容器应用可用性定时探测的方法,其特征在于,所述liveness探针包括exec、httpget、tcpsocket三种类型;

exec用于在容器内执行命令,根据命令执行结果探测容器;

httpget用于调用容器的http请求,根据请求返回结果探测容器;

cpsocket用于调用容器的tcp请求,根据请求返回结果探测容器。

6.根据权利要求4所述的一种实现容器应用可用性定时探测的方法,其特征在于,所述readinessprobe探针包括exec、httpget、tcpsocket三种类型;

exec用于在容器内执行命令,根据命令执行结果探测容器;

httpget用于调用容器的http请求,根据请求返回结果探测容器;

cpsocket用于调用容器的tcp请求,根据请求返回结果探测容器。

7.根据权利要求1所述的一种实现容器应用可用性定时探测的方法,其特征在于,容器组管理程序kubelet启动时,首先初始化容器探测管理器probermanager对象。

8.根据权利要求1所述的一种实现容器应用可用性定时探测的方法,其特征在于,一个pod是一个worker,容器探测工作器proberworker对worker进行增加、删除、检测。

技术总结
本发明公开一种实现容器应用可用性定时探测的方法,涉及容器探测技术领域,该方法基于容器组管理程序镜像hyperkube,容器组管理程序镜像hyperkube包括容器组管理程序kubelet、容器探测管理器probermanager、容器探测工作器proberworker、状态管理器statusmanager、容器活性管理器livenessmanager、探测结果管理器resultmanager、容器准备管理器readinessmanager。该方法实现过程包括:用户创建pod,并通过容器组管理程序kubelet注册到容器探测工作器proberworker;容器探测工作器proberworker管理当前容器组管理程序kubelet的pod数据,并对容器进行定时检测;容器探测工作器proberworker把检测结果存入管道;容器探测管理器probermanager从管道中获取容器检测结果,并调用statusmanager完成对pod状态的定时刷新。本发明可以保证容器应用的高可用性。

技术研发人员:石光银;蔡卫卫;高传集;孙思清
受保护的技术使用者:山东汇贸电子口岸有限公司
技术研发日:2020.01.09
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-28361.html

最新回复(0)