Манитон Docs

Развертывание в Kubernetes

Описание процесса деплоя документации

Развертывание и Окружения

Платформа Манитон использует Kubernetes для управления всеми компонентами. Мы придерживаемся подхода GitOps и Infrastructure as Code (IaC).

Модель окружений

  1. Local Hybrid (bun dev):

    • Инфраструктура (Kafka, DB, Besu) в локальном K8s (Docker Desktop/Minikube).
    • Микросервисы запущены локально через turbo dev.
    • Проброс портов через kubectl port-forward.
  2. Development (dev):

    • Общий кластер для интеграционных тестов.
    • Деплой всех компонентов в namespace maniton.
  3. 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 auth

Dockerfile: Микросервисы

Все микросервисы (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.

On this page