代理程序升级未生效
Symptom
某个节点的升级已获批准,但该节点状态降级、已回滚或报告其先前版本。GET /api/v1/nodes/{name}/upgrade/history 显示了此次尝试。
Diagnose
-
代理程序说了什么?
sudo journalctl -u odysseus-agent --since "30 minutes ago"预期升级会被宣布,新镜像会被拉取,服务会重启。镜像拉取错误、权限错误和启动失败都会自行指明。
-
节点能否拉取新镜像? 代理程序镜像由节点本身从其配置的镜像仓库拉取——而非通过控制平面。
-
它是否自行回滚了? 失败的升级会恢复到先前版本。在旧版本上健康的节点已经恢复;问题在于新版本为何未能启动。
-
检查升级历史而不是节点的当前状态。 已恢复的节点看起来与从未升级的节点完全相同。

Resolve
- 拉取失败: 恢复节点对镜像仓库的访问权限,然后从仪表板再次批准升级。
- 启动后崩溃: 日志会指明原因。在问题解决前不要再次批准 — 第二次相同的尝试会导致第二次相同的回滚。
- 回滚后持续降级: 在节点上重启代理程序服务。它会重新注册; 无需再次进行注册。
Prevent
升级一个节点并等待其稳定后再批准其余节点。租户拥有的节点通过批准而非远程方式进行升级,而这正是单个节点故障代价低廉的时刻。