一个已注册的节点未列出
Symptom
安装程序在机器上已完成,但仪表板中的 节点 未列出它 — 或者列出了它但从未变为就绪状态。GET /api/v1/nodes 也没有返回它,所以这不是显示问题。
Diagnose
-
机器上的容器运行时是否正在运行?
docker info期望看到一个带有版本的服务器部分。
Cannot connect to the Docker daemon意味着代理程序没有可驱动的内容,它将不会报告就绪。 -
代理程序是否启动了,它说了什么?
sudo journalctl -u odysseus-agent --since "10 minutes ago"期望看到启动行,然后是成功的注册。身份验证失败、连接超时和运行时 API 错误都会在此处自行命名。
-
注册令牌是否已被使用? 令牌为一次性使用且会过期。第二次运行相同的安装命令会被拒绝,如果无人查看日志,该拒绝看起来就像静默失败。
-
机器能否连接到控制平面? 代理程序维持一个出站连接;一个注册后就不再活动的节点通常是出站问题,而非注册问题。

Resolve
- 运行时未运行: 启动它,然后重启代理程序。代理程序无需重新注册。
- 令牌已用尽或过期: 从 节点 → 注册节点 处签发新令牌并运行新命令。 不要重新运行旧命令:它携带的是已消耗的令牌。
- 出站流量被阻止: 打开到控制平面的出站 HTTPS 连接。平台侧无法 补偿无法向外呼叫的机器。
- 在错误的租户下注册: 一个节点属于一个租户且不可移动。将其移除, 然后从正确的租户重新注册。
Prevent
在运行命令时立即从仪表板注册,这样令牌就是最新的,并在关闭 shell 前检查节点是否已就绪。注册失败的机器通常会在大约一分钟内失败,而说明原因的日志行只有在它是最后一行时才容易找到。