Liveness Probe & Readiness Probe & Startup Probe
在 Kubernetes 中,存活探针(Liveness Probe)、就绪探针(Readiness Probe)、启动探针(Startup Probe) 是 Pod 健康检查的重要机制,它们帮助集群判断容器是否健康、是否准备好对外提供服务,以及是否成功启动。
🧩 三类探针的作用
- 存活探针
👉 检查容器是否仍然健康运行。如果失败,Kubelet 会重启容器。 - 就绪探针
👉 检查容器是否已经准备好接收流量。如果失败,Pod 会被移出 Service 的 Endpoints。 - 启动探针
👉 检查容器是否成功完成启动过程。如果失败,Pod 会被杀掉并重启。
📌 类比理解
- 存活探针 = 心跳监测:容器还活着吗?如果没心跳了,就重启。
- 就绪探针 = 上岗检查:容器准备好接客了吗?没准备好就暂时不接流量。
- 启动探针 = 入职培训:容器是否完成初始化?没完成就重新来过。
📝 使用示例
apiVersion: v1
kind: Pod
metadata:
name: probe-demo
spec:
containers:
- name: demo
image: nginx
livenessProbe:
httpGet:
path: /healthz
port: 80
initialDelaySeconds: 5
periodSeconds: 10
readinessProbe:
httpGet:
path: /ready
port: 80
initialDelaySeconds: 5
periodSeconds: 10
startupProbe:
httpGet:
path: /startup
port: 80
failureThreshold: 30
periodSeconds: 10
👉 这个 Pod 会通过 HTTP 请求检查容器的存活、就绪和启动状态。
⚠️ 注意事项
- 探针类型:支持
httpGet、tcpSocket、exec三种方式。 - 合理配置延迟:避免容器还没启动就被误判失败。
- 避免过度检查:探针过于频繁可能增加负担。
- Startup Probe 与 Liveness Probe 配合:Startup Probe 通过后才会启用 Liveness Probe。
💡 总结
- 存活探针:判断容器是否健康运行。
- 就绪探针:判断容器是否准备好接收流量。
- 启动探针:判断容器是否完成启动过程。
- 三者结合,保证 Pod 在集群中的稳定性和可靠性。
🧩 Liveness Probe
存活探针(Liveness Probe)是 Kubernetes 中用于检测容器是否仍然健康运行的机制。如果探针检测失败,Kubelet 会自动重启容器,从而保证服务的持续可用性。
🧩 存活探针的作用
- 健康检查:确保容器没有进入死锁或不可恢复的状态。
- 自动修复:探针失败时,Kubelet 会重启容器。
- 提高稳定性:避免因单个容器异常导致整个应用不可用。
📌 类比理解
- 存活探针 = 心跳监测
- 容器就像一个人,心跳代表它还活着。
- 如果心跳停止(探针失败),医生(Kubelet)会立即进行急救(重启容器)。
⚙️ 存活探针的类型
- HTTP 检查:访问一个 HTTP 路径,返回 200–399 表示成功。
- TCP 检查:尝试建立 TCP 连接,成功表示容器存活。
- 命令检查(exec):在容器内执行命令,返回码为 0 表示成功。
📝 使用示例
apiVersion: v1
kind: Pod
metadata:
name: liveness-demo
spec:
containers:
- name: demo
image: nginx
livenessProbe:
httpGet:
path: /healthz
port: 80
initialDelaySeconds: 5 # 容器启动后等待 5 秒再开始检查
periodSeconds: 10 # 每 10 秒检查一次
timeoutSeconds: 2 # 超过 2 秒无响应判定失败
failureThreshold: 3 # 连续失败 3 次才判定容器不健康
👉 这个 Pod 会每 10 秒访问一次 /healthz,如果连续 3 次失败,容器会被重启。
⚠️ 注意事项
- 避免误判:合理设置
initialDelaySeconds,避免容器还没启动就被判定失败。 - 探针频率:不要过于频繁,否则会增加负担。
- 与启动探针配合:如果容器启动较慢,可以先用 启动探针,等启动完成后再启用存活探针。
💡 总结
- 存活探针是 Kubernetes 的 心跳检测机制。
- 它确保容器在运行过程中保持健康,否则会被自动重启。
- 支持 HTTP、TCP、exec 三种检查方式。
🧩 Readiness Probe
就绪探针(Readiness Probe)是 Kubernetes 中用于检测容器是否已经准备好接收流量的机制。它不会重启容器,而是决定 Pod 是否加入到 Service 的 Endpoints,从而影响流量调度。
🧩 就绪探针的作用
- 流量控制:只有探针成功的 Pod 才会被加入 Service,接收请求。
- 避免错误响应:防止容器在初始化或暂时不可用时接收流量。
- 滚动更新保障:在应用更新时,只有新 Pod 就绪后才会替换旧 Pod。
📌 类比理解
- 就绪探针 = 上岗检查
- 容器就像员工,只有完成准备工作(加载配置、初始化数据库连接),才能正式上岗。
- 如果没准备好,就暂时不分配任务(不接流量)。
⚙️ 就绪探针的类型
- HTTP 检查:访问一个 HTTP 路径,返回 200–399 表示成功。
- TCP 检查:尝试建立 TCP 连接,成功表示容器就绪。
- 命令检查(exec):在容器内执行命令,返回码为 0 表示成功。
📝 使用示例
apiVersion: v1
kind: Pod
metadata:
name: readiness-demo
spec:
containers:
- name: demo
image: nginx
readinessProbe:
httpGet:
path: /ready
port: 80
initialDelaySeconds: 5 # 容器启动后等待 5 秒再开始检查
periodSeconds: 10 # 每 10 秒检查一次
timeoutSeconds: 2 # 超过 2 秒无响应判定失败
failureThreshold: 3 # 连续失败 3 次判定未就绪
successThreshold: 1 # 成功一次即可判定就绪
👉 这个 Pod 会每 10 秒访问一次 /ready,只有探针成功时才会被加入 Service 的 Endpoints。
⚠️ 注意事项
- 不会重启容器:就绪探针失败只会让 Pod 暂时不接流量,不会触发重启。
- 与存活探针配合:存活探针保证容器健康,就绪探针保证容器能接流量。
- 合理延迟:避免容器还在初始化时就被判定未就绪。
💡 总结
- 就绪探针是 Kubernetes 的 上岗检查机制。
- 它决定 Pod 是否能接收流量,而不是是否需要重启。
- 常用于应用初始化、滚动更新和流量控制场景。
🧩 Startup Probe
启动探针(Startup Probe)是 Kubernetes 中用于检测容器是否成功完成启动过程的机制。它的主要作用是避免容器在启动阶段被过早判定为失败,从而保证慢启动应用的稳定性。
🧩 启动探针的作用
- 启动阶段保护:在容器启动完成前,暂时不启用存活探针。
- 避免误判:防止慢启动应用在初始化时被误判为“存活失败”。
- 与存活探针配合:只有启动探针通过后,存活探针才会开始工作。
📌 类比理解
- 启动探针 = 入职培训
- 容器就像新员工,必须先完成培训(初始化过程)。
- 培训没完成前,不进行考核(不启用存活探针)。
- 培训完成后,才开始正常的工作考核(存活探针)。
⚙️ 启动探针的类型
与存活探针、就绪探针一样,支持三种检查方式:
- HTTP 检查:访问一个 HTTP 路径,返回 200–399 表示成功。
- TCP 检查:尝试建立 TCP 连接,成功表示容器启动完成。
- 命令检查(exec):在容器内执行命令,返回码为 0 表示成功。
📝 使用示例
apiVersion: v1
kind: Pod
metadata:
name: startup-demo
spec:
containers:
- name: demo
image: myapp:latest
startupProbe:
httpGet:
path: /startup
port: 8080
failureThreshold: 30 # 允许最多失败 30 次
periodSeconds: 10 # 每 10 秒检查一次
livenessProbe:
httpGet:
path: /healthz
port: 8080
periodSeconds: 10
👉 在这个 Pod 中,只有当 /startup 检查成功后,存活探针才会开始工作。
⚠️ 注意事项
- 慢启动应用必备:适合数据库、大型框架等启动时间较长的应用。
- 合理设置 failureThreshold:允许足够的失败次数,避免过早重启。
- 与存活探针配合:Startup Probe 通过后才启用 Liveness Probe。
💡 总结
- 启动探针是 Kubernetes 的 入职培训机制。
- 它保证容器在启动阶段不会被过早判定失败。
- 适合慢启动应用,确保稳定性。

浙公网安备 33010602011771号