注意:以下文档只适用于TOP接口,请谨慎使用!

文档中心 > 聚石塔

云应用配置健康检查

更新时间:2020/08/05 访问次数:441

云应用配置健康检查

在容器集群K8S中,主要通过liveness(应用存活)readiness(应用就绪)两种探针来探测Pod内容器的运行情况。

 

探针的检查有如下三种方式,

  • ExecAction,脚本检查,在容器中执行特定的命令,命令退出返回0表示Success
  • HTTPGetAction,HTTP检查,发起一次HTTP请求,如果返回码为200表示Success
  • TCPSocketAction,TCP检查,根据容器IP地址及特定的端口进行TCP检查,端口开放表示Success

目前聚石塔支持脚本检查HTTP检查

 

应用存活探针

liveness探针用来检测容器是否正常运行。如果存活探测失败,集群认为容器运行异常,会对其进行重启。如果不设置存活探针,则默认状态为 Success(正常运行)。

liveness探针适用于重启容器能够恢复应用的场景。例如,一个JAVA应用jvm因为OOM宕掉,如果没有配置存活探针,则应用会一直挂掉;如果配置了存活探针,且探针检查为Failure,则集群自动重启容器,重启后java应用恢复正常。(当然,最佳的方式是调整JVM参数、调整容器规格。不过存活探针的设置一定程度上保证了应用的可用)

应用就绪探针

readiness探针被用来控制流量进入pod,表示容器是否准备好服务请求。比如应用程序需要加载一个大的文件或者需要启动后进行一些配置。默认情况下,只要容器进程启动完成就会有流量发送过来。如果配置了就绪探针,则集群会一直等待直到就绪探针返回Success。如果不设置就绪探针,则默认状态为 Success(流量可进入)。

配置示例

image.png

  • 如果容器启动时间较长,可以调整“检查延迟”
  • 如果检查的执行较长,可以调整“超时时间”

最佳实践

1.是否一定要配置存活探针

可以不配置,不配置则默认容器运行正常,健康检查为Success。此时无法利用集群的重启策略,需要自行保证应用可用性。

 

2.是否一定要配置就绪探针

可以不配置,不配置则默认容器就绪ready,健康检查为Success。例如,对应用做了一个SLB流量接入,应用容器启动后就会有流量进入容器内。

FAQ

关于此文档暂时还没有FAQ
返回
顶部