健康检测
1.概念定位
1.1 存活探针
存活探针用于检测容器运行状态。当应用出现死锁或无响应时(如崩溃、死循环),共绩算力平台会自动触发容器重启,无需人工干预。 存活探针不会等待就绪探针成功。如果你想在执行存活探针前等待,你可以使用启动探针。
1.2 就绪探针
就绪探针验证节点是否具备服务能力。在共绩算力平台中,未通过检测的节点将被自动移出服务流量池,确保业务连续性。 如果就绪探针返回的状态为失败,会将该节点从所有对应服务中移出,同时启动一个新节点进行替换,保证服务的正常运行。 就绪探针在容器的整个生命期内持续运行。
1.3 启动探针
启动探针保护慢启动容器不被误杀。共绩算力平台会暂停存活/就绪检测,直到该探针确认应用已完成初始化。 如果配置了这类探针,它会禁用存活检测和就绪检测,直到启动探针成功为止。
这类探针仅在启动时执行,不像存活探针和就绪探针那样周期性地运行。
2.平台视角下的探针实际案例
2.1 启动探针检测容器中的应用是否已经启动
启动探针保护慢启动容器不被误杀。共绩算力平台会暂停存活/就绪检测,直到该探针确认应用已完成初始化。 如果配置了这类探针,它会禁用存活检测和就绪检测,直到启动探针成功为止。
这类探针仅在启动时执行,不像存活探针和就绪探针那样周期性地运行。
示例镜像地址:harbor.suanleme.cn/huang5876/jupyter_torch_probe_test:latest 端口号配置:8888

启动初始探针设置(下一部分会详细讲解参数及其意义):
修改端口号为 8888
(JupyterLab 默认端口)

启动探针发现异常:

异常原因:
启动探针配置不当:
- 路径 /live 返回 404:容器启动后,存活探针立即开始检查 /live 接口(初始延迟
0
秒),但该接口不存在(返回 404),导致探针失败。 - 失败阈值触发:存活探针每 10 秒检查一次,超时时间仅 1 秒,连续 3 次失败后,判定容器不健康,触发重启。
- 路径 /live 返回 404:容器启动后,存活探针立即开始检查 /live 接口(初始延迟
服务初始化时间较长:
- JupyterLab 及其扩展(如 jupyter_lsp、jupyter_server_terminals)加载需要时间(约 10 秒),但启动探针未等待服务完全就绪就开始检查。

更新启动探针配置: 修改检查周期长一些 让 JupyterLab 先启动起来 避免启动时间过短 路径指向容器默认启动路径/lab

当前服务状态:
JupyterLab 服务正常运行 服务持续监听 http://127.0.0.1:8888/lab
。 用户访问 /
路径触发 302 重定向,表明前端路由正常。
无关键错误: 日志中未出现内核崩溃、探针失败或服务中断的报错。 内核消失问题(404 Kernel does not exist
)未出现。

2.2 就绪探针容器检测是否准备好接收流量
这里以我们预制好的镜像 Whisper 举例

启动成功后进入健康检查设置中:
修改路径为/docs#/Endpoints/asr_asr_post
(语音转文字默认接口)
端口号改为:9000

保存后可以通过容器日志查看到实时返回的接口信息
服务运行正常:容器状态显示 “运行中”,日志中接口( /docs)返回 200 状态码,表明服务已成功启动,准备好接收流量(检查周期每 20 秒返回一次)

2.3 存活探针检测容器是否正常运行
这里以我们预制好的镜像 Whisper 举例

启动成功后进入健康检查设置中:
修改路径为/docs#/Endpoints/asr_asr_post
(语音转文字默认接口)
端口号改为:9000

服务运行正常:容器状态显示 “运行中”,日志中接口( /docs)返回 200 状态码,表明服务已成功启动,准备好接收流量(检查周期每 10 秒返回一次)

3.平台视角下的探针参数作用详细解析

HTTPGet:通过发送 HTTP 请求并检查响应状态码来判断服务状态
TCPSocket:仅检查指定端口是否能建立 TCP 连接,不涉及具体业务逻辑
路径:仅 HTTP Get 类型需要,TCP Socket 类型不需要路径参数
端口:健康检查的目标端口号
初始延迟:0 秒(立即开始检查)
检查周期:X 秒(每 X 秒检测一次)
超时时间:X 秒(每次请求最长等待 X 秒)
失败阈值:X 次(连续失败 X 次判定启动失败)