博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Readiness 探测 - 每天5分钟玩转 Docker 容器技术(144)
阅读量:4317 次
发布时间:2019-06-06

本文共 1052 字,大约阅读时间需要 3 分钟。

除了 Liveness 探测,Kubernetes Health Check 机制还包括 Readiness 探测。

用户通过 Liveness 探测可以告诉 Kubernetes 什么时候通过重启容器实现自愈;Readiness 探测则是告诉 Kubernetes 什么时候可以将容器加入到 Service 负载均衡池中,对外提供服务。

Readiness 探测的配置语法与 Liveness 探测完全一样,下面是个例子:

这个配置文件只是将前面例子中的 liveness 替换为了 readiness,我们看看有什么不同的效果。

Pod readiness 的 READY 状态经历了如下变化:

  1. 刚被创建时,READY 状态为不可用。

  2. 15 秒后(initialDelaySeconds + periodSeconds),第一次进行 Readiness 探测并成功返回,设置 READY 为可用。

  3. 30 秒后,/tmp/healthy 被删除,连续 3 次 Readiness 探测均失败后,READY 被设置为不可用。

通过 kubectl describe pod readiness 也可以看到 Readiness 探测失败的日志。

下面对 Liveness 探测和 Readiness 探测做个比较:

  1. Liveness 探测和 Readiness 探测是两种 Health Check 机制,如果不特意配置,Kubernetes 将对两种探测采取相同的默认行为,即通过判断容器启动进程的返回值是否为零来判断探测是否成功。

  2. 两种探测的配置方法完全一样,支持的配置参数也一样。不同之处在于探测失败后的行为:Liveness 探测是重启容器;Readiness 探测则是将容器设置为不可用,不接收 Service 转发的请求。

  3. Liveness 探测和 Readiness 探测是独立执行的,二者之间没有依赖,所以可以单独使用,也可以同时使用。用 Liveness 探测判断容器是否需要重启以实现自愈;用 Readiness 探测判断容器是否已经准备好对外提供服务

理解了 Liveness 探测和 Readiness 探测的原理,下一节我们会讨论如何在业务场景中使用 Health Check。

书籍:

1.《每天5分钟玩转Docker容器技术》

2.《每天5分钟玩转OpenStack》

转载于:https://www.cnblogs.com/CloudMan6/p/8606866.html

你可能感兴趣的文章
(转)什么是JSON+如何处理JSON字符串
查看>>
(译)理解python线程
查看>>
【总结】动态树
查看>>
【vuejs深入二】vue源码解析之一,基础源码结构和htmlParse解析器
查看>>
编程中的24条经典语录
查看>>
Android ADT中增大AVD内存后无法启动:emulator failed to allocate memory 8 (转)
查看>>
chrome 低版本的background-attachment: fixed问题
查看>>
C++编程思想1
查看>>
如何避免 await/async 地狱
查看>>
POJ 2488 A Knight's Journey-dfs
查看>>
MyBatis 插入时返回刚插入记录的主键值
查看>>
Python基本语法
查看>>
图像处理------颜色梯度变化 (Color Gradient) 分类: ...
查看>>
Hadoop_我理解的Map-Reduce
查看>>
HDU1242 Rescue(BFS+优先队列)
查看>>
mysql入门-数据类型(一)
查看>>
FTP服务的搭建
查看>>
Net开源HelloData之:系统配置
查看>>
当时学习《鸟哥的Linux私房菜-基础学习篇》记录的点
查看>>
如何设置eclipse下查看java源码
查看>>