Mengapa bukan Helm?
OpenClaw adalah satu container dengan beberapa file konfigurasi. Kustomisasi yang penting ada pada konten agent (file markdown, Skills, override konfigurasi), bukan templating infrastruktur. Kustomize menangani overlay tanpa overhead chart Helm. Jika deployment Anda menjadi lebih kompleks, chart Helm dapat dilapiskan di atas manifest ini.Yang Anda butuhkan
- Cluster Kubernetes yang berjalan (AKS, EKS, GKE, k3s, kind, OpenShift, dll.)
kubectlyang terhubung ke cluster Anda- Kunci API untuk setidaknya satu penyedia model
Mulai cepat
./scripts/k8s/deploy.sh --show-token mencetak token setelah deploy.
Pengujian lokal dengan Kind
Jika Anda tidak memiliki cluster, buat satu secara lokal dengan Kind:./scripts/k8s/deploy.sh.
Langkah demi langkah
1) Deploy
Opsi A — kunci API di environment (satu langkah):--show-token dengan salah satu perintah jika Anda ingin token dicetak ke stdout untuk pengujian lokal.
2) Akses gateway
Yang di-deploy
Kustomisasi
Instruksi agent
EditAGENTS.md di scripts/k8s/manifests/configmap.yaml dan deploy ulang:
Konfigurasi Gateway
Editopenclaw.json di scripts/k8s/manifests/configmap.yaml. Lihat Konfigurasi Gateway untuk referensi lengkap.
Tambahkan penyedia
Jalankan ulang dengan kunci tambahan yang diekspor:Namespace kustom
Image kustom
Edit kolomimage di scripts/k8s/manifests/deployment.yaml:
Ekspos di luar port-forward
Manifest default mengikat gateway ke loopback di dalam pod. Itu berfungsi dengankubectl port-forward, tetapi tidak berfungsi dengan Kubernetes Service atau jalur Ingress yang perlu menjangkau IP pod.
Jika Anda ingin mengekspos gateway melalui Ingress atau load balancer:
- Ubah bind gateway di
scripts/k8s/manifests/configmap.yamldariloopbackmenjadi bind non-loopback yang sesuai dengan model deployment Anda - Tetap aktifkan autentikasi gateway dan gunakan entrypoint yang diterminasi TLS dengan benar
- Konfigurasikan Control UI untuk akses jarak jauh menggunakan model keamanan web yang didukung (misalnya HTTPS/Tailscale Serve dan origin yang diizinkan secara eksplisit saat diperlukan)
Deploy ulang
Bongkar
Catatan arsitektur
- Gateway mengikat ke loopback di dalam pod secara default, jadi setup yang disertakan ditujukan untuk
kubectl port-forward - Tidak ada resource berskala cluster — semuanya berada dalam satu namespace
- Keamanan:
readOnlyRootFilesystem, kapabilitasdrop: ALL, pengguna non-root (UID 1000) - Konfigurasi default menjaga Control UI pada jalur akses lokal yang lebih aman: bind loopback plus
kubectl port-forwardkehttp://127.0.0.1:18789 - Jika Anda melampaui akses localhost, gunakan model jarak jauh yang didukung: HTTPS/Tailscale plus bind gateway yang sesuai dan pengaturan origin Control UI
- Secret dibuat di direktori sementara dan diterapkan langsung ke cluster — tidak ada material secret yang ditulis ke checkout repo