健康检查
健康检查是指容器运行过程中,根据需要,定时检查容器中应用健康状况。
云容器实例基于Kubernetes,提供了两种健康检查的方式:
- 应用存活探针(liveness probe),探测应用是否已经启动:该检查方式用于检测容器是否存活,类似于我们执行ps命令检查进程是否存在。如果容器的存活检查的结果为失败,云容器实例会对该容器执行重启操作;如果容器的存活检查成功则不执行任何操作。
- 应用业务探针(readiness probe),探测应用业务是否已经就绪:该检查方式用于检测容器是否准备好开始处理用户请求。一些程序的启动时间可能很长,比如要加载磁盘数据或者要依赖外部的某个模块启动完成才能提供服务。这时候程序进程在,但是并不能对外提供服务。这种场景下该检查方式就非常有用。
健康检查方式
- HTTP请求方式
探针往容器发送HTTP请求,如果探针收到2xx或3xx的返回状态码,说明容器是健康。
- 命令行脚本
探针执行容器中的命令并检查命令退出的状态码,如果状态码为0则说明健康。
例如,您如果希望使用“cat /tmp/healthy”命令检查/tmp/healthy目录是否存在,则可以如下图配置。
图1 检查
公共参数说明
参数 |
参数说明 |
---|---|
延迟时间 |
延迟时间,单位为秒。例如,设置为10,表示从容器启动后10秒开始探测。 |
超时时间 |
超时时间,单位为秒。例如,设置为10,表明执行健康检查的超时等待时间为10秒,如果超过这个时间,本次健康检查就被视为失败。如果设置为0或不设置,默认超时等待时间为1秒。 |
使用kubectl设置健康检查
- 应用存活探针设置请参见存活探针(liveness probe)。
- 应用业务探针设置请参见业务探针(Readiness probe)。