一、Liveness Probe 和 Readiness Probe 详细分析
Liveness Probe
Liveness Probe 用于检查容器是否处于健康状态。如果探针失败,Kubernetes 会杀死容器并根据重启策略决定是否重启。这对于检测和恢复应用程序中的死锁或其他致命错误非常有用。
Readiness Probe
Readiness Probe 用于检查容器是否准备好接受流量。如果探针失败,Kubernetes 会将该 Pod 从服务的负载均衡池中移除。这对于确保只有在完全准备好时才处理请求的应用程序非常有用,例如在依赖初始化或外部资源的情况下。
二、实战案例
案例场景
假设我们有一个 Web 应用程序,它有一个健康检查端点 /healthz
和一个就绪检查端点 /readyz
。我们将使用 Liveness Probe 来检查应用程序的健康状态,并使用 Readiness Probe 来检查应用程序是否准备好处理请求。
1. 编写 YAML 配置文件
创建一个名为 web-app-pod.yaml
的文件,内容如下:
apiVersion: v1 # API 版本
kind: Pod # 资源类型
metadata:
name: web-app-pod # Pod 的名称
spec:
containers:
- name: web-app # 容器名称
imag