9.1健康检查
健康检查
kubernetes通过健康检查机制判断pod是否正常运行。若pod为正常运行,kuebernetes将自动重启pod。
kubernetes的健康检查分别有以下几种策略:
默认策略
基于bash的策略
基于http的策略
基于tcp的策略
默认策略
kubernetes默认策略为:只要PID为1的程序不退出,则认为容器是正常的
在容器中查看运行的进程可通过如下命令:
$ ps -ef提示:若想测试默认策略,你可以通过如下命令杀死PID为1的进程,观察pod是否重启
$ kill 1
基于bash的策略
bash 命令执行成功返回0,失败返回1,返回值可通过$?获取。演示如下
基于bash命令的这种特性,kubernetes提供了基于bash的策略。
设置bash策略,可按照如下方式设置deployment:
基于http的策略
基于http的策略:kubernetes通过发起http请求,若http的响应值为200,则认为健康检查通过,否则失败。
设置http策略,可按照如下方式设置deployment:
注意:设置initialDelaySeconds的值时,尽量大于pod的预计启动时间
基于TCP的健康检查
基于tcp的策略:kubernetes判断port是否开启,若port开启,则认为健康检查通过,否则失败。
提示:查看端口使用情况可通过以下命令
扩展
故障排查
若pod频繁重启pod,可将重启策略从always更改为never,这样即使健康检查为通过,pod也不会重启,从而方便排错
Last updated
Was this helpful?