【Kubernetes系列】Kubernetes 中的探针模式

举报
kwan的解忧杂货铺 发表于 2024/11/26 00:29:37 2024/11/26
268 0 0
【摘要】 在 Kubernetes(K8s)集群中,探针是一种用于监控和管理 Pod 健康状态的机制。通过探针,Kubernetes 能够自动检测容器是否运行正常,并在必要时重启容器,以确保服务的高可用性。Kubernetes 中三种探针模式:存活探针(LivenessProbe)、就绪探针(ReadinessProbe)和启动探针(StartupProbe)。 存活探针(LivenessProbe)...

在 Kubernetes(K8s)集群中,探针是一种用于监控和管理 Pod 健康状态的机制。通过探针,Kubernetes 能够自动检测容器是否运行正常,并在必要时重启容器,以确保服务的高可用性。
Kubernetes 中三种探针模式:存活探针(LivenessProbe)、就绪探针(ReadinessProbe)和启动探针(StartupProbe)。

存活探针(LivenessProbe)

存活探针用于检查容器是否仍在运行。如果探针检测到容器无响应,Kubernetes 会重启该容器。这种机制特别适用于长时间运行的容器,在容器死锁或无法继续工作时,能够自动重启容器,恢复服务。

存活探针可以通过以下三种方式配置:

  1. exec 方式:在容器内执行特定命令,根据命令的退出状态码判断健康状态。
    livenessProbe:
      exec:
        command:
          - cat
          - /tmp/healthy
    
  2. httpGet 方式:发送 HTTP 请求到容器的特定端点,根据 HTTP 状态码判断健康状态。
    livenessProbe:
      httpGet:
        path: /health
        port: 8080
    
  3. tcpSocket 方式:通过尝试连接容器的 TCP 端口来检测健康状态。
    livenessProbe:
      tcpSocket:
        port: 8080
    

就绪探针(ReadinessProbe)

在这里插入图片描述

就绪探针用于判断容器是否已经准备好接收流量。如果就绪探针失败,Kubernetes 会从 Service 的负载均衡器中移除该 Pod,直到探针成功为止。

就绪探针的配置方式与存活探针类似,也支持 exec、httpGet 和 tcpSocket 三种方式。例如,使用 httpGet 方式配置就绪探针:

readinessProbe:
  httpGet:
    path: /actuator/health
    port: 8081

启动探针(StartupProbe)

启动探针仅在容器启动阶段执行,探测成功后就不再执行。这对于需要较长启动时间的应用程序特别有用,可以避免在应用程序完全启动之前就进行健康检查。

启动探针的配置示例:

startupProbe:
  httpGet:
    path: /health
    port: 8080
  initialDelaySeconds: 10

探针的配置参数

Kubernetes 中的探针都支持一些通用的参数来定义它们的行为,如initialDelaySecondsperiodSecondstimeoutSecondssuccessThresholdfailureThreshold等。

总结

Kubernetes 的探针模式为容器化应用提供了强大的健康检查和管理能力。通过合理配置探针,可以确保应用程序在出现故障时能够自动恢复,从而提高服务的稳定性和可靠性。存活探针、就绪探针和启动探针各自针对不同的应用场景,为 Kubernetes 集群中的 Pod 提供了全方位的健康保障。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。