Использование консольных ИИ-агентов вроде Claude Code для обслуживания инфраструктуры стремительно набирает популярность среди DevOps-инженеров. Однако прямое взаимодействие языковой модели с кластером Kubernetes через стандартный CLI таит в себе скрытую проблему: нерациональный расход контекстного окна.
Обычный запуск команд kubectl describe pod или kubectl logs для высоконагруженного сервиса возвращает тысячи строк неструктурированного текста. Загромождение контекста сырыми логами не только многократно увеличивает стоимость запросов к API нейросети, но и ухудшает качество анализа: модель начинает терять ключевые детали аварии среди служебного шума.
Открытый проект kstack от команды Kubetail предлагает элегантное решение этой проблемы, выступая интеллектуальным адаптером между агентом и кластером.
Делегирование локальным утилитам: как устроен kstack
Вместо того чтобы скармливать агенту гигабайты нефильтрованных данных, kstack делегирует сбор информации проверенным консольным утилитам, уже установленным в системе. Инструмент выполняет предварительную фильтрацию и агрегацию вывода, передавая языковой модели только компактные выжимки с сутью инцидента.
Пакет объединяет четыре специализированных инструмента:
- Kubetail: параллельный сбор и интеллектуальная группировка логов по нескольким подам и контейнерам в рамках одной рабочей сессии.
- Trivy: локальное сканирование манифестов рабочей нагрузки и образов контейнеров на наличие уязвимостей (CVE) и ошибок в настройках безопасности.
- Pluto: аудит манифестов на использование устаревших (deprecated) версий Kubernetes API перед плановым обновлением кластера.
- Helm: автоматический анализ истории релизов, статуса хуков и диффов конфигурационных чартов.
Кроме того, kstack умеет динамически адаптироваться под инфраструктуру кластера. Если в процессе диагностики обнаруживается сетевой плагин Cilium или Service Mesh на базе Istio, инструмент автоматически переключается на вызовы их специализированных CLI-команд, анализируя сквозные сетевые политики и mTLS-соединения на уровне ядра Linux.
Установка и конфигурация файла инструкций CLAUDE.md
Для интеграции навыков в рабочее окружение достаточно загрузить установочный скрипт, который автоматически добавит правила вызова в конфигурационный файл проекта:
# Глобальная установка навыков kstack в систему
curl -sS https://kstack.sh/install | bash
# Или локальная интеграция в текущий каталог проекта
curl -sS https://kstack.sh/install | bash -s -- --local
Скрипт формирует или дополняет файл инструкций CLAUDE.md, задавая четкие границы работы агента и обучая его вызывать компактные команды-обертки вместо тяжелого kubectl:
<!-- Фрагмент конфигурации CLAUDE.md для проекта инфраструктуры -->
## Kubernetes Skill Pack (kstack)
При диагностике кластера используй специализированные команды навыков:
- Не запускай `kubectl logs` напрямую — используй `/kstack-logs` для агрегации через Kubetail.
- Для расследования аварий вызывай `/kstack-investigate --namespace <ns>`.
- Для проверки безопасности манифестов перед деплоем запускай `/kstack-audit-security`.
Все команды выполняются строго в режиме чтения без флагов принудительного изменения ресурсов.
Практический сценарий расследования CrashLoopBackOff
Рассмотрим, как выглядит реальная сессия расследования аварии пода в диалоге с агентом:
Инженер: Под auth-service в неймспейсе production постоянно падает. Выясни причину.
Claude Code:
Запускаю анализ инцидента через kstack...
> /kstack-investigate auth-service --namespace production
Результат агрегации Kubetail и Kube-Events:
- Статус: CrashLoopBackOff (код завершения 137: OOMKilled)
- Предыдущий перезапуск: 42 секунды назад
- Потребление памяти: достигнут лимит 256Mi при инициализации кэша
- Последняя запись в stderr: "fatal error: runtime: out of memory"
Рекомендация:
Сервис аварийно завершается из-за нехватки памяти (OOM). Для стабилизации работы необходимо увеличить spec.containers[0].resources.limits.memory в Helm-чарте до 512Mi.
Благодаря предварительной фильтрации агент потратил менее 400 токенов контекста вместо 15 000 токенов, которые потребовались бы при выгрузке полного лога контейнера.
Все команды kstack по умолчанию работают в режиме строгого чтения (read-only) и уважают права текущего контекста kubeconfig. Помимо Claude Code, пакет умеет автоматически регистрироваться в окружениях OpenAI Codex, Cursor и OpenCode.
Использование kstack превращает консольного ИИ-агента в быстрого и экономичного помощника инженера по надежности (SRE).
