关于k8s:k8s健康检查机制的实践和理解

44次阅读

共计 706 个字符,预计需要花费 2 分钟才能阅读完成。

一、背景
最近在公司实际 DevOps(开发、运维一体化) 的流程落地,并且将原先的 Docker Swarm 集群迁徙到 K8s 集群。碰到原先集群的健康检查与现有集群的健康检查存在不统一的中央,在这里做个总结。
二、原理及必要性
利用健康检查,顾名思义,是对利用现有状况(包含数据库、缓存、及 Socket 连贯)进行查看,以让集群调度管理器发现利用的存活状况,从而对利用进行管控(从新调度调配,可重启,调度到其余节点等), 特地针对稳定性要求高(业务不能中断),部署机制灵便(反对滚动公布,在部署过程中不中断利用,从而不影响业务应用)
三、实际
1、原先 DockerSwarm 集群健康检查机制是通过在 Dockerfile 中指定 Docker 的 health check 地址,如下:
健康检查
HEALTHCHECK –interval=120s –timeout=5s CMD curl –fail http://localhost:8080/api/pub… || exit 1
2、利用 /api/public/health/check 的逻辑(示例):
(1)控制器

如果检测不通过,须要在 httpServletResponse 返回非 200 的错误码,以让集群判断 http 调用异样
(2)服务解决

2、当初新的 K8s 集群健康检查配置

(1)删除原先的 Dockerfile 中健康检查的调用代码,此形式在新的 k8s 集群不失效
(2) 如上图配置 就绪状态 查看策略
该策略可用于判断利用是否已启动,并且能失常受理业务,依据利用启动状况进行配置,以秒为单位

(3) 如上图配置 存活状态 查看策略
该策略配置可用于集群判断利用是否存活,并且能失常受理业务,依据利用理论状况进行配置,以秒为单位

正文完
 0