Liveness 探测 - 天天5分钟玩转 Docker 容器技术(143)

Liveness 探测让用户能够自定义判断容器是否健康的条件。若是探测失败,Kubernetes 就会重启容器。html

仍是举例说明,建立以下 Pod:学习

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

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

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

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

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

下面建立 Pod liveness进程

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

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

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

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

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

相关文章
相关标签/搜索