探针有哪些?探测方法有哪些?

在 Kubernetes 中,探针(Probe)是一种用于检查容器状态的机制。探针可以检测容器是否处于健康状态,以及是否准备好处理请求。探针的配置在容器级别进行,Kubernetes 可以基于探针的结果对容器执行特定的操作,比如重启容器或者将其从服务的后端列表中移除。

Kubernetes 中的三种探针类型

  1. Liveness Probe(存活探针)
    • 用途: 检查容器是否还在运行。如果 Liveness Probe 失败,Kubernetes 会将容器视为不可用并尝试重启它。这对于检测应用程序是否陷入死循环或挂起状态非常有用。
    • 触发动作: 如果探测失败,Kubernetes 会重启容器。
  2. Readiness Probe(就绪探针)
    • 用途: 检查容器是否已准备好处理请求。Readiness Probe 允许你控制 Pod 何时可以接收流量。当容器还没有准备好时,Kubernetes 将不会将其包括在服务的可用端点列表中。
    • 触发动作: 如果探测失败,Pod 会被从负载均衡器的服务端点列表中移除,直到它恢复为止。
  3. Startup Probe(启动探针)
    • 用途: 专门用于检测容器的启动状态。对于启动时间较长的应用程序,Startup Probe 可以防止 Liveness Probe 过早检测到容器未准备好并导致容器重启。
    • 触发动作: 如果 Startup Probe 成功,Kubernetes 会认为容器已经启动成功并开始使用 Liveness 和 Readiness 探针。如果 Startup Probe 失败,Kubernetes 会重启容器。

探测方法(Probe 的实现方式)

Kubernetes 提供了三种主要的探测方法,每种方法可以在 Liveness Probe、Readiness Probe 和 Startup Probe 中使用:

  1. HTTP GET 探测
    • 描述: Kubernetes 向容器内的指定路径发起 HTTP GET 请求。容器返回的状态码将决定探测的结果。
    • 配置示例:
livenessProbe:
  httpGet:
    path: /healthz
    port: 8080
  initialDelaySeconds: 3
  periodSeconds: 3
  • 成功条件: HTTP 状态码为 200-399 范围内视为成功。
  1. TCP Socket 探测
    • 描述: Kubernetes 尝试通过 TCP 端口与容器建立连接。如果连接成功,探测视为成功。
    • 配置示例:
livenessProbe:
  tcpSocket:
    port: 8080
  initialDelaySeconds: 3
  periodSeconds: 3
  • 成功条件: TCP 连接成功建立。
  1. Exec 探测
    • 描述: Kubernetes 在容器内执行指定的命令,并根据命令的退出状态码判断探测结果。
    • 配置示例:
livenessProbe:
  exec:
    command:
    - cat
    - /tmp/healthy
  initialDelaySeconds: 5
  periodSeconds: 5
  • 成功条件: 命令的退出状态码为 0 时视为成功。

探针的常用配置参数

  • initialDelaySeconds: 探针在容器启动后首次执行的延迟时间(秒)。用于给容器提供启动时间。
  • periodSeconds: 探针之间的间隔时间(秒)。探针每隔多长时间执行一次。
  • timeoutSeconds: 探针的超时时间(秒)。超过这个时间后,探针将被视为失败。
  • successThreshold: 探针连续成功的次数,必须达到这个次数后才被认为探测成功。
  • failureThreshold: 探针连续失败的次数,必须达到这个次数后才被认为探测失败并采取相应的动作。

总结

  • 探针类型: Kubernetes 提供了 Liveness Probe、Readiness Probe 和 Startup Probe 三种类型,分别用于检测容器的存活状态、就绪状态和启动状态。
  • 探测方法: 你可以使用 HTTP GET 探测、TCP Socket 探测和 Exec 探测来实现探针。这些方法适应不同类型的应用场景,帮助你确保容器在合适的状态下接收流量和重启。

通过合理配置探针,可以提高应用程序在 Kubernetes 集群中的可用性和稳定性。

🔥运维干货分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

企鹅侠客

您的打赏是我创作旅程中的关键燃

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值