OpenClaw di Kubernetes
Titik awal minimal untuk menjalankan OpenClaw di Kubernetes — bukan deployment yang siap produksi. Ini mencakup resource inti dan dimaksudkan untuk disesuaikan dengan lingkungan Anda.Mengapa bukan Helm?
OpenClaw adalah satu kontainer dengan beberapa file konfigurasi. Kustomisasi yang menarik 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 provider model
Mulai cepat
./scripts/k8s/deploy.sh --show-token mencetak token setelah deploy.
Pengujian lokal dengan Kind
Jika Anda belum memiliki cluster, buat secara lokal dengan Kind:./scripts/k8s/deploy.sh.
Langkah demi langkah
1) Deploy
Opsi A — kunci API di lingkungan (satu langkah):--show-token dengan salah satu perintah jika Anda ingin token dicetak ke stdout untuk pengujian lokal.
2) Akses gateway
Apa yang di-deploy
Kustomisasi
Instruksi agent
EditAGENTS.md di scripts/k8s/manifests/configmap.yaml lalu deploy ulang:
Konfigurasi Gateway
Editopenclaw.json di scripts/k8s/manifests/configmap.yaml. Lihat Konfigurasi Gateway untuk referensi lengkap.
Tambahkan provider
Jalankan ulang dengan mengekspor kunci tambahan:Namespace kustom
Image kustom
Edit fieldimage di scripts/k8s/manifests/deployment.yaml:
Ekspos di luar port-forward
Manifest default melakukan bind gateway ke loopback di dalam pod. Ini berfungsi dengankubectl port-forward, tetapi tidak berfungsi dengan Service atau jalur Ingress Kubernetes yang perlu menjangkau IP pod.
Jika Anda ingin mengekspos gateway melalui Ingress atau load balancer:
- Ubah bind gateway di
scripts/k8s/manifests/configmap.yamldariloopbackke bind non-loopback yang sesuai dengan model deployment Anda - Biarkan auth gateway tetap aktif dan gunakan entrypoint dengan terminasi TLS yang benar
- Konfigurasikan UI Kontrol untuk akses jarak jauh menggunakan model keamanan web yang didukung (misalnya HTTPS/Tailscale Serve dan origin yang diizinkan secara eksplisit bila diperlukan)
Deploy ulang
Pembongkaran
Catatan arsitektur
- Gateway secara default melakukan bind ke loopback di dalam pod, jadi penyiapan 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 UI Kontrol pada jalur akses lokal yang lebih aman: bind loopback plus
kubectl port-forwardkehttp://127.0.0.1:18789 - Jika Anda beralih melampaui akses localhost, gunakan model jarak jauh yang didukung: HTTPS/Tailscale ditambah bind gateway dan pengaturan origin UI Kontrol yang sesuai
- Secret dibuat di direktori sementara dan diterapkan langsung ke cluster — tidak ada materi secret yang ditulis ke checkout repo