OpenClaw w Kubernetes
Minimalny punkt wyjścia do uruchamiania OpenClaw w Kubernetes — nie jest to wdrożenie gotowe do produkcji. Obejmuje podstawowe zasoby i ma być dostosowane do Twojego środowiska.Dlaczego nie Helm?
OpenClaw to pojedynczy kontener z kilkoma plikami konfiguracyjnymi. Najciekawsze dostosowania dotyczą zawartości agenta (pliki markdown, Skills, nadpisania konfiguracji), a nie szablonowania infrastruktury. Kustomize obsługuje overlaye bez narzutu związanego z chartem Helm. Jeśli Twoje wdrożenie stanie się bardziej złożone, chart Helm można nałożyć na te manifesty.Czego potrzebujesz
- Działającego klastra Kubernetes (AKS, EKS, GKE, k3s, kind, OpenShift itd.)
kubectlpołączonego z Twoim klastrem- Klucza API do co najmniej jednego providera modeli
Szybki start
./scripts/k8s/deploy.sh --show-token wypisuje token po wdrożeniu.
Lokalne testy z Kind
Jeśli nie masz klastra, utwórz go lokalnie za pomocą Kind:./scripts/k8s/deploy.sh.
Krok po kroku
1) Wdrożenie
Opcja A — klucz API w środowisku (jeden krok):--show-token z dowolnym poleceniem, jeśli chcesz wypisać token na stdout do lokalnych testów.
2) Dostęp do gateway
Co zostanie wdrożone
Dostosowywanie
Instrukcje agenta
EdytujAGENTS.md w scripts/k8s/manifests/configmap.yaml i wdroż ponownie:
Konfiguracja gateway
Edytujopenclaw.json w scripts/k8s/manifests/configmap.yaml. Pełną dokumentację referencyjną znajdziesz w Gateway configuration.
Dodawanie providerów
Uruchom ponownie z dodatkowymi wyeksportowanymi kluczami:Własna przestrzeń nazw
Własny obraz
Edytuj poleimage w scripts/k8s/manifests/deployment.yaml:
Udostępnienie poza port-forward
Domyślne manifesty wiążą gateway do loopback wewnątrz poda. To działa zkubectl port-forward, ale nie działa z Kubernetes Service ani ze ścieżką Ingress, która musi dotrzeć do IP poda.
Jeśli chcesz udostępnić gateway przez Ingress lub load balancer:
- Zmień bind gateway w
scripts/k8s/manifests/configmap.yamlzloopbackna bind inny niż loopback, zgodny z Twoim modelem wdrożenia - Pozostaw uwierzytelnianie gateway włączone i użyj poprawnego entrypointu z terminacją TLS
- Skonfiguruj Control UI do zdalnego dostępu przy użyciu obsługiwanego modelu bezpieczeństwa webowego (na przykład HTTPS/Tailscale Serve i jawnie dozwolone origins, gdy są potrzebne)
Ponowne wdrożenie
Usuwanie
Uwagi architektoniczne
- Domyślnie gateway wiąże się do loopback wewnątrz poda, więc dołączona konfiguracja jest przeznaczona do
kubectl port-forward - Brak zasobów o zasięgu klastra — wszystko znajduje się w jednej przestrzeni nazw
- Bezpieczeństwo:
readOnlyRootFilesystem, capabilitiesdrop: ALL, użytkownik nie-root (UID 1000) - Domyślna konfiguracja utrzymuje Control UI na bezpieczniejszej ścieżce dostępu lokalnego: bind loopback plus
kubectl port-forwarddohttp://127.0.0.1:18789 - Jeśli chcesz wyjść poza dostęp localhost, użyj obsługiwanego modelu zdalnego: HTTPS/Tailscale plus odpowiedni bind gateway i ustawienia origin dla Control UI
- Sekrety są generowane w katalogu tymczasowym i stosowane bezpośrednio do klastra — żadne materiały sekretów nie są zapisywane w checkout repozytorium