Kubernetes 中的有效性和就绪性探针是确保 Pod 健康并准备好接收流量的机制。活力探针会检测容器是否还活着,而就绪探针则会确定容器是否已准备好开始接受流量。


在 Pod 规范中实施有效性和就绪性探针对于保持应用程序的稳健性至关重要。下面举例说明如何在 Pod 定义文件中配置这些探针。

【代码清单】

apiVersion: v1
kind: Pod
metadata:
 name: liveness-readiness-pod
spec:
 containers:
  - name: myapp-container
  image: myapp:latest
  livenessProbe:
   httpGet:
     path: /healthz
     port: 8080
   initialDelaySeconds: 3
   periodSeconds: 3
  readinessProbe:
   httpGet:
     path: /readiness
     port: 8080
   initialDelaySeconds: 5
   periodSeconds: 3

【执行结果】

应用此配置的结果是,Kubernetes 会持续监控 Pod 的健康状况和就绪状态。如果有效性探针失效,Kubernetes 将重启容器。如果准备就绪探测器失效,Pod 将从服务负载平衡器中移除,直到它再次准备就绪。

有效性探针: 用于检测应用程序是否正在运行。如果有效性探针失败,Kubernetes 将杀死容器,容器将执行其重启策略: 确保容器已准备好开始接受流量。如果该探针失败,Pod 将不会包含在服务端点列表中,这意味着它在通过探针之前不会接收流量: 指定容器启动后启动探针前的秒数: 执行探测的频率(以秒为单位)。

[小知识]

有效性探针可以使用 HTTP GET 请求、TCP 套接字或在容器内执行命令等不同方法来实现。准备度探针也可以进行类似的定制,使其适用于不同的用例。