介绍

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相关推荐

  1. k8s探针检测php,K8S教程(7)使用探针对容器进行健康检查

    应用在运行过程不可避免会出现各种问题导致服务不可用的情况发生,K8S的Health Check健康检查机制可以对这些异常服务进行重启.剔除等操作,保障高可用. 一.K8S的健康检查探针 K8S的探针主 ...

  2. K8s 之 ReadinessProbe(就绪探针)使用的迷惑

    一.问题 当我们将某应用的新版本发布到 K8s 的时候,经常会出现这样一个场景: Pod 已经运行起来了(READY=1/1,STATUS=Running),但是 Pod 中的应用(例如:spring ...

  3. k8s探针检测php,K8s探针

    K8s中存在两种类型的探针:liveness probe和readiness probe. liveness probe(存活探针) 用于判断容器是否存活,即Pod是否为running状态,如果Liv ...

  4. k8s探针检测php,k8s实践11:kubernetes监测探针简单测试

    探针实践 1.两种探针 readiness probe(就绪探针) 监测容器是否就绪?只有pod里的容器就绪,kubelet才会认为pod处于就绪状态. 就绪探针的作用是控制哪些pod可以作为svc的 ...

  5. k8s探针检测php,k8s探针实现grpc健康检查

    这篇文章教大家如何利用k8s实现grpc健康检查 一. 配置Liveness和Readiness探针 kubelet 使用 liveness probe(存活探针)来确定何时重启容器.例如,当应用程序 ...

  6. 十、k8s健康检查之 livenessProbe/readinessProbe

    健康检查 一个pod启动了之后,它有可能还在做初始化,这就意味着在初始化的应用进程还不能接受网络流量,所以要去控制一下pod的状态,也就是我还没有就绪,我还不能够接受流量. 有些应用跑着跑着没有响应, ...

  7. K8s Liveness/Readiness/Startup 探针机制

    官方参考文档 目录 前言 一.默认健康检测 1.1 restartPolicy 1.2 测试案例 二.Liveness 三.Readiness 四.Startup 前言 玩过 Docker Swarm ...

  8. kubernetes Pod Lifecycle生命周期与livenessProbe、 readinessProbe探测方法

    kuberenetes pod Liveness, Readiness and Startup Probes tags: Pod,探针,健康检测 文章目录 kuberenetes pod Livene ...

  9. k8s-故障转移 livenessProbe readinessProbe 学习总结

    k8s-故障转移学习总结 大纲 概念 K8S中Pod健康检查 livenessProbe & readinessProbe livenessProbe 存活探测实例 readinessProb ...

  10. K8S使用就绪和存活探针配置健康检查

    本文转自:K8S使用就绪和存活探针配置健康检查 | 王柏元的博客,评论请前往原网站 一. 健康检查 健康检查(Health Check)可用于服务运行的状态监控,比如腾讯旗下的DNSPOD的D监控,要 ...

最新文章

  1. 自动驾驶软件工程之预测
  2. 【自然语言处理】N-最短路径法进行中文分词
  3. Ubuntu系统(一)-安装篇
  4. Android Studio编译问题-Error:Could not find org.jetbrains.trove4j
  5. 伪元素写竖线_用伪元素画出太极图
  6. CelebA数据集在Linux下解压
  7. linux c配置文件书写格式,读取配置文件源代码[linux c]
  8. Java面试题集(二)list与Map相关知识(1.2)
  9. 【转】.NET框架简介
  10. PHP endif、endwhile、endfor、冒号、switch、foreach使用介绍、Heredoc 、Nowdoc
  11. python中正方形内切园_python画出三角形外接圆和内切圆的方法
  12. 计算机二进制计算过程
  13. 股票行情图的绘制,分时图和闪电图
  14. 关于在github上传代码却没有小绿点(贡献率)的问题
  15. 现代计算机专业版官网,现代计算机期刊_投稿邮箱_杂志_编辑部_审稿_投稿须知...
  16. Number of ways to split should evenly divide the split dimension, but got split_dim 3 (size = 4) and
  17. django腾讯企业邮箱发送邮件配置
  18. nyoj 独木舟上的旅行
  19. AI 工程师进阶路线
  20. h5打开麦克风权限录音_微信H5录音实现

热门文章

  1. 学习笔记—bootstrap(2)
  2. Scrapy爬虫代理IP的使用
  3. OpenNLP中关于语言检测的语料训练
  4. 模拟无线透传的STM32的24L01无线模块与串口USART通信
  5. QChart入门教程-绘制正弦曲线
  6. nxp的bluetooth驱动调试
  7. 基于Ingress实现灰度发布(金丝雀发布)和蓝绿发布
  8. umount 无法成功
  9. 做IT就要做到高层!
  10. 对于计算机系统结构,下列哪些是透明的?(计算机系统结构期末习题解析,史上最全)