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