OpenClaw 网关蓝绿发布:第二端口、健康门控切换与租用云端 Mac 上的 launchd(2026-05-08)
2026 年 OpenClaw 在 macOS 上的网关叙事一分为二:桌面应用编排生命周期,而常驻守护进程仍由 launchd 托管并配合外部 CLI 安装。 这种拆分对蓝绿是利好:你可以在生产仍监听 127.0.0.1:18764 时,把候选网关起在 127.0.0.1:18765,用合成探针证明就绪,再重指回环消费者或上游代理——无需再租第二台 MacLogin mini。 本篇 2026 年 5 月运维手册固化了中国香港、日本、韩国、新加坡与美国租户在升级期间保持 Webhook Worker、Canvas 钩子与 CLI 自动化稳定的矩阵。
交叉阅读 应用与 CLI 交接、健康 curl 监控、优雅关闭与排空,以及专题入口 OpenClaw 专题索引。另可参考 帮助中心 与 定价。
繁忙网关为何优先蓝绿而非原地重启
对微小补丁而言,原地 launchctl kickstart -k 足够;但 Node 大版本、模型允许列表或 Webhook URL 迁移等高风险升级,更适合并排进程。蓝绿给你完整的热容器:TLS 上下文已编译、模型缓存已预热、Worker 队列已校验,客户流量才会触达新版本。
端口规划与 launchd 标签矩阵
| 颜色 | 监听地址 | launchd 标签(示例) | 用途 |
|---|---|---|---|
| 蓝(稳定) | 127.0.0.1:18764 | ai.openclaw.gateway.blue | 生产流量 |
| 绿(候选) | 127.0.0.1:18765 | ai.openclaw.gateway.green | 预发验证 |
| 可观测性 | 任一 | N/A | 健康检查绑定回环;若对公网暴露仅经受控代理,参见 localhost 加固 |
翻转流量前的健康探针契约
先定义不可妥协的信号:/healthz(或项目约定路径)返回 HTTP 200、JSON 版本字段与 CLI 一致、在预算延迟内模型探测成功,以及在适用时 Webhook 自测回显。探针至少跑满两个抓取间隔,以捕获缓慢泄漏。
第二份 LaunchAgent plist 模式(按用户)
复制已验证的 plist,修改 Label、StandardOutPath、StandardErrorPath,以及固定端口与配置根的环境导出。保持 ThrottleInterval 合理,避免崩溃循环拖垮 syslog。与 环境变量指南 对齐,使两种颜色继承正确的密钥库。
九步切换运维手册
- 快照 当前 plist、二进制哈希与 Node 版本。
- 部署 候选构建到带版本号的目录;勿覆盖稳定路径。
- 安装 绿色 plist;以租户用户执行
launchctl bootstrap。 - 验证 在本地用 curl 检查健康端点(若启用则含 mTLS)。
- 重放 合成 Webhook 负载,仅打绿色。
- 排空 蓝色:按 2026 年 4 月排空文的步骤执行。
- 提升:重指本机转发器或上游 proxy 的 upstream 块。
- 观察 错误预算 30–60 分钟后再宣告成功。
- 降级 蓝色二进制,或保持温热以实现秒级回滚。
五分钟内完成的回滚演练
练习反向提升:把上游指针恢复到蓝色,仅在队列排空后对绿色执行 launchctl bootout,并持续 tail 日志直至 Webhook 提供方停止 5xx 爆发重试。书面明确 DNS、回环与反向代理层各自的负责人——混淆职责是事故拖过 SLA 的常见原因。
可观测性:对比两种颜色的 JSONL 流
当两个守护进程都输出 JSON 行时,在日志配置层为每条记录打上 color=blue|green。横跨中国香港、日本、韩国、新加坡与美国的 SIEM 班次即可叠加错误率,而无需猜测噪声来自哪个进程。
常见问题
这会取代 Kubernetes 吗? 不会——单主机租用用更简单的模式;K8s 租户应使用 Pod 级蓝绿。
公网 TLS Webhook 呢? 将本模式与 TLS 反向代理指南 配对,使边缘把上游切到健康的回环端口。
哪里能租更隔离的网关? 从 定价 起步,为嘈杂工作负载增加日本或美国容量。
OpenClaw 专题、帮助与区域为何重要
保持 OpenClaw 专题 与内部运行标签同步,让新工程师继承同一端口矩阵。当延迟敏感的自动化更靠近东京券商而非美国西岸时,按区域钉死租用机可降低切换风险,因为 Webhook 往返时间更可预期。