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

在k8S中,Pod中的LivenessProbe探针常见方式有哪些?

在 Kubernetes (k8s) 中,Pod 的 LivenessProbe 探针常见的方式有以下三种:

  1. Exec:

    • 通过在容器内部执行一个命令来检查应用是否正常运行。如果命令的退出状态码为0,则认为应用程序是健康的;非0状态码则视为不健康。例如:

      livenessProbe:
        exec:
          command:
            - cat
            - /tmp/healthy
      

      在这个例子中,Kubernetes 将会在指定的时间间隔内执行 cat /tmp/healthy 命令,如果该文件存在且能成功读取(即命令返回0),则认为容器是健康的。

  2. HTTPGet:

    • 向容器暴露的一个HTTP端点发送GET请求,根据响应的状态码判断容器的健康状况。例如:

      livenessProbe:
        httpGet:
          path: /healthz
          port: 8080
          httpHeaders:
          - name: Custom-Header
            value: AwesomeValue
      

      此探针会定期访问容器在8080端口上的 /healthz 路径,并期望收到成功的HTTP状态码(通常为200)。

  3. TCPSocket:

    • 直接尝试连接到容器监听的特定TCP端口,如果能够建立连接,则表明容器服务处于活动状态。例如:

      livenessProbe:
        tcpSocket:
          port: 9000
      

      这个探针将试图连接到容器的9000端口,如果能够成功建立连接,则认为容器是健康的。

综上所述,除了以上 probe 类型外,LivenessProbe 还可以配置超时时间 (timeoutSeconds)、检查间隔 (periodSeconds) 和连续失败次数阈值 (failureThreshold) 等参数,以便更精细地控制探测行为。当 LivenessProbe 失败超过设定的阈值时,Kubernetes 会重启相应的容器。

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