[发明专利]一种基于Kubernetes容器应用健康检查的方法及其系统在审
申请号: | 201911023195.0 | 申请日: | 2019-10-25 |
公开(公告)号: | CN110825490A | 公开(公告)日: | 2020-02-21 |
发明(设计)人: | 赵凯麟;王志雄;韦克璐;罗明;谭林春 | 申请(专利权)人: | 桂林东信云科技有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/445;G06F11/07 |
代理公司: | 北京天奇智新知识产权代理有限公司 11340 | 代理人: | 王雪 |
地址: | 541004 广西壮族自治区桂林*** | 国省代码: | 广西;45 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 kubernetes 容器 应用 健康 检查 方法 及其 系统 | ||
本发明公开了一种基于Kubernetes容器应用健康检查的方法,属于软件应用运行的程序控制技术领域,具体涉及程序启动。本发明通过新增一种新的健康检查探针,推迟现有的健康检查探针的检查操作,以达到慢启动容器在启动时能快速从死锁或其他故障中快速恢复,也保证了容器在正常的启动流程中不会被错误的重启。
技术领域
本发明涉及软件应用运行的程序控制技术领域,具体涉及程序启动,特别是一种基于Kubernetes容器应用健康检查的方法。
背景技术
Kubernetes现有的容器健康检查方法分为两种,分别是存活探针(livenessprobe)和就绪探针(readiness probe),其中,存活探针指示容器是否正在运行。如果存活探测失败,则kubelet会杀死容器,并且容器将受到其重启策略的影响。就绪探针指示容器是否准备好服务请求。如果就绪探测失败,端点控制器将从与Pod匹配的所有Service的端点中删除该Pod的IP地址,即不会将流量继续导入该Pod。
但是现有的两种健康检查方法很难解决一些启动较慢的应用的问题。首先,慢启动的应用有可能因为启动时间过长,在还没启动成功就已经因为健康检查机制而被kubelet杀掉、重启;其次,如果在启动阶段应用出现死锁现象,那么根据现有的健康检查配置,在应用被重启前,有可能要等待一段非常久的时间。
发明内容
本发明的发明目的是,针对上述问题,提供一种基于Kubernetes容器应用健康检查的方法,通过新增一种新的健康检查探针,推迟现有的健康检查探针的检查操作,以达到慢启动容器在启动时能快速从死锁或其他故障中快速恢复,也保证了容器在正常的启动流程中不会被错误的重启。
为达到上述目的,本发明所采用的技术方案是:
一种基于Kubernetes容器应用健康检查的方法,包括以下内容:
S1、容器启动检测程序:Kubernetes组件Kubelet采用启动探针周期性的对容器的健康状态进行检测;
S2、容器启动判断程序:根据启动探针的检测结果判断容器是否启动成功;若容器启动成功则执行下一程序,若容器启动失败则对容器进行重新启动或杀掉操作并结束流程;
S3、容器健康检查程序:Kubelet采用存活探针和就绪探针分别对容器进行相应的健康检查。
作为一选项,步骤S1的具体内容如下:
S11、Kubelet获取新建的Pod容器信息;
S12、根据Pod容器的探针配置启动启动探针;
S13、配置启动探针的失败阈值和检测周期;其中,Kubelet根据启动探针的failureThreshold和periodSeconds字段配置启动探针的失败阈值和检测周期;
S14、启动探针根据检查配置选择检查方法;其中,检查方法包括http get方法、tcp方法、执行命令方法;
S15、采用该检查方法周期性的进行健康检查;具体为,启动探针采用前述所选择的检查方法每periodSeconds秒对容器进行一次健康检查。
作为一选项,步骤S2的具体内容如下:
S21、根据健康检查所返回的状态码判断检测结果;若当前的状态码为预置探活成功码,则检测结果为探活成功,容器启动成功,执行下述S23程序;若当前的状态码为预置探活失败码,则检测结果为探活失败,容器当前未启动成功,执行下述S22程序;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于桂林东信云科技有限公司,未经桂林东信云科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911023195.0/2.html,转载请声明来源钻瓜专利网。