【技术实现步骤摘要】
一种基于Kubernetes容器应用健康检查的方法及其系统
本专利技术涉及软件应用运行的程序控制
,具体涉及程序启动,特别是一种基于Kubernetes容器应用健康检查的方法。
技术介绍
Kubernetes现有的容器健康检查方法分为两种,分别是存活探针(livenessprobe)和就绪探针(readinessprobe),其中,存活探针指示容器是否正在运行。如果存活探测失败,则kubelet会杀死容器,并且容器将受到其重启策略的影响。就绪探针指示容器是否准备好服务请求。如果就绪探测失败,端点控制器将从与Pod匹配的所有Service的端点中删除该Pod的IP地址,即不会将流量继续导入该Pod。但是现有的两种健康检查方法很难解决一些启动较慢的应用的问题。首先,慢启动的应用有可能因为启动时间过长,在还没启动成功就已经因为健康检查机制而被kubelet杀掉、重启;其次,如果在启动阶段应用出现死锁现象,那么根据现有的健康检查配置,在应用被重启前,有可能要等待一段非常久的时间。
技术实现思路
本专 ...
【技术保护点】
1.一种基于Kubernetes容器应用健康检查的方法,其特征在于,包括以下内容:/nS1、容器启动检测程序:Kubernetes组件Kubelet采用启动探针周期性的对容器的健康状态进行检测;/nS2、容器启动判断程序:根据启动探针的检测结果判断容器是否启动成功;若容器启动成功则执行下一程序,若容器启动失败则对容器进行重新启动或杀掉操作并结束流程;/nS3、容器健康检查程序:Kubelet采用存活探针和就绪探针分别对容器进行相应的健康检查。/n
【技术特征摘要】
1.一种基于Kubernetes容器应用健康检查的方法,其特征在于,包括以下内容:
S1、容器启动检测程序:Kubernetes组件Kubelet采用启动探针周期性的对容器的健康状态进行检测;
S2、容器启动判断程序:根据启动探针的检测结果判断容器是否启动成功;若容器启动成功则执行下一程序,若容器启动失败则对容器进行重新启动或杀掉操作并结束流程;
S3、容器健康检查程序:Kubelet采用存活探针和就绪探针分别对容器进行相应的健康检查。
2.根据权利要求1所述的一种基于Kubernetes容器应用健康检查的方法,其特征在于:所述步骤S1的具体内容如下:
S11、Kubelet获取新建的Pod容器信息;
S12、根据Pod容器的探针配置启动启动探针;
S13、配置启动探针的失败阈值和检测周期;其中,Kubelet根据启动探针的failureThreshold和periodSeconds字段配置启动探针的失败阈值和检测周期;
S14、启动探针根据检查配置选择检查方法;其中,检查方法包括httpget方法、tcp方法、执行命令方法;
S15、采用该检查方法周期性的进行健康检查;具体为,启动探针采用前述所选择的检查方法每periodSeconds秒对容器进行一次健康检查。
3.根据权利要求1所述的一种基于Kubernetes容器应用健康检查的方法,其特征在于:所述步骤S2的具体内容如下:
S21、根据健康检查所返回的状态码判断检测结果;若当前的状态码为预置探活成功码,则检测结果为探活成功,容器启动成功,执行下述S23程序;若当前的状态码为预置探活失败码,则检测结果为探活失败,容器当前未启动成功,执行下述S22程序;
S22、计算连续探活失败次数,判断当前的探活失败次数是否达到失败阈值,当连续失败failureThreshold次后,判定容器启动失败,对容器进行重新启动或杀掉操作并结束流程;否则,将容器当前的启动状态containerStatus.started字段继续维持在初始状态false,返回执行周期性的进行健康检查程序;
S23、将容器当前的启动状态containerStatus.started字段由初始状态false更新为true,执行下一程序。
4.根据权利要求1所述的一种基于Kubernetes容器应用健康检查的方法,其特征在于:所述步骤S3中,存活探针和就绪探针与启动探针同时被启动,且,存活探针和就绪探针启动后一直处于抑制状态,并监测容器当前的启动状态containerStatus.started字段,当容器启动成功containerStatus.started字段由初始状态false更新为true后,存活探针和就绪探针解除抑制状态,并分别对容器进行相应的健康检查。
5.根据权利要求1所述的一种基于Kubernetes容器应用健康检查的方法,其特征在于:所述步骤S3中,存活探针和就绪探针在容器启动成功且容器当前的启动状态containerStatus.started字段由初始状态false更新为true后被启动,然后分别对容器进行相应的健康检查。
6.根据权利要求1所述的一种基于Kubernetes容器应用健康检查...
【专利技术属性】
技术研发人员:赵凯麟,王志雄,韦克璐,罗明,谭林春,
申请(专利权)人:桂林东信云科技有限公司,
类型:发明
国别省市:广西;45
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。