博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在 Scale Up 中使用 Health Check - 每天5分钟玩转 Docker 容器技术(145)
阅读量:6218 次
发布时间:2019-06-21

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

对于多副本应用,当执行 Scale Up 操作时,新副本会作为 backend 被添加到 Service 的负责均衡中,与已有副本一起处理客户的请求。考虑到应用启动通常都需要一个准备阶段,比如加载缓存数据,连接数据库等,从容器启动到正真能够提供服务是需要一段时间的。我们可以通过 Readiness 探测判断容器是否就绪,避免将请求发送到还没有 ready 的 backend。

下面是示例应用的配置文件。

重点关注 readinessProbe 部分。这里我们使用了不同于 exec 的另一种探测方法 -- httpGet。Kubernetes 对于该方法探测成功的判断条件是 http 请求的返回代码在 200-400 之间。

schema 指定协议,支持 HTTP(默认值)和 HTTPS

path 指定访问路径。
port 指定端口。

上面配置的作用是:

  1. 容器启动 10 秒之后开始探测。

  2. 如果 http://[container_ip]:8080/healthy 返回代码不是 200-400,表示容器没有就绪,不接收 Service web-svc 的请求。

  3. 每隔 5 秒再探测一次。

  4. 直到返回代码为 200-400,表明容器已经就绪,然后将其加入到 web-svc 的负责均衡中,开始处理客户请求。

  5. 探测会继续以 5 秒的间隔执行,如果连续发生 3 次失败,容器又会从负载均衡中移除,直到下次探测成功重新加入。

对于 http://[container_ip]:8080/healthy,应用则可以实现自己的判断逻辑,比如检查所依赖的数据库是否就绪,示例代码如下:

① 定义 /healthy 的处理函数。

② 连接数据库并执行测试 SQL。

③ 测试成功,正常返回,代码 200。

④ 测试失败,返回错误代码 503。

⑤ 在 8080 端口监听。

对于生产环境中重要的应用都建议配置 Health Check,保证处理客户请求的容器都是准备就绪的 Service backend。

以上是 Health Check 在 Scale Up 中的应用,下一节我们讨论在 Rolling Update 中如果应用。

书籍:

1.《每天5分钟玩转Kubernetes》

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

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

转载地址:http://ipoja.baihongyu.com/

你可能感兴趣的文章
TranslateAnimation详解
查看>>
TP5 未定义数组索引如何解决
查看>>
android ListView下拉刷新之功能实现
查看>>
开始学习 ubuntu 14.04 各种安装各种坑
查看>>
Java后台使用Websocket教程
查看>>
go语言学习--string、int、int64互相转换,字符串的截取,数组和字符串的转换
查看>>
Linux下添加新硬盘,分区及挂载
查看>>
js复选框全选反选
查看>>
JAVA 关键字及其作用解释
查看>>
hibernate中的addEntity setResultTransformer的比较
查看>>
MFC中的DC CDC HDC由来由去理解
查看>>
创建 和使用 CCAnimation
查看>>
(windows)Box2d mingw环境搭建,编译
查看>>
使用PerfView诊断.Net GC的问题
查看>>
Html5学习之旅(2)元素
查看>>
__declspec(dllexport)的作用
查看>>
汉诺塔问题求解思路
查看>>
count(*)快还是count(列)快
查看>>
char、varchar、nvarchar的区别
查看>>
php原生之实现图片,文件的下载
查看>>