K8S 探针 readinessProbe、livenessProbe和startupProbe
介绍
K8S 提供了3种探针
readinessProbe
livenessProbe
startupProbe(这个1.17版本增加的)
readinessProbe:指示容器是否准备好服务请求(是否启动完成并就绪)。绪探针初始延迟之前的就绪状态默认为Failure,待容器启动成功弹指指标探测结果为成功后,状态变更为 Success。如果未配置就绪探针,则默认状态为Success。
只有状态为 Success ,才会被纳入 pod 所属 service 中,也就是 service 接收到请求后才有可能会被分发处理请求。
如果ReadinessProbe探针检测到失败,则Pod的状态被修改。Endpoint Controller将从Service的Endpoint中删除包含该容器所在Pod的Endpoint。
livenessProbe:用于判断容器是否存活(running状态),如果LivenessProbe探针探测到容器不健康(你可以配置连续多少次失败才记为不健康),则 kubelet 会杀掉该容器,并根据容器的重启策略做相应的处理。如果未配置存活探针,则默认状态为Success。即探针返回的值永远是 Success。
startupProbe:判断容器内的应用程序是否已启动。如果配置了启动探测,在则在启动探针状态为 Succes 之前,其他所有探针都处于无效状态,直到它成功后其他探针才起作用。如果启动探测失败,kubelet 将杀死容器,容器将服从其重启策略。如果容器没有配置启动探测,则默认状态为 Success。
示例
存活探针 - HTTP协议
containers:- name: xxximage: xxx# 存活检查livenessProbe:httpGet:scheme: HTTP # 协议path: /actuator/health # 路径port: 8080 # 端口initialDelaySeconds: 30 # 延迟探测时间(秒) 【 在k8s第一次探测前等待秒 】periodSeconds: 10 # 执行探测频率(秒) 【 每隔秒执行一次 】timeoutSeconds: 1 # 超时时间successThreshold: 1 # 健康阀值 failureThreshold: 3 # 不健康阀值
存活探针 - TCP协议
containers:- name: xxximage: xxx# 存活检查livenessProbe:tcpSocket: # TCPport: 8090 # 端口initialDelaySeconds: 50 # 延迟探测时间(秒) 【 在k8s第一次探测前等待秒 】periodSeconds: 10 # 执行探测频率(秒) 【 每隔秒执行一次 】timeoutSeconds: 1 # 超时时间successThreshold: 1 # 健康阀值 failureThreshold: 3 # 不健康阀值
上面配置的意思是容器启动50s后,每10s检查一次,允许失败的次数是3次。如果失败次数超过3则会触发restartPolicy。
就绪探针
HTTP协议和TCP协议配置方法和存活探测相同(如上,这里只列出一个HTTP协议的)
containers:- name: xxximage: xxx# 就绪检查readinessProbe:httpGet:scheme: HTTP # 协议path: /actuator/health # 路径port: 8080 # 端口initialDelaySeconds: 30 # 延迟探测时间(秒)【 在k8s第一次探测前等待秒 】periodSeconds: 2 # 执行探测频率(秒) 【 每隔秒执行一次 】timeoutSeconds: 1 # 超时时间successThreshold: 1 # 健康阀值 failureThreshold: 3 # 不健康阀值
启动探针
startupProbe 脚本内容和 readinessProbe 相比,除了名字不同之外,其他配置和含义相同(脚本参考如上)。
注意
- 如果只配置了存活检查 ( livenessProbe ) 而没有配置就绪检查 ( readinessProbe ) ,则在滚动更新过程中可能会出现 502 Bad Gateway 错误。
- 不要将 startupProbe 和 readinessProbe 混淆。
- 通常将 startupProbe 和 livenessProbe 组合使用,livenessProbe 的时间是从 startupProbe 状态成功后开始计算。
(END)
K8S 探针 readinessProbe、livenessProbe和startupProbe相关推荐
- k8s探针检测php,K8S教程(7)使用探针对容器进行健康检查
应用在运行过程不可避免会出现各种问题导致服务不可用的情况发生,K8S的Health Check健康检查机制可以对这些异常服务进行重启.剔除等操作,保障高可用. 一.K8S的健康检查探针 K8S的探针主 ...
- K8s 之 ReadinessProbe(就绪探针)使用的迷惑
一.问题 当我们将某应用的新版本发布到 K8s 的时候,经常会出现这样一个场景: Pod 已经运行起来了(READY=1/1,STATUS=Running),但是 Pod 中的应用(例如:spring ...
- k8s探针检测php,K8s探针
K8s中存在两种类型的探针:liveness probe和readiness probe. liveness probe(存活探针) 用于判断容器是否存活,即Pod是否为running状态,如果Liv ...
- k8s探针检测php,k8s实践11:kubernetes监测探针简单测试
探针实践 1.两种探针 readiness probe(就绪探针) 监测容器是否就绪?只有pod里的容器就绪,kubelet才会认为pod处于就绪状态. 就绪探针的作用是控制哪些pod可以作为svc的 ...
- k8s探针检测php,k8s探针实现grpc健康检查
这篇文章教大家如何利用k8s实现grpc健康检查 一. 配置Liveness和Readiness探针 kubelet 使用 liveness probe(存活探针)来确定何时重启容器.例如,当应用程序 ...
- 十、k8s健康检查之 livenessProbe/readinessProbe
健康检查 一个pod启动了之后,它有可能还在做初始化,这就意味着在初始化的应用进程还不能接受网络流量,所以要去控制一下pod的状态,也就是我还没有就绪,我还不能够接受流量. 有些应用跑着跑着没有响应, ...
- K8s Liveness/Readiness/Startup 探针机制
官方参考文档 目录 前言 一.默认健康检测 1.1 restartPolicy 1.2 测试案例 二.Liveness 三.Readiness 四.Startup 前言 玩过 Docker Swarm ...
- kubernetes Pod Lifecycle生命周期与livenessProbe、 readinessProbe探测方法
kuberenetes pod Liveness, Readiness and Startup Probes tags: Pod,探针,健康检测 文章目录 kuberenetes pod Livene ...
- k8s-故障转移 livenessProbe readinessProbe 学习总结
k8s-故障转移学习总结 大纲 概念 K8S中Pod健康检查 livenessProbe & readinessProbe livenessProbe 存活探测实例 readinessProb ...
- K8S使用就绪和存活探针配置健康检查
本文转自:K8S使用就绪和存活探针配置健康检查 | 王柏元的博客,评论请前往原网站 一. 健康检查 健康检查(Health Check)可用于服务运行的状态监控,比如腾讯旗下的DNSPOD的D监控,要 ...
最新文章
- 自动驾驶软件工程之预测
- 【自然语言处理】N-最短路径法进行中文分词
- Ubuntu系统(一)-安装篇
- Android Studio编译问题-Error:Could not find org.jetbrains.trove4j
- 伪元素写竖线_用伪元素画出太极图
- CelebA数据集在Linux下解压
- linux c配置文件书写格式,读取配置文件源代码[linux c]
- Java面试题集(二)list与Map相关知识(1.2)
- 【转】.NET框架简介
- PHP endif、endwhile、endfor、冒号、switch、foreach使用介绍、Heredoc 、Nowdoc
- python中正方形内切园_python画出三角形外接圆和内切圆的方法
- 计算机二进制计算过程
- 股票行情图的绘制,分时图和闪电图
- 关于在github上传代码却没有小绿点(贡献率)的问题
- 现代计算机专业版官网,现代计算机期刊_投稿邮箱_杂志_编辑部_审稿_投稿须知...
- Number of ways to split should evenly divide the split dimension, but got split_dim 3 (size = 4) and
- django腾讯企业邮箱发送邮件配置
- nyoj 独木舟上的旅行
- AI 工程师进阶路线
- h5打开麦克风权限录音_微信H5录音实现