Почему не Helm?
OpenClaw — это один контейнер с несколькими файлами конфигурации. Основная кастомизация находится в содержимом агента (Markdown-файлы, Skills, переопределения конфигурации), а не в шаблонизации инфраструктуры. Kustomize обрабатывает оверлеи без накладных расходов Helm-чарта. Если ваше развертывание станет сложнее, Helm-чарт можно наложить поверх этих манифестов.Что вам нужно
- Работающий кластер Kubernetes (AKS, EKS, GKE, k3s, kind, OpenShift и т. д.)
kubectl, подключенный к вашему кластеру- API-ключ хотя бы для одного поставщика моделей
Быстрый старт
./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:
Открытие доступа за пределами port-forward
Манифесты по умолчанию привязывают Gateway к loopback внутри пода. Это работает сkubectl port-forward, но не работает с Kubernetes Service или путем Ingress, которому нужно обращаться к IP пода.
Если вы хотите открыть доступ к Gateway через Ingress или балансировщик нагрузки:
- Измените привязку Gateway в
scripts/k8s/manifests/configmap.yamlсloopbackна не-loopback-привязку, соответствующую вашей модели развертывания - Оставьте аутентификацию Gateway включенной и используйте корректную точку входа с завершением TLS
- Настройте Control UI для удаленного доступа с использованием поддерживаемой модели веб-безопасности (например, HTTPS/Tailscale Serve и явно разрешенные источники при необходимости)
Повторное развертывание
Удаление
Заметки об архитектуре
- По умолчанию Gateway привязывается к loopback внутри пода, поэтому включенная настройка предназначена для
kubectl port-forward - Нет ресурсов уровня кластера — все находится в одном пространстве имен
- Безопасность:
readOnlyRootFilesystem, возможностиdrop: ALL, пользователь без root-прав (UID 1000) - Конфигурация по умолчанию оставляет Control UI на более безопасном пути локального доступа: привязка к loopback плюс
kubectl port-forwardнаhttp://127.0.0.1:18789 - Если вы выходите за пределы доступа с localhost, используйте поддерживаемую удаленную модель: HTTPS/Tailscale плюс подходящая привязка Gateway и настройки источников Control UI
- Секреты генерируются во временном каталоге и применяются напрямую к кластеру — секретные данные не записываются в рабочую копию репозитория