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

5.5 KiB
Raw Blame History

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