本发明涉及容器探测技术领域,具体的说是一种实现容器应用可用性定时探测的方法。
背景技术:
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进行增加、删除、检测。
技术总结