Add docs/gitops-cicd/Ollama.md

This commit is contained in:
2026-01-12 14:17:30 +00:00
parent 44f2a76d6b
commit e26de1e101

309
docs/gitops-cicd/Ollama.md Normal file
View File

@@ -0,0 +1,309 @@
# Требования к серверу и архитектуре 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)
```
---
![[ollama_architecture.png]]
## 3. Серверные требования (Hardware)
### 3.1 Минимальная конфигурация (рекомендуемая)
|Компонент|Требование|
|---|---|
|CPU|1632 vCPU (x86_64)|
|RAM|**128 GB** (минимум 64 GB)|
|GPU|**1× NVIDIA 2448 GB VRAM** (A5000 / A6000 / L40 / RTX 4090)|
|Disk (NVMe)|24 TB|
|Disk IOPS|≥ 100k|
|Network|10 Gbps (желательно)|
|OS|Ubuntu Server 22.04 LTS|
> ❗ Для моделей 70B в Q4/Q5 — **GPU обязателен**.
> Без GPU возможна работа только с 1432B (ограниченно).
---
### 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: 5001000 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|58|
|Context length|32k128k|
|Avg response|210 сек|
|Max model load|12 модели одновременно|
---
## 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