Что такое Cluster Sentinel
Проект Cluster Sentinel (версия 0.9.5) представляет собой специализированный сервис для сбора, персистентного хранения и анализа событий Kubernetes. В отличие от стандартных логгеров, он использует SQLite для сохранения истории событий и контрольных точек, а также поддерживает ограниченную in-memory кэш-память для быстрого чтения. Ключевая особенность — встроенный MCP (Model Context Protocol) сервер, позволяющий AI-агентам и операторам взаимодействовать с данными кластера через стандартизированный интерфейс.
Архитектура и безопасность
Приложение спроектировано с учетом принципов минимальных привилегий: контейнер запускается от UID 65532, файловая система корня доступна только для чтения, а все Linux-капabilities отключены. Данные хранятся в PVC объемом 5 GiB (ReadWriteOnce), что исключает проблемы с консистентностью при множественных репликах (используется стратегия Recreate).
Доступ к API защищен токенами Bearer. Для предотвращения DNS-rebinding атак MCP-сервер дополнительно валидирует заголовок Host. Метрики Prometheus доступны только внутри кластера, тогда как API событий и MCP требуют аутентификации.
Ключевые возможности и интеграции
Cluster Sentinel предоставляет готовые ресурсы для развертывания в Kubernetes, включая Helm-чарт, Grafana-дашборд и правила алертинга Prometheus. Ниже приведена структура основных эндпоинтов и параметров конфигурации.
| Компонент / Эндпоинт | Описание и назначение | Требования |
|---|---|---|
| /mcp | Streamable HTTP MCP сервер для AI-агентов | Bearer token, валидный Host |
| /api/v1/events | Фильтрованный инвентарь событий | Bearer token |
| /metrics | Метрики для Prometheus | Только внутренний доступ |
| Helm Chart | Установка через helm upgrade --install |
Namespace clustersentinel |
| Security Context | Restricted profile, seccomp RuntimeDefault | UID 65532, no privilege escalation |
Как запустить
Для локального тестирования без подключения к реальному кластеру используется демо-режим:
export CLUSTERSENTINEL_EVENTS_MODE=demo
export CLUSTERSENTINEL_MCP_AUTH_TOKEN=$(openssl rand -hex 32)
cargo run
Для продакшн-использования рекомендуется Helm-установка с включением ServiceMonitor для Prometheus Operator:
helm upgrade --install clustersentinel cluster-sentinel/clustersentinel \
--version 0.9.5 \
--namespace clustersentinel \
--create-namespace \
--set clustersentinel.serviceMonitor.enabled=true \
--set prometheusRule.enabled=true
Генерация токена для MCP доступна через kubectl, а сам токен сохраняется в секрете с политикой helm.sh/resource-policy: keep, чтобы не ротироваться при обновлениях.
Почему это важно
Интеграция MCP в инфраструктурные инструменты открывает путь к автономному мониторингу. AI-агенты могут напрямую запрашивать историю событий, анализировать причины падений подов или проверять соответствие состояния кластера политикам безопасности, не требуя написания кастомных парсеров логов. Использование SQLite обеспечивает легковесность и простоту бэкапа по сравнению с тяжелыми базами данных.
Источник: Github ↗
