Files
k3s-gitops/docs/gitops-cicd/Ollama.md
2026-01-12 14:17:30 +00:00

310 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Требования к серверу и архитектуре 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