Dlaczego nie Helm
OpenClaw to pojedynczy kontener z kilkoma plikami konfiguracyjnymi. Istotne możliwości dostosowania dotyczą zawartości agenta (plików Markdown, Skills i nadpisań konfiguracji), a nie szablonów infrastruktury. Kustomize obsługuje nakładki bez narzutu związanego z wykresem Helm. Jeśli wdrożenie stanie się bardziej złożone, możesz utworzyć wykres Helm oparty na tych manifestach.Czego potrzebujesz
- Działającego klastra Kubernetes (AKS, EKS, GKE, k3s, kind, OpenShift itp.)
- Narzędzia
kubectlpołączonego z klastrem - Klucza API co najmniej jednego dostawcy modeli
Szybki start
deploy.sh domyślnie tworzy uwierzytelnianie za pomocą tokenu. Pobierz wygenerowany token Gateway dla interfejsu sterowania:
./scripts/k8s/deploy.sh --show-token wyświetla token po wdrożeniu.
Testowanie lokalne za pomocą Kind
Jeśli nie masz klastra, utwórz go lokalnie za pomocą narzędzia Kind:./scripts/k8s/deploy.sh.
Krok po kroku
1) Wdróż
Opcja A: klucz API w środowisku (jeden krok)--show-token do dowolnego z tych poleceń, aby na potrzeby lokalnego testowania wyświetlić token na standardowym wyjściu.
2) Uzyskaj dostęp do Gateway
Co zostanie wdrożone
Dostosowywanie
Instrukcje agenta
Edytuj plikAGENTS.md w scripts/k8s/manifests/configmap.yaml i ponownie wykonaj wdrożenie:
Konfiguracja Gateway
Edytuj plikopenclaw.json w scripts/k8s/manifests/configmap.yaml. Pełne informacje znajdziesz w dokumentacji konfiguracji Gateway.
Dodawanie dostawców
Uruchom ponownie po wyeksportowaniu dodatkowych kluczy:Niestandardowa przestrzeń nazw
Niestandardowy obraz
Edytuj poleimage w scripts/k8s/manifests/deployment.yaml:
Udostępnianie poza przekierowaniem portów
Domyślne manifesty wiążą Gateway z local loopback wewnątrz poda. Działa to z poleceniemkubectl port-forward, ale nie ze ścieżką Kubernetes Service ani Ingress, która musi uzyskać bezpośredni dostęp do adresu IP poda.
Aby udostępnić Gateway przez Ingress lub moduł równoważenia obciążenia:
- Zmień powiązanie Gateway w
scripts/k8s/manifests/configmap.yamlzloopbackna powiązanie inne niż local loopback, zgodne z modelem wdrożenia. - Pozostaw włączone uwierzytelnianie Gateway i użyj odpowiedniego punktu wejścia z terminacją TLS.
- Skonfiguruj interfejs sterowania do dostępu zdalnego przy użyciu obsługiwanego modelu zabezpieczeń sieciowych (na przykład HTTPS/Tailscale Serve oraz jawnie dozwolonych źródeł, gdy jest to wymagane).
Ponowne wdrożenie
Usuwanie wdrożenia
Uwagi dotyczące architektury
- Gateway domyślnie wiąże się z local loopback wewnątrz poda, dlatego dołączona konfiguracja jest przeznaczona dla polecenia
kubectl port-forward. - Brak zasobów o zasięgu klastra; wszystko znajduje się w jednej przestrzeni nazw.
- Wzmocnienie zabezpieczeń:
readOnlyRootFilesystem, możliwościdrop: ALL, użytkownik inny niż root (UID 1000). - Domyślna konfiguracja utrzymuje interfejs sterowania na bezpieczniejszej ścieżce dostępu lokalnego: powiązanie z local loopback oraz
kubectl port-forwarddohttp://127.0.0.1:18789. - Jeśli rozszerzysz dostęp poza localhost, użyj obsługiwanego modelu zdalnego: HTTPS/Tailscale wraz z odpowiednim powiązaniem Gateway i ustawieniami źródeł interfejsu sterowania.
- Sekrety są generowane w katalogu tymczasowym i stosowane bezpośrednio w klastrze; żadne dane poufne nie są zapisywane w kopii roboczej repozytorium.