Liveness 探测让用户可以自定义判断容器是否健康的条件。如果探测失败,Kubernetes 就会重启容器。

还是举例说明,创建如下 Pod:

启动进程首先创建文件 /tmp/healthy,30 秒后删除,在我们的设定中,如果 /tmp/healthy 文件存在,则认为容器处于正常状态,反正则发生故障。

livenessProbe 部分定义如何执行 Liveness 探测:

  1. 探测的方法是:通过 cat 命令检查 /tmp/healthy 文件是否存在。如果命令执行成功,返回值为零,Kubernetes 则认为本次 Liveness 探测成功;如果命令返回值非零,本次 Liveness 探测失败。

  2. initialDelaySeconds: 10 指定容器启动 10 之后开始执行 Liveness 探测,我们一般会根据应用启动的准备时间来设置。比如某个应用正常启动要花 30 秒,那么 initialDelaySeconds 的值就应该大于 30。

  3. periodSeconds: 5 指定每 5 秒执行一次 Liveness 探测。Kubernetes 如果连续执行 3 次 Liveness 探测均失败,则会杀掉并重启容器。

下面创建 Pod liveness

从配置文件可知,最开始的 30 秒,/tmp/healthy 存在,cat 命令返回 0,Liveness 探测成功,这段时间 kubectl describe pod liveness 的 Events部分会显示正常的日志。

35 秒之后,日志会显示 /tmp/healthy 已经不存在,Liveness 探测失败。再过几十秒,几次探测都失败后,容器会被重启。

除了 Liveness 探测,Kubernetes Health Check 机制还包括 Readiness 探测,这是我们下一节要学习的内容。

书籍:
1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html

2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html

Liveness 探测 - 每天5分钟玩转 Docker 容器技术(143)相关推荐

  1. Readiness 探测 - 每天5分钟玩转 Docker 容器技术(144)

    除了 Liveness 探测,Kubernetes Health Check 机制还包括 Readiness 探测. 用户通过 Liveness 探测可以告诉 Kubernetes 什么时候通过重启容 ...

  2. 在 Rolling Update 中使用 Health Check - 每天5分钟玩转 Docker 容器技术(146)

    上一节讨论了 Health Check 在 Scale Up 中的应用,Health Check 另一个重要的应用场景是 Rolling Update.试想一下下面的情况: 现有一个正常运行的多副本应 ...

  3. 在 Scale Up 中使用 Health Check - 每天5分钟玩转 Docker 容器技术(145)

    2019独角兽企业重金招聘Python工程师标准>>> 对于多副本应用,当执行 Scale Up 操作时,新副本会作为 backend 被添加到 Service 的负责均衡中,与已有 ...

  4. 用 Label 控制 Service 的位置 - 每天5分钟玩转 Docker 容器技术(106)

    上一节我们讨论了 Service 部署的两种模式:global mode 和 replicated mode.无论采用 global mode 还是 replicated mode,副本运行在哪些节点 ...

  5. 如何用 Graylog 管理日志?- 每天5分钟玩转 Docker 容器技术(93)

    上一节已经部署好了 Graylog,现在学习如何用它来管理日志. 首先启动测试容器. docker run -d \ --log-driver=gelf \ --log-opt gelf-addres ...

  6. 日志管理之 Docker logs - 每天5分钟玩转 Docker 容器技术(87)

    高效的监控和日志管理对保持生产系统持续稳定地运行以及排查问题至关重要. 在微服务架构中,由于容器的数量众多以及快速变化的特性使得记录日志和监控变得越来越重要.考虑到容器短暂和不固定的生命周期,当我们需 ...

  7. k8s 重要概念 - 每天5分钟玩转 Docker 容器技术(117)

    在实践之前,必须先学习 Kubernetes 的几个重要概念,它们是组成 Kubernetes 集群的基石. Cluster  Cluster 是计算.存储和网络资源的集合,Kubernetes 利用 ...

  8. 回收 PV - 每天5分钟玩转 Docker 容器技术(152)

    当 PV 不再需要时,可通过删除 PVC 回收. 当 PVC mypvc1 被删除后,我们发现 Kubernetes 启动了一个新 Pod recycler-for-mypv1,这个 Pod 的作用就 ...

  9. DaemonSet 典型应用场景 - 每天5分钟玩转 Docker 容器技术(129)

    Deployment 部署的副本 Pod 会分布在各个 Node 上,每个 Node 都可能运行好几个副本.DaemonSet 的不同之处在于:每个 Node 上最多只能运行一个副本. DaemonS ...

最新文章

  1. patch成为了ALL You Need?挑战ViT、MLP-Mixer的简单模型来了
  2. 如何从机器学习数据中获取更多收益
  3. matlab创建mat格式变量并导入数据
  4. python ui自动化配置文件,Python+Selenium进行UI自动化测试项目中,常用的小技巧2:读取配置文件(configparser,.ini文件)...
  5. malloc coredump(宕)的问题
  6. leetcode - 837. 新21点
  7. 服务器2003光盘修复,windows光盘修复系统
  8. php ini文件操作类,操作.ini文件的好PHP类
  9. SEO必备工具之Xenu(绿蜗牛)网站死链接检测
  10. 猫眼电影的android源代码!,微信小程序入门demo之猫眼电影
  11. 模式识别复习 思维导图
  12. JS数字正则表达式验证(全全全!!!)
  13. 你开奖了吗?细数大厂春节红包背后的技术支撑
  14. 2021年2月3日 星期三 农历立春 霾 天津
  15. 积沙成塔之VC不规则按钮的创建
  16. ps,ai,cdr平面设计教程,全套!基础到精通,小编亲看教程,推荐!
  17. PHP BC 函数
  18. 《大型网站技术架构》——第一章 大型网站架构演化
  19. QDialog添加最大化最小化按钮
  20. 移动互联网数据分析 移动客户端流量统计 移动客户端数据统计(二)

热门文章

  1. 1月份Web服务器份额:Microsoft涨2.32%居亚
  2. 网段:192.168.6.0的机器A要访问网段:10.1.56.0的机器B
  3. window.onload与$(document).ready()的区别
  4. LINQ 中的 select
  5. python怎么定义全局字典_一种Python全局配置规范以及其魔改
  6. wordpress4.9服务器迁移
  7. sql group by having
  8. android pay 绑定失败,实战Apple Pay失败!Android Pay你期待吗?
  9. Longest Palindrome CodeForces - 1304B(思维)
  10. 2021年武大CS\南大CS\哈工CS\浙软\西交CS\天大佐治亚CS\中科院信网中心面试经验贴