Delete docs/gitops-cicd/Ollama.md
This commit is contained in:
@@ -1,309 +0,0 @@
|
||||
# Требования к серверу и архитектуре 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|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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user