5.4 KiB
5.4 KiB
Ollama MCP Integration
Интеграция Ollama с Kubernetes и Gitea через MCP серверы.
Архитектура
GPU Server (Ollama + UI)
↓
MCP Servers (Docker Compose)
├── Kubernetes MCP Server --> K3s Cluster
└── Gitea MCP Server --> Gitea API
Возможности
-
Kubernetes MCP: Управление кластером через Ollama
- Получение информации о подах, деплойментах, сервисах
- Просмотр логов
- Apply/Delete ресурсов
- Управление namespace
- Exec в контейнеры
-
Gitea MCP: Работа с репозиториями через Ollama
- Просмотр файлов и директорий
- Создание/редактирование файлов
- Коммиты и push
- Управление ветками и PR
Быстрый старт
# Скачать и запустить установку
curl -sSL https://git.thedevops.dev/admin/k3s-gitops/raw/branch/main/apps/ollama-mcp/install.sh | bash
Ручная установка
Предварительные требования
- Docker и Docker Compose
- Kubeconfig с доступом к кластеру
- Gitea API токен
Установка
- Клонировать репозиторий:
git clone https://git.thedevops.dev/admin/k3s-gitops.git
cd k3s-gitops/apps/ollama-mcp
- Настроить переменные окружения:
cp .env.example .env
nano .env
- Скопировать kubeconfig:
mkdir -p config
cp ~/.kube/config config/kubeconfig
- Запустить:
docker-compose up -d
Конфигурация
Переменные окружения (.env)
# Gitea
GITEA_URL=https://git.thedevops.dev
GITEA_TOKEN=your-gitea-token
GITEA_OWNER=admin
# Kubernetes
K8S_CONTEXT=default
K8S_NAMESPACE=default
# MCP Servers
MCP_K8S_PORT=3001
MCP_GITEA_PORT=3002
Получение Gitea токена
- Зайти в Gitea: https://git.thedevops.dev
- Settings → Applications → Generate New Token
- Выбрать права:
repo,admin:org,write:repository
Использование с Ollama
Примеры промптов для Kubernetes:
"Покажи все поды в namespace monitoring"
"Получи логи пода grafana за последние 100 строк"
"Создай deployment nginx с 3 репликами"
"Какие сервисы запущены в argocd namespace?"
Примеры промптов для Gitea:
"Покажи файлы в репозитории k3s-gitops"
"Создай новый файл deployment.yaml в apps/nginx"
"Покажи содержимое файла apps/loki/statefulset.yaml"
"Создай новую ветку feature/add-monitoring"
Проверка статуса
# Проверить статус контейнеров
docker-compose ps
# Просмотреть логи
docker-compose logs -f
# Перезапустить
docker-compose restart
# Остановить
docker-compose down
Troubleshooting
MCP серверы не отвечают
# Проверить логи
docker-compose logs mcp-kubernetes
docker-compose logs mcp-gitea
# Перезапустить
docker-compose restart
Ошибка доступа к Kubernetes
# Проверить kubeconfig
kubectl --kubeconfig=config/kubeconfig get nodes
# Проверить права доступа
ls -la config/kubeconfig
Ошибка доступа к Gitea
# Проверить токен
curl -H "Authorization: token YOUR_TOKEN" https://git.thedevops.dev/api/v1/user
# Проверить переменные окружения
docker-compose config
Безопасность
- Kubeconfig: Хранится локально, не экспонируется
- Gitea Token: Передается через переменные окружения
- Network: Изолированная Docker сеть
- Ports: Доступны только на localhost (можно изменить)
Обновление
# Обновить образы
docker-compose pull
# Перезапустить с новыми образами
docker-compose up -d
Архитектура файлов
apps/ollama-mcp/
├── README.md # Эта документация
├── docker-compose.yml # Docker Compose конфигурация
├── install.sh # Скрипт автоматической установки
├── .env.example # Пример переменных окружения
├── config/
│ └── kubeconfig # Kubernetes конфигурация
├── mcp-kubernetes/
│ ├── package.json
│ ├── index.js
│ └── Dockerfile
└── mcp-gitea/
├── package.json
├── index.js
└── Dockerfile
Дополнительные ресурсы
Поддержка
Вопросы и предложения: https://git.thedevops.dev/admin/k3s-gitops/issues