部署指南 2026-04-23 約 12 分鐘

2026 年 OpenClaw Gateway 內建健康探針(/health、/ready)與負載均衡:遠端實體 Mac 裸機、Docker Compose 與 Kubernetes 的對齊驗收、路徑 Shadowing 與誤報未就緒的可複現 Runbook(設定片段 + FAQ)

維運與平台工程師在遠端實體 Mac 上同時維護 裸機 launchdDocker ComposeKubernetes 三條交付軌道時,最常卡在「負載均衡探測路徑被應用路由遮蔽」「/ready 與 /health 語意混用」以及「探針在叢集內成功、在 LB 上卻失敗」這類誤報未就緒。本文給出可簽字的對齊矩陣七步 Runbook、可貼上之Compose 與 K8s 片段,以及依症狀分診的 FAQ;並示範如何把閘道周邊能力(例如 MCP 雙路徑接入)納入同一套健康訊號策略。若你也在調整多區域 Runner 池,可一併參考 GitHub Actions 自託管與 Ephemeral Mac 的閾值矩陣

2026 年 OpenClaw Gateway 健康探針與負載均衡驗收

1. 導語:為什麼三軌要共用同一份「健康契約」

OpenClaw Gateway 對外提供模型路由、工具與通道能力時,/health/ready 是負載均衡器、Kubernetes 與 Compose 判斷「要不要送流量」的唯一共同語言;一旦三軌各自發明欄位或路徑,就會出現「監控全綠、使用者全紅」的割裂。

本文結論是:把兩個端點的 HTTP 狀態碼、逾時預算、Host 行為與是否允許重定向寫進一份契約,並在反向代理/Ingress 層為它們保留 高優先路由,再用同一組 curl 劇本在三軌重播,即可完成對齊驗收。

閱讀結構包含:痛點拆解對照表七步 Runbook可引用數字FAQ

2. 三類痛點:語意漂移、路徑遮蔽、網路命名空間錯位

  1. 語意漂移:團隊把重量級依賴檢查塞進 /health,導致探針逾時或被誤判為需要重啟;或把「可接受降級」塞進 /ready,造成滾動更新時全隊列流量被摘除。應固定:/health=行程存活;/ready=願意接客
  2. 路徑遮蔽(shadowing):API 閘道或 Web 框架的萬用字元路由先於內建探針匹配,LB 收到 404/HTML 錯誤頁卻仍以為後端活著(若只檢查 TCP)或相反。需在 Nginx、Caddy、Traefik 或 Ingress 註明 精確 path 優先
  3. 網路命名空間錯位:容器內 curl 127.0.0.1 成功,但 kubelet 從 Pod IP 探測失敗;或閘道只綁回環而 Service 轉發不到。對照 bind=lan/0.0.0.0targetPort 是否一致。

3. 決策矩陣:裸機、Compose、K8s 探針與 LB 對齊

下表用於變更單與事故復盤:每一列都應能在三軌找到對應設定或等價行為。

維度 遠端實體 Mac 裸機 + 反向代理 Docker Compose Kubernetes
探針來源 LB/監控 → 代理 → 閘道 docker healthcheck 從容器網路命名空間 kubelet 從 Pod IP 與節點路由
/ready 建議語意 代理層不做快取破壞;回 200 表示可接客 與 K8s 相同;注意 start_period readiness;失敗則自 Endpoints 摘除
路徑遮蔽風險 高:多 server 區塊順序 中:僅容器內路由 高:Ingress 規則與 pathType
誤報未就緒首查 Host/SNI、TLS 終止、301 鏈 depends_on 不等於健康;檢 CMD startupProbe、NetworkPolicy、bind

4. 七步落地驗收與可貼上設定片段

步驟 1:凍結契約

在 README 或內部 wiki 寫明:GET /health 回 200 且 body 可選;GET /ready 在依賴未就緒時回 503(或團隊選定的非 200),並禁止在這兩個 path 上掛認證中介層。

步驟 2:本機冒煙(三軌共用)

curl -fsS -o /dev/null -w "%{http_code}\n" http://127.0.0.1:18789/health
curl -fsS -o /dev/null -w "%{http_code}\n" http://127.0.0.1:18789/ready

將埠號替換為實際閘道埠;若使用 TLS 終止於上游,加上 -k 或正確 CA 僅限於排錯環境。

步驟 3:Docker Compose healthcheck

services:
  openclaw-gateway:
    image: your-registry/openclaw-gateway:@sha256:...
    healthcheck:
      test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:18789/ready || exit 1"]
      interval: 10s
      timeout: 3s
      retries: 3
      start_period: 40s

start_period 應覆蓋模型索引或遠端憑證載入的最壞情況,避免啟動期誤判。

步驟 4:Kubernetes 探針

startupProbe:
  httpGet:
    path: /ready
    port: http
  failureThreshold: 30
  periodSeconds: 2
readinessProbe:
  httpGet:
    path: /ready
    port: http
  periodSeconds: 5
  timeoutSeconds: 2
  failureThreshold: 3
livenessProbe:
  httpGet:
    path: /health
    port: http
  periodSeconds: 10
  timeoutSeconds: 2
  failureThreshold: 3

若曾發生「就緒後才暴露埠」的競態,優先加長 startupProbe 而非放寬 readinessProbe,以免長期掩蓋性能退化。

步驟 5:Ingress 路徑優先(防 shadowing)

以 NGINX Ingress 為例,確保 /health/ready 使用精確匹配並排在萬用 path 之前;若使用正則路由,請把探針 path 放在更高 priority

步驟 6:誤報未就緒分診

若 kubelet 成功而 LB 失敗:比對 Host 標頭TLS 終止重定向鏈;若兩者皆失敗但本機成功:檢查是否只綁 127.0.0.1。可暫時以 TCP Socket 探測隔離 HTTP 層,定位後再切回 HTTP。

步驟 7:簽字歸檔

匯出滾動更新視窗內的 探針成功率5xx 比例P95 啟動時間;附上代理與閘道設定雜湊,並註明回滾觸發條件(例如連續 N 次 /ready 非 200)。

5. 可引用閾值與參數

  • readinessProbe.failureThreshold 預設為 3:在 periodSeconds: 5 時約 15 秒內連續失敗才會從 Service 摘除,適合作為變更風險溝通數字。
  • 雲負載均衡健康檢查間隔常見設定為 5–30 秒:過密會放大閘道日誌與 CPU;過疏會拉長故障檢知時間。
  • Compose start_period建議先取閘道冷啟動 P95×1.5,再在新版本發佈後用實測收窄,避免與 K8s startupProbe 預算脫節。

6. FAQ

可以把認證 middleware 掛在 /ready 上嗎?

不建議。探針客戶端未必支援 OAuth 或自簽客戶端憑證;若必須隔離,應改用獨立內部埠或 mTLS 僅開給 kubelet/sidecar,並讓 LB 仍命中無認證的 /health。

為什麼「手動 curl 成功、LB 一直紅」?

優先列印 LB 實際送出的 Host 與 URL;再檢查是否經過 301→302 鏈而探測器未跟隨。最後用抓包對齊閘道 access log 的 request id。

多副本時 /ready 應不應該檢查共享快取?

應只檢查「本副本能否正確服務」的必要條件;共享快取降級可透過 metrics 與告警反映,而不是讓所有副本長期 NotReady。

7. 在 Mac mini 上讓閘道與探針更穩定

本文的驗收路徑高度依賴 長時間一致的本機網路堆疊低雜訊的 CPU 背景占用:在遠端實體 Mac(尤其是 Mac mini)上,Apple Silicon 的能效讓閘道與 Docker/k3s 可長期維持穩定時鐘與低抖動延遲,macOS 對 launchd、虛擬化與簽章權限的原生整合,也能減少「容器內就緒、主機權限未就緒」這類雙軌錯位。

與同價位常時風扇拉滿的小型 x86 主機相比,Mac mini M4 在待機功耗約 4W 量級、系統崩潰率極低,且內建 Gatekeeper/SIP 可降低被植入惡意二進位的面積,特別適合當成7×24 邊緣閘道多區域 Runner 的前置節點

若你希望把 /health、/ready 與負載均衡驗收跑在最省心的硬體與系統組合上,Mac mini M4 是目前最具性價比的切入點之一;現在即可透過 ZoneMac 取得節點,把上述 Runbook 一次對齊到生產。

限時優惠

準備好體驗高效能 Mac 了嗎?

立即體驗 Mac mini 雲端租賃服務,專為開發者打造的高效能構建環境

按需付費 即刻開通 安全可靠
macOS 雲端租賃 超低價限時優惠
立即購買