k8s pod 中健康检查的三种探测方式?

k8s pod 中健康检查的三种探测方式?

精选文章moguli202024-12-19 9:34:5025A+A-

k8s 中每种探测机制都支持三种健康检查方法,分别是命令行exec,httpGet和tcpSocket,其中exec通用性最强,适用与大部分场景,tcpSocket适用于TCP业务,httpGet适用于web业务。


1、exec(自定义健康检查):在容器中执行指定的命令,如果执行成功,退出码为 0 则探测成功。

2、httpGet:通过容器的IP地址、端口号及路径调用 HTTP Get方法,如果响应的状态码大于等于200且小于400,则认为容器 健康。

3、tcpSocket:通过容器的 IP 地址和端口号执行 TCP 检 查,如果能够建立 TCP 连接,则表明容器健康。

探针探测结果有以下值:

1、Success:表示通过检测。

2、Failure:表示未通过检测。

3、Unknown:表示检测没有正常进行。

健康检查常用的可选参数:

1、initialDelaySeconds:探测延迟时长,容器启动后多久开始进行第一次探测工作,默认0秒。

2、periodSeconds:探测频度,频率过高会对pod带来较大的额外开销,频率过低则无法及时反映容器产生的错误,默认10秒。

3、timeoutSeconds:探测的超时时长,默认1秒。

4、failureThreshold:处于成功状态时,探测连续失败几次可被认为失败,默认3秒。

4、successThreshold:处于失败状态时,探测连续成功几次,被认为成功,默认1秒。

k8s pod 健康检查 liveness ,readiness,startup探针?

首发2024-04-14 17:30·大数据老司机

在 Kubernetes 中,Pod 健康检查是通过探针(Probes)来实现的,主要分为三种类型:存活探针(Liveness Probes)、就绪探针(Readiness Probes)和启动探针(Startup Probes)。


1、存活探针(Liveness Probes):

存活探针用于检查容器是否仍然健康运行。

如果存活探针失败,Kubernetes 会根据 Pod 规范中定义的 restartPolicy 重启容器。

存活探针可以是 HTTP GET 请求、TCP 端口检查或执行命令。

Liveness 探针 restartPolicy有三个可选值:

  • Always:当容器终止退出后,总是重启容器,默认策略。
  • OnFailure:当容器异常退出(退出状态码非0)时,才重启容器。
  • Never:当容器终止退出,从不重启容器。

2、就绪探针(Readiness Probes):

就绪探针用于检查容器是否准备好接收流量。

如果就绪探针失败,Kubernetes 会将 Pod 标记为非就绪,并且服务(Service)不会将流量路由到该 Pod。

就绪探针通常在容器启动后不久执行,以确保所有必要的初始化操作已经完成。

3、启动探针(Startup Probes):

启动探针是 Kubernetes 1.16 版本引入的,用于在容器启动时执行的健康检查。

启动探针允许你定义一个自定义的检查,以确保容器在开始接受流量之前已经完全初始化。

如果启动探针失败,Kubernetes 会重启容器,直到探针成功为止。

这些探针提供了一种机制,让 Kubernetes 能够自动检测和响应容器的健康状态,确保应用程序的稳定性和可靠性。

往期推荐:

关注我微信公众号:大数据与云原生技术分享,获取大数据、k8s等整套学习资料,如本篇文章对您有所帮助,麻烦帮忙一键三连(点赞、转发、收藏)~

点击这里复制本文地址 以上内容由莫古技术网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

莫古技术网 © All Rights Reserved.  滇ICP备2024046894号-2