Kubernetes 中,如何使用 Liveness 和 Readiness Probe 进行健康检查?

阅读时长 6 分钟读完

在 Kubernetes 中,Liveness Probe 和 Readiness Probe 是用于检查容器是否健康的重要工具。它们可以帮助 Kubernetes 自动重启不健康的容器,以及避免将流量发送到未准备好的容器。

Liveness Probe

Liveness Probe 用于检查容器是否处于运行状态。如果容器未能响应 Liveness Probe,Kubernetes 将重启该容器。Liveness Probe 可以使用以下方式之一来检查容器的健康状况:

HTTP 接口

通过向容器的 HTTP 接口发送 HTTP GET 请求来检查容器是否处于运行状态。如果容器返回 200 OK 响应,则表示容器正常运行。

以下是一个使用 HTTP 接口的 Liveness Probe 示例:

-- -------------------- ---- -------
----------- --
----- ---
---------
  ----- ------
-----
  -----------
  - ----- ------------
    ------ --------
    --------------
      --------
        ----- --------
        ----- ----
      -------------------- --
      -------------- --

在上述示例中,Liveness Probe 配置了一个 HTTP GET 请求,路径为 /healthz,端口为 8080。它还配置了初始延迟时间为 30 秒,以及每 10 秒发送一次检查请求。

TCP 接口

通过向容器的 TCP 接口发送 TCP 连接请求来检查容器是否处于运行状态。如果容器成功建立 TCP 连接,则表示容器正常运行。

以下是一个使用 TCP 接口的 Liveness Probe 示例:

-- -------------------- ---- -------
----------- --
----- ---
---------
  ----- ------
-----
  -----------
  - ----- ------------
    ------ --------
    --------------
      ----------
        ----- ----
      -------------------- --
      -------------- --

在上述示例中,Liveness Probe 配置了一个 TCP 连接请求,端口为 8080。它还配置了初始延迟时间为 30 秒,以及每 10 秒发送一次检查请求。

命令

通过执行容器内的命令来检查容器是否处于运行状态。如果命令执行成功,则表示容器正常运行。

以下是一个使用命令的 Liveness Probe 示例:

-- -------------------- ---- -------
----------- --
----- ---
---------
  ----- ------
-----
  -----------
  - ----- ------------
    ------ --------
    --------------
      -----
        --------
        - ---
        - ------------
      -------------------- --
      -------------- --

在上述示例中,Liveness Probe 配置了一个命令,即执行 cat /tmp/healthy 命令。它还配置了初始延迟时间为 30 秒,以及每 10 秒发送一次检查请求。

Readiness Probe

Readiness Probe 用于检查容器是否准备好接收流量。如果容器未能响应 Readiness Probe,Kubernetes 将不会将流量发送到该容器。Readiness Probe 可以使用以下方式之一来检查容器的准备状况:

HTTP 接口

通过向容器的 HTTP 接口发送 HTTP GET 请求来检查容器是否准备好接收流量。如果容器返回 200 OK 响应,则表示容器准备好接收流量。

以下是一个使用 HTTP 接口的 Readiness Probe 示例:

-- -------------------- ---- -------
----------- --
----- ---
---------
  ----- ------
-----
  -----------
  - ----- ------------
    ------ --------
    ---------------
      --------
        ----- --------
        ----- ----
      -------------------- --
      -------------- --

在上述示例中,Readiness Probe 配置了一个 HTTP GET 请求,路径为 /healthz,端口为 8080。它还配置了初始延迟时间为 30 秒,以及每 10 秒发送一次检查请求。

TCP 接口

通过向容器的 TCP 接口发送 TCP 连接请求来检查容器是否准备好接收流量。如果容器成功建立 TCP 连接,则表示容器准备好接收流量。

以下是一个使用 TCP 接口的 Readiness Probe 示例:

-- -------------------- ---- -------
----------- --
----- ---
---------
  ----- ------
-----
  -----------
  - ----- ------------
    ------ --------
    ---------------
      ----------
        ----- ----
      -------------------- --
      -------------- --

在上述示例中,Readiness Probe 配置了一个 TCP 连接请求,端口为 8080。它还配置了初始延迟时间为 30 秒,以及每 10 秒发送一次检查请求。

命令

通过执行容器内的命令来检查容器是否准备好接收流量。如果命令执行成功,则表示容器准备好接收流量。

以下是一个使用命令的 Readiness Probe 示例:

-- -------------------- ---- -------
----------- --
----- ---
---------
  ----- ------
-----
  -----------
  - ----- ------------
    ------ --------
    ---------------
      -----
        --------
        - ---
        - ------------
      -------------------- --
      -------------- --

在上述示例中,Readiness Probe 配置了一个命令,即执行 cat /tmp/healthy 命令。它还配置了初始延迟时间为 30 秒,以及每 10 秒发送一次检查请求。

结论

在 Kubernetes 中,使用 Liveness Probe 和 Readiness Probe 可以帮助我们更好地管理容器的健康状况。通过合理配置 Probe,我们可以避免不健康的容器对应用程序的影响,并提高应用程序的可靠性。

以上就是关于 Kubernetes 中如何使用 Liveness 和 Readiness Probe 进行健康检查的详细介绍,希望对大家有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6759cfd97ebdbf91a6d5269e

纠错
反馈