Tại sao không dùng Helm?
OpenClaw là một container đơn với một số tệp cấu hình. Phần tùy chỉnh đáng chú ý nằm ở nội dung agent (tệp markdown, skills, ghi đè cấu hình), không phải ở tạo khuôn mẫu hạ tầng. Kustomize xử lý các overlay mà không cần chi phí phụ của một Helm chart. Nếu bản triển khai của bạn trở nên phức tạp hơn, có thể xếp một Helm chart lên trên các manifest này.Bạn cần gì
- Một cụm Kubernetes đang chạy (AKS, EKS, GKE, k3s, kind, OpenShift, v.v.)
kubectlđã kết nối với cụm của bạn- Một API key cho ít nhất một nhà cung cấp mô hình
Khởi động nhanh
./scripts/k8s/deploy.sh --show-token in token sau khi triển khai.
Kiểm thử cục bộ với Kind
Nếu bạn không có cụm, hãy tạo một cụm cục bộ bằng Kind:./scripts/k8s/deploy.sh.
Từng bước
1) Triển khai
Tùy chọn A — API key trong môi trường (một bước):--show-token với một trong hai lệnh nếu bạn muốn in token ra stdout để kiểm thử cục bộ.
2) Truy cập gateway
Những gì được triển khai
Tùy chỉnh
Hướng dẫn cho agent
Chỉnh sửaAGENTS.md trong scripts/k8s/manifests/configmap.yaml rồi triển khai lại:
Cấu hình Gateway
Chỉnh sửaopenclaw.json trong scripts/k8s/manifests/configmap.yaml. Xem Cấu hình Gateway để biết tài liệu tham chiếu đầy đủ.
Thêm nhà cung cấp
Chạy lại với các key bổ sung đã export:Namespace tùy chỉnh
Image tùy chỉnh
Chỉnh sửa trườngimage trong scripts/k8s/manifests/deployment.yaml:
Mở ra ngoài port-forward
Các manifest mặc định bind gateway vào loopback bên trong pod. Cách này hoạt động vớikubectl port-forward, nhưng không hoạt động với Kubernetes Service hoặc đường dẫn Ingress cần truy cập IP của pod.
Nếu bạn muốn mở gateway thông qua Ingress hoặc load balancer:
- Đổi gateway bind trong
scripts/k8s/manifests/configmap.yamltừloopbacksang một bind không phải loopback phù hợp với mô hình triển khai của bạn - Giữ bật xác thực gateway và dùng một entrypoint có TLS termination đúng cách
- Cấu hình Control UI cho truy cập từ xa bằng mô hình bảo mật web được hỗ trợ (ví dụ HTTPS/Tailscale Serve và các origin được cho phép rõ ràng khi cần)
Triển khai lại
Gỡ bỏ
Ghi chú kiến trúc
- Gateway bind vào loopback bên trong pod theo mặc định, vì vậy thiết lập đi kèm dành cho
kubectl port-forward - Không có tài nguyên phạm vi toàn cụm — mọi thứ nằm trong một namespace duy nhất
- Bảo mật:
readOnlyRootFilesystem, capabilitydrop: ALL, người dùng không phải root (UID 1000) - Cấu hình mặc định giữ Control UI trên đường truy cập cục bộ an toàn hơn: bind loopback cộng với
kubectl port-forwardtớihttp://127.0.0.1:18789 - Nếu bạn mở rộng ra ngoài truy cập localhost, hãy dùng mô hình từ xa được hỗ trợ: HTTPS/Tailscale cộng với gateway bind phù hợp và thiết lập origin của Control UI
- Secret được tạo trong một thư mục tạm và áp dụng trực tiếp vào cụm — không có dữ liệu secret nào được ghi vào repo checkout