Почему не Helm
OpenClaw — это один контейнер с несколькими файлами конфигурации. Основные возможности настройки относятся к содержимому агента (файлам Markdown, skills, переопределениям конфигурации), а не к шаблонизации инфраструктуры. Kustomize позволяет использовать наложения без дополнительных сложностей Helm-чарта. Если развертывание станет более сложным, добавьте Helm-чарт поверх этих манифестов.Что потребуется
- Работающий кластер Kubernetes (AKS, EKS, GKE, k3s, kind, OpenShift и т. д.)
kubectl, подключенный к вашему кластеру- Ключ API хотя бы одного поставщика моделей
Быстрый старт
deploy.sh по умолчанию создает аутентификацию по токену. Получите сгенерированный токен Gateway для интерфейса управления:
./scripts/k8s/deploy.sh --show-token выводит токен после развертывания.
Локальное тестирование с Kind
Если у вас нет кластера, создайте его локально с помощью Kind:./scripts/k8s/deploy.sh.
Пошаговая инструкция
1) Развертывание
Вариант A: ключ API в переменной среды (один шаг)--show-token к любой из команд, чтобы вывести токен в stdout для локального тестирования.
2) Доступ к Gateway
Развертываемые ресурсы
Настройка
Инструкции агента
ИзменитеAGENTS.md в scripts/k8s/manifests/configmap.yaml и выполните повторное развертывание:
Конфигурация Gateway
Изменитеopenclaw.json в scripts/k8s/manifests/configmap.yaml. Полное справочное описание см. в разделе Конфигурация Gateway.
Добавление поставщиков
Повторно запустите развертывание, экспортировав дополнительные ключи:Пользовательское пространство имен
Пользовательский образ
Измените полеimage в scripts/k8s/manifests/deployment.yaml:
Доступ за пределами перенаправления портов
Манифесты по умолчанию привязывают Gateway к loopback-интерфейсу внутри пода. Это работает сkubectl port-forward, но не с Kubernetes Service или маршрутом Ingress, которому необходим прямой доступ к IP-адресу пода.
Чтобы открыть доступ к Gateway через Ingress или балансировщик нагрузки:
- Измените привязку Gateway в
scripts/k8s/manifests/configmap.yamlсloopbackна привязку не к loopback-интерфейсу, соответствующую вашей модели развертывания. - Не отключайте аутентификацию Gateway и используйте надлежащую точку входа с терминацией TLS.
- Настройте интерфейс управления для удаленного доступа с использованием поддерживаемой модели веб-безопасности (например, HTTPS/Tailscale Serve и явно разрешенных источников, когда это необходимо).
Повторное развертывание
Удаление
Примечания об архитектуре
- По умолчанию Gateway привязан к loopback-интерфейсу внутри пода, поэтому включенная конфигурация предназначена для
kubectl port-forward. - Ресурсы уровня кластера отсутствуют; все находится в одном пространстве имен.
- Усиление безопасности:
readOnlyRootFilesystem, возможностиdrop: ALL, пользователь без прав root (UID 1000). - Конфигурация по умолчанию оставляет интерфейс управления на более безопасном пути локального доступа: привязка к loopback-интерфейсу и
kubectl port-forwardсо значениемhttp://127.0.0.1:18789. - Если требуется доступ не только с localhost, используйте поддерживаемую модель удаленного доступа: HTTPS/Tailscale, соответствующую привязку Gateway и настройки источников интерфейса управления.
- Секреты генерируются во временном каталоге и применяются непосредственно к кластеру; секретные данные не записываются в рабочую копию репозитория.