本文面向在 clustervps 多節點維運 OpenClaw 的控制面/平台組,給一組可演練的 HowTo。金絲雀與技能包切片脈絡可對照《多可用區網關金絲雀與技能包版本切片》;租戶目錄與 Webhook 觀測可銜接《租戶切片設定、巡檢合併與 Webhook 摘要》。拓樸與多區網關請見《多可用區網關、探針合併與 Webhook 摘要》。
分租戶配置目錄
每台節點採同一套路徑契約,讓 SSH 劇本與合併器不需分支:例如 /usr/local/openclaw/tenants/<tenant>/templates/ 放不可直接上線的基底模板,fragments/ 放租戶可編輯覆寫,/var/lib/openclaw/merged/<tenant>/ 只放合併產物與 .sha256。工作流隔離的關鍵是再拆一層執行根:佇列、暫存檔與 idempotency 指紋寫入 /var/lib/openclaw/workflows/<tenant>/,與「僅供讀取的 merged」不同掛載意圖,避免合併器與執行器競態。
安裝階段先用單租戶跑通「片段 → 合併 → validate → launchd 載入」;編排階段用標籤選擇要合併的模板集合,禁止在執行路徑手改 merged。排錯時只信校驗雜湊與合併器日誌的鍵序輸出,避免口頭同步造成節點分叉。
模板合併策略
建議採有序層疊:全域基底 → 區位/叢集層 → 租戶層;合併器在鍵衝突且未宣告允許覆寫時直接失敗退出,並把最終鍵序寫進結構化日誌,禁止靜默「後寫入勝」。產物寫入一律「暫存檔完整 fsync 後 mv 覆蓋」或等效原子替換,確保 launchd 與網關程序不會讀到半截 YAML。
CI 在推上 clustervps 前跑同一支合併器與 openclaw validate(或專案等效指令),並比對 versions.lock 內的二進位 digest、合併腳本 Git SHA。若僅調整模板註解卻觸發語意變更,應要求顯式修訂號,方便金絲雀與回滾對帳。
金絲雀節點選擇與回滾
選點:優先挑真實流量低、或可掛「影子租戶」的節點;與正式租戶共用佇列根目錄的機台不適合作第一跳金絲雀。對外以負載平衡約 5% 權重或內部 DNS 視圖導流,並在 promotions.jsonl(或等效稽核檔)記錄操作者、時間與修訂號。
回滾:先降 LB 權重至零,再把 current 符號連結指回上一版 merged(或還原修訂號觸發重新載入),最後觀察錯誤率與佇列深度十分鐘。全節點推廣前保留「上一版產物+雜湊+權重快照」三件套,值班主任才能在壓力下機械式還原。
合併 doctor 與健康檢查
對外只暴露 /healthz/composite:內部依序串磁碟水位、launchd 狀態、openclaw doctor --json、出站 TLS 與工作流佇列深度,回傳單一 JSON(含 tenant、az、子檢查陣列)。doctor 設硬逾時與快取欄位,避免 LB 健康檢查被長尾拖死;超時標為 degraded 而非掛死連線。
2026 網關設定熱重載邊界(實務歸納):多數版本對「上游權重、路由表、部分標頭映射」可在收到 SIGHUP 或監聽設定檔防抖後重載;但更監聽位址/埠、TLS 憑證鏈、mTLS 用戶端池或連線級安全參數時,請預設需要冷重啟整個網關程序,並把該判斷寫進 runbook。合併產物若觸及第二類變更,排程應落在維護窗與金絲雀之後,不要假設「只 reload 就無感」。
#!/usr/bin/env bash
set -euo pipefail
/usr/bin/openclaw doctor --tenant "${TENANT}" --json >"/tmp/d.json"
/usr/bin/curl -fsS --max-time 4 "${GATEWAY_READY_URL}" >/dev/null
/usr/bin/printf '{"tenant":"%s","doctor_ok":true,"gateway_ok":true,"queue_depth":0}\n' "${TENANT}"
最小可復現步驟(HowTo):(1)兩台以上 clustervps Mac,建立上述目錄契約與合併腳本。(2)在節點 A 合併並 validate,確認 composite 探針全綠。(3)將相同修訂推到節點 B,人為注入片段語法錯誤,驗證合併非零退出且不觸發錯誤 reload。(4)修復後只對節點 A 升權為金絲雀,觀察十分鐘再推全叢集。(5)演練 TLS 憑證輪替:確認是否需冷重啟,並記錄實際旗標行為。連線細節可對齊說明中心公開截圖;容量預算可先對照方案與價格頁預留磁碟與頻寬。
常見誤判:把「HTTP 200」當成設定正確——請以 doctor 子項與 merged 雜湊對帳。把「熱重載成功」當成所有欄位已生效——請用實際出站握手與監聽埠掃描二次驗證邊界案例。
若團隊已跑通上述演練,下一步是把相同 runbook 套到正式租戶與 on-call 輪值;需要新增專用節點時,可先從購買頁與首頁公開資訊對齊區位與預算,再開工單擴容,避免口頭承諾與實際配額不一致。