🉐

[K8S] Pod Health Check

上一篇文章介绍了 K8S 的 API 对象,这一篇将会在上一篇的基础了解上介绍一下 Pod 对象的健康检查功能。

前序

什么是 k8s 健康检查?

在 Kubernetes 中,对 Pod 的健康状态进行监测和评估非常重要。为了确保 Pod 正常运行,Kubernetes 提供了以下三种类型的健康检查:
  1. 存活探针 (Liveness Probe):存活探针用于确定 Pod 是否正在运行。如果存活探针失败,Kubernetes 将终止该容器,并根据容器的重启策略采取相应的操作。存活探针通常用于检测应用程序内部状态,例如检查应用程序是否处于死锁状态或无响应状态。
  1. 就绪探针 (Readiness Probe):就绪探针用于确定 Pod 是否已经准备好接收流量。如果就绪探针失败,该 Pod 将被从 Service 的 Endpoint 中移除,直到就绪探针再次成功为止。就绪探针通常用于确保应用程序已经初始化并且能够处理流量。
  1. 启动探针(Startup Probe): 启动探针用于确定应用是否启动完成,如果在 failureThreshold*periodSeconds 周期内未就绪,则会应用进程会被重启。
这些探针可以通过以下探活方式进行配置:
  • HTTP 方式:Kubernetes 可以定期发送 HTTP 请求到容器中的指定端点,并根据返回的状态码和响应内容来判断容器的健康状态。
  • TCP 方式:Kubernetes 可以通过尝试建立 TCP 连接来检查容器的健康状态。
  • Exec 方式:Kubernetes 可以在容器内部执行特定的命令,并根据命令的返回状态来判断容器的健康状态。
通过配置这些健康检查,Kubernetes 可以及时发现并处理不健康的 Pod,从而提高整个集群的可靠性和稳定性

从代码中查看

Pod 定义

查看一个对象的特征主要查看其对象的 Spec 字段(上一篇文章有讲到。TypeMeta 和 Metadata 是通用属性,Spec 和 Status 是每个对象独有的

PodSpec

Container

在 web 控制页面上添加健康检查

通过镜像创建应用

notion image
notion image
notion image
notion image

查看生成 pod 的 yaml 文件

删除其它干扰项,可以看到当前 pod 已经运行了起来且添加了 livenessProbe 存活探针的相关配置。

看一下拓扑图

notion image

查看 pod 内部日志

notion image
后台服务器,一直收到关于 /ping 路由的请求,只要服务器状态正常的情况下这个请求会根据配置定时访问。

结束

时间比较短没有大篇幅的进行详细编写请见谅,需要生产使用时可以根据这个方向去检索相关内容。文中已给出了代码位置,可以根据需要自行查询详细且准确的内容。如果只是简单的使用可以查看 k8s 官方文档,文档地址为[https://kubernetes.io/zh-cn/docs/concepts/workloads/pods/pod-lifecycle/]

资源来源