為什麼不用 Helm
OpenClaw 是單一容器加上一些設定檔。真正需要客製化的是代理內容(Markdown 檔案、Skills、設定覆寫),不是基礎設施樣板。Kustomize 可以處理覆蓋層,而不需要 Helm chart 的額外負擔。如果你的部署變得更複雜,可以在這些 manifests 之上再疊加 Helm chart。你需要什麼
- 執行中的 Kubernetes 叢集(AKS、EKS、GKE、k3s、kind、OpenShift 等)
- 已連線到叢集的
kubectl - 至少一個模型提供者的 API 金鑰
快速開始
deploy.sh 預設會建立權杖驗證。擷取產生的閘道權杖供 Control UI 使用:
./scripts/k8s/deploy.sh --show-token 會在部署後列印權杖。
使用 Kind 進行本機測試
如果你沒有叢集,請使用 Kind 在本機建立一個:./scripts/k8s/deploy.sh 部署。
逐步操作
1) 部署
選項 A:環境中的 API 金鑰(一步完成)--show-token,即可將權杖列印到 stdout 以供本機測試。
2) 存取閘道
會部署哪些內容
客製化
代理指示
編輯scripts/k8s/manifests/configmap.yaml 中的 AGENTS.md,然後重新部署:
閘道設定
編輯scripts/k8s/manifests/configmap.yaml 中的 openclaw.json。完整參考請參閱閘道設定。
新增提供者
匯出額外金鑰後重新執行:自訂命名空間
自訂映像
編輯scripts/k8s/manifests/deployment.yaml 中的 image 欄位:
暴露到 port-forward 以外
預設 manifests 會將閘道繫結到 Pod 內的 loopback。這可搭配kubectl port-forward 使用,但無法搭配需要直接連到 Pod IP 的 Kubernetes Service 或 Ingress 路徑。
若要透過 Ingress 或負載平衡器暴露閘道:
- 將
scripts/k8s/manifests/configmap.yaml中的閘道繫結從loopback改為符合你部署模型的非 loopback 繫結。 - 保持啟用閘道驗證,並使用適當的 TLS 終止進入點。
- 使用支援的 Web 安全性模型設定 Control UI 的遠端存取(例如 HTTPS/Tailscale Serve,並在需要時明確設定允許的 origins)。
重新部署
清除
架構備註
- 閘道預設會繫結到 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,加上適當的閘道繫結與 Control UI origin 設定。
- Secrets 會在暫存目錄中產生並直接套用到叢集;不會將任何 secret 資料寫入 repo checkout。