為什麼不用 Helm?
OpenClaw 是一個帶有一些設定檔的單一容器。有價值的自訂項目在於 agent 內容(Markdown 檔案、Skills、設定覆寫),而不是基礎架構樣板。Kustomize 可以處理覆寫層,不需要 Helm chart 的額外負擔。如果你的部署變得更複雜,可以在這些 manifests 之上再疊加 Helm chart。你需要什麼
- 一個正在執行的 Kubernetes 叢集(AKS、EKS、GKE、k3s、kind、OpenShift 等)
- 已連線到叢集的
kubectl - 至少一個模型提供者的 API 金鑰
快速開始
./scripts/k8s/deploy.sh --show-token 會在部署後印出 token。
使用 Kind 進行本機測試
如果你沒有叢集,請使用 Kind 在本機建立一個:./scripts/k8s/deploy.sh 部署。
逐步操作
1) 部署
選項 A — 環境變數中的 API 金鑰(一步完成):--show-token。
2) 存取 Gateway
會部署什麼
自訂
Agent 指示
編輯scripts/k8s/manifests/configmap.yaml 中的 AGENTS.md,然後重新部署:
Gateway 設定
編輯scripts/k8s/manifests/configmap.yaml 中的 openclaw.json。完整參考請見 Gateway 設定。
新增提供者
重新執行並匯出額外金鑰:自訂命名空間
自訂映像檔
編輯scripts/k8s/manifests/deployment.yaml 中的 image 欄位:
暴露到 port-forward 之外
預設 manifests 會將 Gateway 綁定到 pod 內的 loopback。這可搭配kubectl port-forward 運作,但無法搭配需要連到 pod IP 的 Kubernetes Service 或 Ingress 路徑運作。
如果你想透過 Ingress 或負載平衡器暴露 Gateway:
- 將
scripts/k8s/manifests/configmap.yaml中的 Gateway 綁定從loopback改為符合你部署模型的非 loopback 綁定 - 保持 Gateway 驗證啟用,並使用正確的 TLS 終止進入點
- 使用支援的網頁安全模型為遠端存取設定 Control UI(例如 HTTPS/Tailscale Serve,以及需要時明確設定允許的 origins)
重新部署
拆除
架構注意事項
- Gateway 預設會綁定到 pod 內的 loopback,因此隨附的設定適用於
kubectl port-forward - 沒有叢集範圍資源,所有內容都位於單一命名空間中
- 安全性:
readOnlyRootFilesystem、drop: ALLcapabilities、非 root 使用者(UID 1000) - 預設設定會讓 Control UI 留在較安全的本機存取路徑:loopback 綁定加上
kubectl port-forward到http://127.0.0.1:18789 - 如果你要超出 localhost 存取,請使用支援的遠端模型:HTTPS/Tailscale 加上適當的 Gateway 綁定與 Control UI origin 設定
- Secrets 會在暫存目錄中產生並直接套用到叢集,不會將任何 secret material 寫入 repo checkout