5.5 KiB
Требования к серверу и архитектуре Self-hosted Ollama для DevOps - Kubernetes - Knowledge Base
1. Цели и назначение системы
Система предназначена для:
-
Анализа Kubernetes-кластеров (YAML, manifests, events, states)
-
Анализа логов (application / infra / CI)
-
Работы с технической документацией (Markdown, PDF, AsciiDoc)
-
Написания и ревью кода (Bash, Go, Python, Terraform, Helm)
-
Создания внутренней базы знаний (RAG)
-
Одновременной работы до 10 пользователей
-
Интеграции с MCP-сервисами для получения данных из:
-
Gitea
-
Docker Swarm
-
Kubernetes API
-
CI/CD и лог-хранилищ
-
2. Архитектура (High Level)
Users (Web UI / IDE)
|
v
API Gateway / Reverse Proxy
|
v
Ollama Server (LLM inference)
|
+--> MCP: Gitea
|
+--> MCP: Docker Swarm
|
+--> MCP: Kubernetes
|
+--> MCP: Logs / Docs
|
v
Vector DB (Knowledge Base / RAG)
3. Серверные требования (Hardware)
3.1 Минимальная конфигурация (рекомендуемая)
| Компонент | Требование |
|---|---|
| CPU | 16–32 vCPU (x86_64) |
| RAM | 128 GB (минимум 64 GB) |
| GPU | 1× NVIDIA 24–48 GB VRAM (A5000 / A6000 / L40 / RTX 4090) |
| Disk (NVMe) | 2–4 TB |
| Disk IOPS | ≥ 100k |
| Network | 10 Gbps (желательно) |
| OS | Ubuntu Server 22.04 LTS |
❗ Для моделей 70B в Q4/Q5 — GPU обязателен.
Без GPU возможна работа только с 14–32B (ограниченно).
3.2 Рекомендуемые модели Ollama
| Задача | Модель |
|---|---|
| Анализ кода | qwen2.5-coder:32b |
| Логи / reasoning | deepseek-r1:32b |
| Документация | llama3.1:70b-q4 |
| Универсальная | qwen2.5:72b-q4 |
4. Программные компоненты
4.1 Базовые сервисы
| Компонент | Назначение |
|---|---|
| Ollama | LLM inference |
| Reverse Proxy (Traefik / Nginx) | Auth + TLS |
| Vector DB (Qdrant / Milvus) | Knowledge Base |
| Object Storage (S3-compatible) | Документы |
| MCP Services | Data ingestion |
| Auth (OIDC / Basic) | Контроль доступа |
4.2 MCP (Model Context Protocol) сервисы
MCP-Gitea
-
Чтение репозиториев
-
Анализ:
-
Kubernetes manifests
-
Helm charts
-
Terraform
-
Jenkinsfile / GitHub Actions
-
-
Поддержка:
-
branch / tag / commit
-
diff / blame
-
MCP-Docker-Swarm
-
Сервисы и стеки
-
docker-compose.yml
-
Service logs
-
Versions / rollout state
MCP-Kubernetes
-
API Server (read-only)
-
Resources:
-
Pods / Deployments / StatefulSets
-
Events
-
ConfigMaps / Secrets (masked)
-
-
kubectl-like queries
MCP-Docs / Logs
-
Markdown / PDF / TXT
-
Centralized logs (Loki / files)
-
Chunking + embedding
5. Knowledge Base (RAG)
Источники данных
-
Git-репозитории
-
Kubernetes manifests
-
CI/CD pipelines
-
Runbooks
-
ADR / RFC
-
Logs (выборочно)
Требования
-
Chunk size: 500–1000 tokens
-
Embeddings: bge / nomic / instructor
-
Versioning источников
-
Re-index по webhook
6. Безопасность
Обязательно
-
TLS (internal + external)
-
Read-only доступ к Kubernetes
-
Secrets masking
-
Role-based access (RBAC)
-
Network isolation (VLAN / namespaces)
Желательно
-
Audit logs
-
Prompt filtering
-
Rate limiting
-
Per-user context limits
7. Производительность и лимиты
| Параметр | Значение |
|---|---|
| Users | до 10 |
| Concurrent requests | 5–8 |
| Context length | 32k–128k |
| Avg response | 2–10 сек |
| Max model load | 1–2 модели одновременно |
8. Развертывание
Варианты
-
Standalone bare-metal
-
VM + GPU passthrough
-
Kubernetes (с GPU node pool)
Рекомендуется
-
Docker Compose / systemd для Ollama
-
Отдельный namespace для MCP
-
GitOps (Argo CD)
9. Эксплуатация
-
Model cache warming
-
Scheduled re-index
-
GPU monitoring (nvidia-smi)
-
Backup:
-
Vector DB
-
Docs storage
-
-
Upgrade policy:
-
Models
-
MCP schemas
-
10. Ограничения и риски
-
VRAM — основной bottleneck
-
Большие контексты = latency
-
Нужен контроль prompt-leak
-
Не замена SRE/DevOps решений
11. Итоговая рекомендация (baseline)
Оптимальная конфигурация:
-
1× GPU 48 GB
-
128 GB RAM
-
NVMe 2 TB
-
Ollama + Qwen / DeepSeek
-
MCP-Gitea + MCP-K8s
-
Qdrant как Vector DB
