裸機上你聽見的「埠起來了」往往等價於行程綁定成功;在 Kubernetes 裡,同樣一行日誌背後還要經過 Service Endpoints、kube-proxy(或 CNI)、NetworkPolicy 與 cgroup memory 四層解釋。OpenClaw Gateway 若仍沿用開發機上的 127.0.0.1 心智,很容易在叢集裡出現「curl 進 Pod 能通、經 Service 全掛」或「就緒永遠紅但行程明明活著」的假陰性。
本文把驗收拆成可簽字的證據鏈:鏡像 digest 與 Helm values 雜湊、requests/limits 與 OOM 事件對齊、bind=lan 與 targetPort 一致、port-forward 冒煙與叢集內探測對照。若你同時在 遠端 Mac 上評估 Docker Compose 與裸機,可把本節矩陣當作「同版本、雙軌道」驗收的母版。若要先把 ZoneMac 實體節點上的 OpenClaw 業務流跑通,亦可參考 ZoneMac 物理節點 24/7 AI 智能體部署指南 的落地順序。
- 版本漂移與不可複現:生產使用
:latest 或「只記 tag 不記 digest」,兩週後同 tag 重建即行為變化;回滾時無法證明舊副本與目前 incidents 是否同一二進位。
- 綁定位址、Service 與探針三者打架:閘道監聽回環而 readiness 去敲 Pod IP;或 bind=lan 但 NetworkPolicy 只放行來自 Ingress 網段,健康檢查源不在白名單,導致 NotReady 與流量中斷並存。
- Resource 配額與隱性成本:未設 requests 時排程看似成功,節點擠爆後觸發延遲 OOM;limits 過小則在工具呼叫高峰被 cgroup 直接殺行程,日誌只剩 Exit 137,若無指標很難區分洩漏與正常尖峰。
用一張表對齊「誰在什麼約束下更省事」,避免把裸機 launchd 的經驗原樣貼進 Pod。多區域延遲與節點選址也可一併對照 Mac 雲端伺服器地區選擇(含延遲對比)。
監聽綁定 需
bind=lan(或 0.0.0.0)以便 Service 命中;回環僅適合同 Pod sidecar 可配合反代只綁 127.0.0.1,由 nginx/Caddy 終止 TLS 臨時驗收
kubectl port-forward 適合冒煙,不等價叢集內全鏈路
curl 本機環回或 SSH 隧道,路徑更短但缺少多副本視角 典型故障回滾
kubectl rollout undo 或固定上一 digest 替換二進位/鏡像標籤 + launchctl kickstart -k,注意單實例鎖
- 釘死版本:CI 在部署工單裡寫入鏡像
repo@sha256:…、Helm chart 版本與 values.yaml 的 git SHA;禁止生產流水線依賴浮動 tag。
- 宣告 Resource:為閘道設定
requests.memory 接近 P95 常駐工作集,limits.memory 留出工具呼叫與 JSON 緩衝峰值;CPU requests 避免排程到已飽和節點。
- 對齊 bind 與埠:若流量經 Service/Ingress 進入,閘道設定使用
bind=lan(或文件規定的雙堆疊監聽),並核對 containerPort、targetPort、探針埠三者一致。
- 設定探針:readiness 使用與真實流量相同的三元組(協定、主機、路徑);為冷啟動設定
initialDelaySeconds/startupProbe,避免 NotReady 誤殺正在載入 skills 的行程。
- port-forward 冒煙:維運機執行
kubectl port-forward deploy/openclaw-gateway 18789:18789(埠依實際替換),完成最小健康檢查與單條工具呼叫;同時在叢集內 Pod 發起一次同源探測,記錄兩條路徑是否一致。
- 觀測與告警:將重啟次數、OOMKilled、就緒=false 持續時間、5xx 與閘道佇列深度綁定到同一儀表板;變更視窗前後各保留 24h 對照。
- 裸機對照簽字:在遠端實體 Mac 上以同 digest 的本機執行方式(或 用戶端到 macOS 閘道的聯調 Runbook)重複關鍵健康訊號,差異寫入交付說明。長期無人值守場景可參考 Mac mini 上 OpenClaw 穩定性**化 的基線。
在 Pod 內監聽非回環位址並不等於對公網開放;暴露面由 Service type、Ingress、NetworkPolicy 與叢集出口策略共同決定。應把「行程監聽」與「誰能路由到 Pod」分層稽核。
看 kubectl describe pod 的 Last State、節點記憶體壓力事件與容器退出碼 137;對照同一時間段的閘道併發與單請求體大小,避免把正常尖峰誤判為洩漏。
優先核對探針 URL 是否指向錯誤埠或路徑、是否缺少 startupProbe,以及 NetworkPolicy 是否放行 kubelet 探針源;再考慮應用層路由是否在就緒後才掛載。
保留上一版本的 digest 與 Helm revision;kubectl rollout undo 後立刻跑一次叢集內健康探測與最小業務握手,並把證據鏈附在變更單上。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/251625.html