Перейти к основному содержанию
Каждый репозиторий сервиса поставляется со своей k8s/ директорией с kustomized-манифестами. Применяете в порядке, ставите секреты, кластер поднимается.

Предварительные требования

  • Kubernetes 1.27+ (k3s 1.29+ как референс).
  • Ingress-контроллер (nginx, Traefik или встроенный k3s).
  • Инстанс Postgres 16 с расширением pgvector. Либо bundled (agentflow-postgres/k8s/), либо внешний (managed RDS / Neon).
  • DNS минимум для трёх сабдоменов: api., app. и лендинг бота (bot. или корень).
  • TLS через cert-manager или внешние сертификаты.

Порядок применения

1

Namespace и секреты

kubectl create namespace agentflow
kubectl -n agentflow apply -f secrets/  # см. гайд env-variables
2

Postgres

kubectl -n agentflow apply -k agentflow-postgres/k8s/
Дождитесь Ready у StatefulSet. Накатите миграции из agentflow-api:
kubectl -n agentflow exec deploy/agentflow-api -- npm run migrate
3

API

kubectl -n agentflow apply -k agentflow-api/k8s/
4

Claude OAuth proxy

kubectl -n agentflow apply -k claude-oauth-proxy/k8s/
5

Agents и runtime

kubectl -n agentflow apply -k agentflow-agents/k8s/
kubectl -n agentflow apply -k agentflow-runtime/k8s/
6

Бот

kubectl -n agentflow apply -k agentflow-bot/k8s/
7

Ingress

Настройте маршрутизацию ingress:
ХостБэкенд
api.<your-domain>service/agentflow-api:3000
app.<your-domain>service/agentflow-web:80
Затем направьте DNS на IP ingress.

Health и readiness

Каждый сервис экспортирует:
  • GET /health — liveness
  • GET /ready — readiness
Подключите к probes Kubernetes (манифесты делают это по умолчанию).

Масштабирование

СервисДефолтные репликиДрайвер скейлинга
agentflow-api2Скорость запросов; HPA по CPU
agentflow-agents2Активные сессии; HPA по памяти
agentflow-runtimeдинамикаСпавнится на сессию, убивается в конце
claude-oauth-proxy2Stateless; HPA по CPU
agentflow-bot1Singleton — Telegram-полинг плохо мультиплексируется

Хранилище

Зарезервируйте PersistentVolumeClaim под Postgres. Object storage настраивается через env (S3_ENDPOINT, S3_BUCKET); эталонное развёртывание использует self-hosted MinIO в том же namespace.

Обновление

Раскатывайте обновления, меняя image tag и переподавая kustomization. Миграции БД накатываются на старте agentflow-api под leader-election lock’ом.
kubectl -n agentflow set image deploy/agentflow-api api=registry.example.com/agentflow-api:<sha>
kubectl -n agentflow rollout status deploy/agentflow-api
В продакшне пинуйте image tag на commit SHA. Избегайте :latest. Эталонный CI/CD-пайплайн собирает с SHA и делает kubectl set image.

Single-node Docker Compose

Для одноузлового dev-окружения каждый репозиторий поставляется с docker-compose.yml:
cd agentflow-api
docker compose up -d
Это подходит только для личной разработки. Продакшн-развёртывания — на Kubernetes.