作者信息:https://home.cnblogs.com/u/huangjiabobk

在K8S中,Pod的健康检查方式有哪些?

在 Kubernetes (K8s) 中,Pod 的健康检查主要通过两种类型的探针实现:Liveness Probe 和 Readiness Probe。

  1. Liveness Probe(存活探针):

    • 用于检测容器是否处于正常运行状态。如果Liveness Probe失败,则表明容器已不再健康,并且kubelet会采取相应行动,通常是重启容器。
    • Liveness Probe可以通过以下几种方式执行:
      • ExecAction:在容器内执行指定的命令,根据命令的退出码判断容器是否健康。
      • HTTPGetAction:向容器暴露的HTTP端点发送GET请求,根据响应的状态码和延迟判断容器是否健康。
      • TCPSocketAction:尝试连接到容器监听的特定TCP端口,根据连接成功与否来判断容器是否仍在提供服务。
  2. Readiness Probe(就绪探针):

    • 用于确定容器是否准备好为流量提供服务。只有当Readiness Probe成功时,容器才会被视为“Ready”状态,并由Service等资源开始路由流量给该Pod。
    • Readiness Probe同样支持与Liveness Probe相同的执行方式:
      • ExecAction
      • HTTPGetAction
      • TCPSocketAction

此外,还有一个不太常用的启动Probe:

  1. Startup Probe(启动探针):
    • 从Kubernetes v1.16版本开始引入,用于探测容器应用启动初期是否已经准备就绪,以便于减少因应用程序初始化时间过长导致的不必要的重启。
    • 启动探针也支持上述三种执行方式,一旦启动探针成功,kubelet将停止执行Liveness和Readiness探针,直到启动探针失败。

综上所述,配置这些探针时,需要在Pod的定义中为每个容器设置相应的livenessProbereadinessProbe和/或startupProbe字段,并详细指定其执行动作类型、路径、端口、超时时间、重试次数等参数。

posted @ 2024-02-08 08:12  黄嘉波  阅读(109)  评论(0编辑  收藏  举报
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波