Files
k3s-gitops/apps/ollama-mcp/QUICKSTART.md
2026-01-11 13:16:35 +00:00

6.6 KiB
Raw Permalink Blame History

Ollama MCP Quick Start Guide

Быстрая установка (1 команда)

curl -sSL https://git.thedevops.dev/admin/k3s-gitops/raw/branch/main/apps/ollama-mcp/install.sh | bash

Что будет установлено:

  1. MCP Kubernetes Server - REST API для управления кластером
  2. MCP Gitea Server - REST API для работы с Git репозиториями
  3. Docker Compose - оркестрация сервисов
  4. Health checks - автоматический мониторинг состояния

После установки:

1. Настроить Gitea токен

cd ~/ollama-mcp
nano .env

Добавь свой токен:

GITEA_TOKEN=your_token_here

Получить токен:

2. Перезапустить сервисы

docker-compose restart

3. Проверить статус

docker-compose ps
docker-compose logs -f

Интеграция с Ollama

Способ 1: Через Open WebUI

Если у тебя установлен Open WebUI:

  1. Settings → Connections → Add Connection
  2. Name: Kubernetes MCP
  3. URL: http://localhost:3001
  4. Type: REST API

Способ 2: Прямые запросы

# Список подов
curl -X POST http://localhost:3001/api/pods/list \
  -H "Content-Type: application/json" \
  -d '{"namespace": "argocd"}'

# Логи пода
curl -X POST http://localhost:3001/api/pods/logs \
  -H "Content-Type: application/json" \
  -d '{"name": "argocd-server-xxx", "namespace": "argocd", "tailLines": 100}'

# Список репозиториев
curl -X POST http://localhost:3002/api/repos/list \
  -H "Content-Type: application/json" \
  -d '{"owner": "admin"}'

Способ 3: Создать wrapper для Ollama

Создай файл ollama-k8s.sh:

#!/bin/bash

PROMPT="$*"

# Отправить запрос к Ollama с контекстом MCP
ollama run qwen2.5-coder:32b "
Context: You have access to Kubernetes API at http://localhost:3001 and Gitea API at http://localhost:3002

Available Kubernetes endpoints:
- POST /api/pods/list - list pods
- POST /api/pods/logs - get pod logs
- POST /api/deployments/list - list deployments
- POST /api/services/list - list services
- POST /api/namespaces/list - list namespaces

Available Gitea endpoints:
- POST /api/repos/list - list repositories
- POST /api/repos/file/get - get file content
- POST /api/repos/tree/get - list directory
- POST /api/repos/file/create - create file
- POST /api/repos/branches/list - list branches

User request: $PROMPT

Generate curl commands to execute this request and show the results.
"

Использование:

chmod +x ollama-k8s.sh
./ollama-k8s.sh "покажи все поды в namespace monitoring"
./ollama-k8s.sh "получи логи grafana за последние 50 строк"

Примеры промптов для Ollama

Kubernetes:

"Покажи все поды в namespace argocd"
"Получи логи пода prometheus-xxx за последние 100 строк"
"Список всех deployments в namespace monitoring"
"Покажи все сервисы в default namespace"
"Какие namespaces есть в кластере?"

Gitea:

"Покажи все репозитории пользователя admin"
"Получи содержимое файла apps/loki/statefulset.yaml из репозитория k3s-gitops"
"Покажи структуру директории apps/ в k3s-gitops"
"Создай файл test.yaml в репозитории k3s-gitops"
"Какие ветки есть в репозитории k3s-gitops?"

Troubleshooting

MCP серверы не отвечают

cd ~/ollama-mcp

# Проверить логи
docker-compose logs mcp-kubernetes
docker-compose logs mcp-gitea

# Перезапустить
docker-compose restart

# Пересобрать
docker-compose down
docker-compose build --no-cache
docker-compose up -d

Ошибка подключения к Kubernetes

# Проверить kubeconfig
kubectl --kubeconfig=~/ollama-mcp/config/kubeconfig get nodes

# Если не работает, скопировать заново
cp ~/.kube/config ~/ollama-mcp/config/kubeconfig
docker-compose restart mcp-kubernetes

Ошибка подключения к Gitea

# Проверить токен
curl -H "Authorization: token YOUR_TOKEN" \
  https://git.thedevops.dev/api/v1/user

# Обновить токен в .env
nano ~/ollama-mcp/.env
docker-compose restart mcp-gitea

Порты заняты

Если порты 3001 или 3002 уже заняты:

nano ~/ollama-mcp/.env

Измени порты:

MCP_K8S_PORT=4001
MCP_GITEA_PORT=4002
docker-compose down
docker-compose up -d

Управление

cd ~/ollama-mcp

# Запустить
docker-compose up -d

# Остановить
docker-compose down

# Перезапустить
docker-compose restart

# Статус
docker-compose ps

# Логи (следить в реальном времени)
docker-compose logs -f

# Логи конкретного сервиса
docker-compose logs -f mcp-kubernetes
docker-compose logs -f mcp-gitea

# Обновить образы
docker-compose pull
docker-compose up -d

Безопасность

  • Kubeconfig: Защищен правами 600, доступен только внутри контейнера
  • Gitea Token: Хранится в .env (не коммитится в git)
  • Network: Изолированная Docker сеть
  • Ports: По умолчанию доступны на localhost (127.0.0.1)

Для публичного доступа (НЕ рекомендуется без SSL):

ports:
  - "0.0.0.0:3001:3000"  # Доступен извне

Дополнительно

Мониторинг

Health checks доступны по:

Логи в файл

docker-compose logs > mcp-logs.txt

Автозапуск при перезагрузке

Сервисы уже настроены с restart: unless-stopped

Для проверки после перезагрузки:

docker ps | grep mcp

Полная документация

Смотри README.md для подробной информации.