HealthCheck 中间件¶
https://blueprints.launchpad.net/glance/+spec/healthcheck-middleware
HealthCheck 中间件提供 <SERVER>:<PORT>/healthcheck 端点。该端点的行为类似于 Swift[1] 中的行为。正常操作返回 200 OK,如果配置选项 disable_path 已启用且该路径存在,则将返回 503 DISABLED BY FILE。
问题描述¶
目前 Glance 没有合理的手段来提供健康检查信息,例如给 HAProxy。任何此类部署都会导致大量的日志记录,并导致服务器端不必要的操作(例如,对 / 的 GET 请求,导致版本检查)。
提议的变更¶
利用 oslo.middleware 的 healthcheck 中间件,通过
添加一个新的 paste 过滤器 -
healthcheck将新的过滤器添加到默认的 Glance API 和 Registry 管道
禁用的功能将允许使用文件系统中的文件来返回 503 DISABLED BY FILE 响应,从而将节点从 HAProxy 中移除。这将允许禁用的节点完成其当前操作,并改善 HA 部署中的维护体验。
备选方案¶
当前操作模型。
采用 Swift 的略小实现,并将其直接复制到 Glance 的源代码树中。
数据模型影响¶
无
REST API 影响¶
GET ‘/healthcheck’ 200 OK, 503 DISABLED BY FILE
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
潜在的性能改进,因为 healthcheck 完成的频率很高,并且该中间件是管道开头的轻量级过滤器。
其他部署者影响¶
healthcheck 将被添加到使用的管道的开头以供使用。可选的 disable_path=PATH 选项将需要在配置文件中启用离散禁用功能。
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
jokke kamil-rykowski
- 核心评审员
kragniz flaper87 icordasc
工作项¶
代码变更 测试 配置文件变更 文档变更
依赖项¶
无
测试¶
简单的功能测试,用于验证 <SRV>:<P>/healthcheck 的响应
文档影响¶
文档变更非常小,解释了新的配置选项和功能。
参考资料¶
[1] _https://github.com/openstack/swift/blob/master/swift/common/middleware/healthcheck.py