k8s健康检查Liveness/Readiness/Startup探针介绍
- 2022-11-07 10:30:16
- 运维
- 665
- shevechco
k8s健康检测主要分为以下三种
存活性探测(Liveness probes) :主要是探测应用是否还活着。如果检测到应用没有存活就杀掉当前pod并重启。
就绪性探测(Readiness probes):只要是探测应用是否准备好接受请求访问,如果检测应用准备好了,就把请求流量放进来;反之,则把应用节点从注册中心拿掉。
启动探测(Startup Probes):对于旧应用需要更长的启动时间,这时候既不想重启应用也不想让请求访问进来,可以设置启动探测给足够的启动时间保证应用启动成功。
k8s中Readiness Probes示例
readinessProbe: enabled: true httpGet: port: 8080 scheme: HTTP initialDelaySeconds: 30 timeoutSeconds: 35 periodSeconds: 30 successThreshold: 1 failureThreshold: 3
配置的定义如下
initialDelaySeconds 表示延迟30S开始第一次探测,默认值是0,最小值是0 timeoutSeconds 表示每次探测的超时时间,35S后如果没返回结果就认为超时失败,默认值是1,最小值是1 successThreshold 表示在探测失败后,最小的连续成功被认为是成功的,默认值是1,最小值是1 failureThreshold 表示当探测失败时,Kubernetes将在认为失败前尝试failureThreshold次数。默认值是3,最小值是1;Liveness认为失败的操作是重启pod,而readiness认为失败的操作是把pod标记为 Unready periodSeconds 表示多久进行一次探测,默认是10S,最小值是1
k8s中Liveness Probes示例
livenessProbe: enabled: true httpGet: port: 8080 scheme: HTTP initialDelaySeconds: 60 timeoutSeconds: 35 periodSeconds: 30 successThreshold: 1 failureThreshold: 3
liveness探针参数同rediness
k8s中Startup Probes示例
startupProbe: httpGet: path: /healthz port: liveness-port failureThreshold: 30 periodSeconds: 10
由于启动探测,应用最多有5分钟(30 * 10 = 300秒)来完成它的启动。一旦启动探测成功一次,活性探测(Livenees probes)将接管以提供对容器死锁的快速响应。如果启动探测从未成功,容器将在300秒后被杀死,并遵循pod的重启策略 restartPolicy
restartPolicy 主要有以下三种策略
Always: 当容器终止退出后,总是重启容器,默认策略 Onfailure: 当容器异常退出后(退出码非0)时,才重启容器 Never: 当容器终止退出时,不重启容器
每次探测都是以下三种结果之一:
成功:容器通过了探测 失败:容器未通过探测 未知:容器探测失败,不采取任何操作
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:http://www.sulao.cn/post/891
相关推荐
- k8s集群中mongdb、etcd、prometheus数据bash一键备份脚本
- k8s业务pod端口检测和日志采集bash脚本
- python获取k8s中使用物理卡pod列表脚本
- k8s基于clusterrole生成集群级别只读用户bash脚本
- k8s存储pv/pvc中的subPath的使用详解
- k8s容器退出码详细信息介绍
- k8s调度GPU节点并挂载GPU设备
- k8s使用nfs报错selfLink was empty, can't make reference
- centos7使用haproxy部署k8s高可用集群
- centos7部署k8s多master高可用集群(k8s+containerd+nginx+keepalived)