Развертывание в Kubernetes
Описание процесса деплоя документации
Развертывание и Окружения
Платформа Манитон использует Kubernetes для управления всеми компонентами. Мы придерживаемся подхода GitOps и Infrastructure as Code (IaC).
Модель окружений
-
Local Hybrid (bun dev):
- Инфраструктура (Kafka, DB, Besu) в локальном K8s (Docker Desktop/Minikube).
- Микросервисы запущены локально через
turbo dev. - Проброс портов через
kubectl port-forward.
-
Development (dev):
- Общий кластер для интеграционных тестов.
- Деплой всех компонентов в namespace
maniton.
-
Production (prod):
- Отказоустойчивый кластер (High Availability).
- Изоляция контуров, усиленная безопасность (Network Policies, RBAC).
Инструментарий
- Bun: Рантайм для управляющих скриптов.
- kubectl: Основной CLI для работы с кластером.
- Kustomize: Управление конфигурациями (встроено в
kubectl -k). - Make: Автоматизация команд деплоя (
infra/k8s/Makefile).
Команды управления
Мы используем обертку в виде dev.ts для упрощения ежедневных операций:
# Развернуть всё (инфра + локальные сервисы)
bun dev
# Только деплой манифестов в K8s
bun dev k8s deploy --env dev
# Проверка статуса
bun dev status
# Просмотр логов конкретного сервиса
bun dev logs --service authDockerfile: Микросервисы
Все микросервисы (NestJS) собираются по единому шаблону (multi-stage):
FROM oven/bun:1.2-slim AS base
WORKDIR /app
FROM base AS builder
COPY . .
RUN bun install
RUN bun run build
FROM base AS runner
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/package.json .
COPY --from=builder /app/node_modules ./node_modules
EXPOSE 3000
CMD ["bun", "dist/main.js"]Структура манифестов (infra/k8s)
base/: Базовые ресурсы (Namespace, Quotas).components/: Переиспользуемые блоки (PostgreSQL, Kafka, Besu, Monitoring).overlays/: Специфичные настройки дляdevиprod.