以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!
如果对您有帮助,烦请点赞、关注、转发!如果您有其他想要了解的,欢迎私信联系我~
基本介绍
工作原理
定义探针:用户在 Pod 中定义探针配置,包括探针类型、探测方式、探测间隔和阈值 触发探针:Kubernetes 会根据定义的探针配置,定期触发健康检查 执行探针:Kubernetes 会根据定义的探针配置,在容器中执行 EXEC 命令、建立 TCP 连接或发送 HTTP Get 请求 结果处理:探针执行成功则等待下一次探测,探针执行失败则根据既定规则对容器进行处理
探针类型
某些应用程序启动非常慢,如果只配置 LivenessProbe 或 ReadinessProbe,很可能出现应用程序还没有完成启动,对应的容器就被 Kill 掉无限重启的情况。
配置有 StartupProbe 的 Pod,在应用程序没有成功启动之前,LivenessProbe 和 ReadinessProbe 均不生效,不会重启容器。
探测方式
资源清单(示例)
apiVersion: apps/v1
kind: Deployment
metadata:
nanme: demo-deployment
spec:
...
spec:
containers:
name: demo-container
...
startupProbe / livenessProbe / readinessProbe:
exec: # EXEC 命令探测方式
command: ["cat", "/health.txt"]
或
tcpSocket: # TCP 连接探测方式
port: 80
或
httpGet: # HTTP 请求探测方式
path: /health
port: 80
initialDelaySeconds: 5 # 首次探测前等待时间
periodSeconds: 10 # 探测间隔时间
timeoutSeconds: 1 # 探测超时时间
successThreshold: 1 # 探测成功阈值
failureThreshold: 3 # 探测失败阈值