211 lines
5.4 KiB
Markdown
211 lines
5.4 KiB
Markdown
# 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
|
||
|
||
## Быстрый старт
|
||
|
||
```bash
|
||
# Скачать и запустить установку
|
||
curl -sSL https://git.thedevops.dev/admin/k3s-gitops/raw/branch/main/apps/ollama-mcp/install.sh | bash
|
||
```
|
||
|
||
## Ручная установка
|
||
|
||
### Предварительные требования
|
||
|
||
- Docker и Docker Compose
|
||
- Kubeconfig с доступом к кластеру
|
||
- Gitea API токен
|
||
|
||
### Установка
|
||
|
||
1. Клонировать репозиторий:
|
||
```bash
|
||
git clone https://git.thedevops.dev/admin/k3s-gitops.git
|
||
cd k3s-gitops/apps/ollama-mcp
|
||
```
|
||
|
||
2. Настроить переменные окружения:
|
||
```bash
|
||
cp .env.example .env
|
||
nano .env
|
||
```
|
||
|
||
3. Скопировать kubeconfig:
|
||
```bash
|
||
mkdir -p config
|
||
cp ~/.kube/config config/kubeconfig
|
||
```
|
||
|
||
4. Запустить:
|
||
```bash
|
||
docker-compose up -d
|
||
```
|
||
|
||
## Конфигурация
|
||
|
||
### Переменные окружения (.env)
|
||
|
||
```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 токена
|
||
|
||
1. Зайти в Gitea: https://git.thedevops.dev
|
||
2. Settings → Applications → Generate New Token
|
||
3. Выбрать права: `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"
|
||
```
|
||
|
||
## Проверка статуса
|
||
|
||
```bash
|
||
# Проверить статус контейнеров
|
||
docker-compose ps
|
||
|
||
# Просмотреть логи
|
||
docker-compose logs -f
|
||
|
||
# Перезапустить
|
||
docker-compose restart
|
||
|
||
# Остановить
|
||
docker-compose down
|
||
```
|
||
|
||
## Troubleshooting
|
||
|
||
### MCP серверы не отвечают
|
||
|
||
```bash
|
||
# Проверить логи
|
||
docker-compose logs mcp-kubernetes
|
||
docker-compose logs mcp-gitea
|
||
|
||
# Перезапустить
|
||
docker-compose restart
|
||
```
|
||
|
||
### Ошибка доступа к Kubernetes
|
||
|
||
```bash
|
||
# Проверить kubeconfig
|
||
kubectl --kubeconfig=config/kubeconfig get nodes
|
||
|
||
# Проверить права доступа
|
||
ls -la config/kubeconfig
|
||
```
|
||
|
||
### Ошибка доступа к Gitea
|
||
|
||
```bash
|
||
# Проверить токен
|
||
curl -H "Authorization: token YOUR_TOKEN" https://git.thedevops.dev/api/v1/user
|
||
|
||
# Проверить переменные окружения
|
||
docker-compose config
|
||
```
|
||
|
||
## Безопасность
|
||
|
||
- **Kubeconfig**: Хранится локально, не экспонируется
|
||
- **Gitea Token**: Передается через переменные окружения
|
||
- **Network**: Изолированная Docker сеть
|
||
- **Ports**: Доступны только на localhost (можно изменить)
|
||
|
||
## Обновление
|
||
|
||
```bash
|
||
# Обновить образы
|
||
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
|
||
```
|
||
|
||
## Дополнительные ресурсы
|
||
|
||
- [MCP Documentation](https://modelcontextprotocol.io)
|
||
- [Kubernetes API](https://kubernetes.io/docs/reference/)
|
||
- [Gitea API](https://docs.gitea.com/api/1.20/)
|
||
- [Ollama Documentation](https://ollama.ai/docs)
|
||
|
||
## Поддержка
|
||
|
||
Вопросы и предложения: https://git.thedevops.dev/admin/k3s-gitops/issues
|