OpenClaw on Kubernetes
在 Kubernetes 上執行 OpenClaw 的最小起點 — 不是生產就緒部署。它涵蓋核心資源且旨在適應您的環境。為什麼不用 Helm?
OpenClaw 是一個容器加一些配置檔案。有趣的自訂在代理內容(markdown 檔案、skills、配置覆蓋),不在基礎設施樣板化。Kustomize 無需 Helm 圖表的額外開銷即可處理覆蓋。如果您的部署變得更複雜,Helm 圖表可以分層到這些清單之上。您需要什麼
- 執行中的 Kubernetes 叢集(AKS、EKS、GKE、k3s、kind、OpenShift 等)
kubectl連接到您的叢集- 至少一個模型提供者的 API 金鑰
快速開始
./scripts/k8s/deploy.sh --show-token 在部署後列印令牌。
使用 Kind 進行本地測試
如果您沒有叢集,用 Kind 在本地建立一個:./scripts/k8s/deploy.sh 部署。
逐步進行
1) 部署
選項 A — 環境中的 API 金鑰(一步):--show-token 若要令牌列印至 stdout 以進行本地測試。
2) 存取 Gateway
部署內容
自訂
代理指令
在scripts/k8s/manifests/configmap.yaml 中編輯 AGENTS.md 並重新部署:
Gateway 配置
在scripts/k8s/manifests/configmap.yaml 中編輯 openclaw.json。詳見 Gateway 配置。
添加提供者
以額外金鑰匯出重新執行:自訂命名空間
自訂映像
在scripts/k8s/manifests/deployment.yaml 中編輯 image 欄位:
超越 port-forward 的暴露
預設清單將 Gateway 綁定至 Pod 內的 loopback。這對kubectl port-forward 有效,但對於需要達到 Pod IP 的 Kubernetes Service 或 Ingress 路徑無效。
如果您想通過 Ingress 或負載均衡器暴露 Gateway:
- 在
scripts/k8s/manifests/configmap.yaml中將 Gateway 綁定從loopback改為符合您部署模型的非 loopback 綁定 - 保持 Gateway 驗證啟用且使用適當的 TLS 終止端點
- 為遠端存取配置控制 UI 使用支援的 web 安全模型(例如 HTTPS/Tailscale Serve 和當需要時明確允許來源)
重新部署
拆除
架構附註
- Gateway 預設綁定至 Pod 內的 loopback,所以包含的設定用於
kubectl port-forward - 無叢集範圍資源 — 所有內容生活在單一命名空間
- 安全性:
readOnlyRootFilesystem、drop: ALL能力、非根使用者 (UID 1000) - 預設配置保持控制 UI 在更安全的本地存取路徑:loopback 綁定加
kubectl port-forward至http://127.0.0.1:18789 - 如果您超越 localhost 存取,使用支援遠端模型:HTTPS/Tailscale 加適當的 Gateway 綁定和控制 UI 源設定
- Secret 在臨時目錄中產生並直接應用至叢集 — 無 Secret 材料寫入儲存庫簽出