快速结论:这个报错通常出现在用 AnythingLLM 官方 Kubernetes 示例清单(cloud-deployments/k8/manifest.yaml)部署时:liveness/readiness 探针指向 8888(collector 端口)的 /v1/api/health,而真正的应用服务端监听的是 3001,导致服务端卡死时探针仍然通过。优先排查探针端口与路径是否指向 server 的 3001 端口。
适用环境:AnythingLLM 的 Kubernetes 示例清单 cloud-deployments/k8/manifest.yaml;容器端口配置为 collector 默认 8888、SERVER_PORT 设为 3001。Issue 作者声明是阅读源码发现,并非在真实集群复现,也未检查清单所拉取的已发布 :render 镜像。
最快修复方案:暂无确认的一步修复方案。Issue 中建议把探针改为 httpGet: path: /api/ping, port: 3001,但该改动尚未验证,且维护者表示清单属于社区模板,欢迎直接提 PR。
注意事项:探针改指向 server 后,首次 prisma migrate deploy 较慢可能导致 liveness 失败并重启容器;Issue 作者提出可能需要加 startupProbe 或延长 liveness 的 initialDelaySeconds,但这一影响未经验证。此外,容器崩溃仍会通过脚本中的 wait -n 结束容器,探针问题主要影响“卡死但不退出”的场景。
问题场景
用户在 Kubernetes 集群中按 AnythingLLM 仓库自带的示例清单 cloud-deployments/k8/manifest.yaml 部署 AnythingLLM。清单中 collector 默认监听 8888,server 通过 SERVER_PORT 监听 3001,但同一份清单把 liveness 和 readiness 探针都指向了 8888 端口的 /v1/api/health。结果是探针请求由 collector 的 catch-all 路由直接返回 200,探针健康状态反映的是 collector 而不是应用服务端。
报错原文
[BUG]: k8s manifest liveness/readiness probes hit the collector (8888), not the server
原因分析
最可能的原因:示例清单里的探针端口配置与服务端实际监听端口不一致。
- 8888 是 collector 的默认端口(
collector/utils/http/index.js:4);server 监听SERVER_PORT,清单中设为 3001。 - collector 注册了 catch-all 路由
app.all("*", ... response.sendStatus(200))(collector/index.js:212-213),会以 200 响应这个 GET 请求,因此探针“通过”并不代表服务端正常。 - 由于 server 在
prisma migrate deploy之后才启动,readiness 可能在迁移仍在进行时就变为可用;服务端 hang 住时 liveness 也不会失败。 - 服务端真正崩溃时,仍会因为
wait -n(manifest.yaml第 126-127 行)结束容器,但这掩盖不了探针指向错误端点的问题。
环境排查
- 确认 Kubernetes 清单来源与版本:是否为
cloud-deployments/k8/manifest.yaml。 - 确认清单中 liveness/readiness 探针的
port与path(Issue 指出为 8888 与/v1/api/health)。 - 确认容器环境变量
SERVER_PORT的值(Issue 中为 3001)以及 collector 端口是否为默认 8888。 - 确认部署所使用的镜像,例如 Issue 提到的已发布
:render镜像(Issue 作者表示未检查该镜像)。 - 可对照 Docker 镜像的健康检查命令
curl http://localhost:${SERVER_PORT:-3001}/api/ping,确认 server 的真实健康端点。
解决步骤
- 定位清单文件
cloud-deployments/k8/manifest.yaml中的 liveness 和 readiness 探针定义(Issue 引用为第 128-141 行)。 - 可优先尝试把两个探针改为指向服务端端口和路径,即 Issue 建议的形式:
httpGet: path: /api/ping port: 3001其中
/api/ping注册于server/endpoints/system.js:83,并在server/index.js:81-82挂载到/api下。 - 如果直接改 liveness,评估首次迁移较慢带来的重启风险,必要时增加
startupProbe或延长 liveness 延迟(该建议出自 Issue 作者,尚未验证)。 - 按维护者回复,这类改动属于 community-templates 范围,可直接提交 PR;只要清单有效或有帮助即可合并。
验证方法
改完探针后重新部署,确认探针请求实际命中 3001 端口的 /api/ping;可进一步在服务端未启动或 hang 住时观察 readiness/liveness 是否按预期失败。由于 Issue 作者未在运行中的集群验证,建议在测试集群中先行确认迁移期间的重启行为是否可接受。
参考来源
Mintplex-Labs/anything-llm #6579
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


