k8s pod健康检查
livenessProbe: # pod 内部健康检查的设置httpGet: # 通过httpget检查健康,返回200-399之间,则认为容器正常path: /healthCheck # URI地址port: 8080 # 端口scheme: HTTP # 协议# host: 127.0.0.1 # 主机地址initialDelaySeconds: 30 ..
·
livenessProbe: # pod 内部健康检查的设置
httpGet: # 通过httpget检查健康,返回200-399之间,则认为容器正常
path: /healthCheck # URI地址
port: 8080 # 端口
scheme: HTTP # 协议
# host: 127.0.0.1 # 主机地址
initialDelaySeconds: 30 # 表明第一次检测在容器启动后多长时间后开始
timeoutSeconds: 5 # 检测的超时时间
periodSeconds: 30 # 检查间隔时间
successThreshold: 1 # 成功门槛
failureThreshold: 5 # 失败门槛,连接失败5次,pod杀掉,重启一个新的pod
readinessProbe: # Pod 准备服务健康检查设置
httpGet:
path: /healthCheck
port: 8080
scheme: HTTP
initialDelaySeconds: 30
timeoutSeconds: 5
periodSeconds: 10
successThreshold: 1
failureThreshold: 5
#也可以用这种方法
#exec: 执行命令的方法进行监测,如果其退出码不为0,则认为容器正常
# command:
# - cat
# - /tmp/health
#也可以用这种方法
#tcpSocket: # 通过tcpSocket检查健康
# port: number
4、Pod探针的相关属性
两种探针有许多字段可选,可以用来更加精确的控制LivenessProbe和ReadinessProbe两种探针的探测:
initialDelaySeconds:Pod启动后首次进行检查的等待时间,单位“秒”
periodSeconds:检查的间隔时间,默认为10s,单位“秒”
timeoutSeconds:探针执行检测请求后,等待响应的超时时间,默认为1s,单位“秒”
successThreshold:探针检测失败后认为成功的最小连接成功次数,默认为1s,在liveness探针中必须为1s,最小为1s
failureThreshold:探测失败的重试次数,重试一定次数后将认为失败,在readiness探针中,Pod会被标记为未就绪,默认3s,最小值1s
5、两种探针的区别
总的来说 ReadinessProbe 和 LivenessProbe 是使用相同探测的方式,只是探测后对 Pod 的处置方式不同:
ReadinessProbe:但检测失败后,将Pod的IP:Port从对应Service关联的EndPoint地址列表中删除
LivenessProbe:当检测失败后将容器杀死,并根据Pod的重启策略来决定对应措施
更多推荐
已为社区贡献59条内容
所有评论(0)