Kubernetes(简称为 K8s)中,可以使用 liveness probe 来检测 Pod 的健康状态。当 liveness probe 检测到 Pod 不健康时,K8s 会自动重启该 Pod。
在 Pod 的 YAML 配置文件中,可以添加以下代码来配置 liveness probe:
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 3
periodSeconds: 3
上述配置表示,K8s 会每 3 秒钟通过 HTTP GET 请求访问容器内部的 /healthz 路径,检测容器是否存活。如果容器返回的 HTTP 状态码不是 200,则认为容器不健康,立即重启该容器。initialDelaySeconds 参数表示第一次检测的延迟时间。
除了 HTTP GET 请求,还可以使用 TCP socket 或命令行方式来检测容器的健康状态。
需要注意的是,liveness probe 只能检测容器进程是否存在,并不能代表应用程序的完全健康状态。因此,在设置 liveness probe 时,需要根据实际情况选择合适的检测方式。