OpenClaw na Kubernetes
Ten poradnik opisuje minimalne wdrożenie OpenClaw na klaster Kubernetes. Zamiast Helm stosowany jest Kustomize — OpenClaw to pojedynczy kontener z plikami konfiguracyjnymi, więc Helm byłby nadmiarowy. Personalizacja dotyczy głównie treści agentów, a nie infrastruktury.
Wymagania wstępne
- Działający klaster Kubernetes — obsługiwane są AKS, EKS, GKE, k3s, Kind i OpenShift.
- Dostęp przez
kubectlz odpowiednimi uprawnieniami. - Klucz API obsługiwanego dostawcy modeli AI.
Szybkie wdrożenie
Najszybszy sposób uruchomienia OpenClaw na klasterze:
# Ustaw klucz API providera
export OPENAI_API_KEY="sk-..."
# Uruchom skrypt wdrazajacy
./scripts/k8s/deploy.sh
# Przekieruj port na localhost
kubectl port-forward -n openclaw svc/openclaw 18789:18789
Po przekierowaniu portu panel sterowania jest dostępny pod adresem http://localhost:18789.
Architektura wdrożenia
Skrypt tworzy przestrzeń nazw (namespace) zawierającą:
- Deployment — pojedynczy pod z kontenerem OpenClaw.
- ClusterIP Service — wewnętrzna usługa sieciowa.
- PersistentVolumeClaim — 10 Gi trwałego miejsca na dane konfiguracyjne i stan agentów.
- ConfigMap — ustawienia konfiguracyjne Gateway.
- Secret — klucze API i tokeny uwierzytelniające.
Gateway domyślnie nasłuchuje na adresie loopback — działa z kubectl port-forward, ale wymaga rekonfiguracji przy użyciu Ingress lub LoadBalancer.
Lokalne testowanie z Kind
Do testów bez istniejącego klastra możesz użyć Kind (Kubernetes in Docker):
# Skrypt automatycznie wykryje Docker lub Podman
./scripts/k8s/kind-setup.sh
# Wdraz OpenClaw na lokalny klaster
./scripts/k8s/deploy.sh
Kind jest idealny do weryfikacji konfiguracji przed wdrożeniem na klaster produkcyjny.
Konfiguracja
Możesz dostosować wdrożenie, modyfikując pliki w katalogu scripts/k8s/:
- Instrukcje agentów i prompt systemowy.
- Ustawienia Gateway (port, bind, limity).
- Wielu dostawców modeli AI jednocześnie.
- Własna przestrzeń nazw Kubernetes.
- Wybór obrazu kontenera (np. konkretna wersja zamiast
latest). - Konfiguracja sieciowa (bind address dla Ingress).
Bezpieczeństwo
Domyślna konfiguracja stosuje najlepsze praktyki bezpieczeństwa Kubernetes:
- System plików root zamontowany jako tylko do odczytu (
readOnlyRootFilesystem: true). - Wszystkie możliwości Linuksa odrzucone (
drop: ALL). - Kontener działa jako użytkownik bez uprawnień root (UID 1000).
Struktura plików
Skrypty wdrożeniowe i manifesty Kubernetes znajdują się w katalogu scripts/k8s/. Zawiera on oddzielne pliki dla konfiguracji bazowej, specyfikacji podów, trwałego magazynu danych i zasobów sieciowych.