Dlaczego nie Helm?
OpenClaw to pojedynczy kontener z kilkoma plikami konfiguracyjnymi. Najważniejsze dostosowania dotyczą treści agenta (pliki markdown, Skills, nadpisania konfiguracji), a nie szablonowania infrastruktury. Kustomize obsługuje nakładki bez narzutu wykresu Helm. Jeśli Twoje wdrożenie stanie się bardziej złożone, wykres Helm można nałożyć na te manifesty.Czego potrzebujesz
- Działający klaster Kubernetes (AKS, EKS, GKE, k3s, kind, OpenShift itd.)
kubectlpołączony z Twoim klastrem- Klucz API dla co najmniej jednego dostawcy modelu
Szybki start
./scripts/k8s/deploy.sh --show-token wypisuje token po wdrożeniu.
Lokalne testowanie z Kind
Jeśli nie masz klastra, utwórz go lokalnie za pomocą Kind:./scripts/k8s/deploy.sh.
Krok po kroku
1) Wdróż
Opcja A — klucz API w środowisku (jeden krok):--show-token z dowolnym poleceniem, jeśli chcesz wypisać token na stdout do lokalnego testowania.
2) Uzyskaj dostęp do Gateway
Co zostaje wdrożone
Dostosowywanie
Instrukcje agenta
EdytujAGENTS.md w scripts/k8s/manifests/configmap.yaml i wdróż ponownie:
Konfiguracja Gateway
Edytujopenclaw.json w scripts/k8s/manifests/configmap.yaml. Pełną dokumentację znajdziesz w konfiguracji Gateway.
Dodawanie dostawców
Uruchom ponownie z wyeksportowanymi dodatkowymi kluczami:Niestandardowa przestrzeń nazw
Niestandardowy obraz
Edytuj poleimage w scripts/k8s/manifests/deployment.yaml:
Udostępnienie poza port-forward
Domyślne manifesty wiążą Gateway z adresem loopback wewnątrz poda. Działa to zkubectl port-forward, ale nie działa ze ścieżką Kubernetes Service ani Ingress, która musi dotrzeć do adresu IP poda.
Jeśli chcesz udostępnić Gateway przez Ingress lub load balancer:
- Zmień wiązanie Gateway w
scripts/k8s/manifests/configmap.yamlzloopbackna wiązanie inne niż loopback, które pasuje do Twojego modelu wdrożenia - Pozostaw włączone uwierzytelnianie Gateway i użyj właściwego punktu wejścia z zakończeniem TLS
- Skonfiguruj Control UI do zdalnego dostępu za pomocą obsługiwanego modelu bezpieczeństwa WWW (na przykład HTTPS/Tailscale Serve i jawnie dozwolone originy, gdy są potrzebne)
Ponowne wdrożenie
Usuwanie wdrożenia
Uwagi architektoniczne
- Gateway domyślnie wiąże się z loopback wewnątrz poda, więc dołączona konfiguracja jest przeznaczona dla
kubectl port-forward - Brak zasobów o zasięgu klastra — wszystko znajduje się w jednej przestrzeni nazw
- Bezpieczeństwo:
readOnlyRootFilesystem, uprawnieniadrop: ALL, użytkownik inny niż root (UID 1000) - Domyślna konfiguracja utrzymuje Control UI na bezpieczniejszej ścieżce dostępu lokalnego: wiązanie loopback plus
kubectl port-forwarddohttp://127.0.0.1:18789 - Jeśli wychodzisz poza dostęp z localhost, użyj obsługiwanego modelu zdalnego: HTTPS/Tailscale oraz odpowiednie ustawienia wiązania Gateway i originów Control UI
- Sekrety są generowane w katalogu tymczasowym i stosowane bezpośrednio do klastra — żaden materiał sekretów nie jest zapisywany w checkoutcie repozytorium