K8sGPT#

K8sGPT - это инструмент, сочетающий искусственный интеллект и экспертные знания SRE, предназначенный для диагностики и устранения проблем в Kubernetes-кластерах. Он анализирует состояние кластера и предоставляет результаты на понятном языке, помогая разработчикам и операторам быстрее находить и решать проблемы.

Основные задачи и возможности
  • Диагностика состояния кластера:

    Сканирует кластер и выявляет ошибки в состоянии pod, Deployment, Service, политик безопасности и других объектов Kubernetes.

  • Интеграция ИИ для анализа и интерпретации данных:

    Использует генеративные модели ИИ для упрощения и уточнения выводов, делая их более понятными и информативными для пользователей.

  • Поддержка естественного языка (NLP):

    Предоставляет результаты анализа на простом английском языке, что позволяет даже новичкам быстро понять суть проблемы.

  • Автоматизация поиска проблем:

    Позволяет автоматически проверять кластер по заданному расписанию или вручную, обеспечивая непрерывное наблюдение за его состоянием.

  • Работа с множеством анализаторов:

    Включает в себя преднастроенные анализаторы для разных компонентов Kubernetes, которые можно включать или отключать в зависимости от потребностей.

  • Непрерывная диагностика состояния кластера:

    K8sGPT сканирует кластер и выявляет потенциальные проблемы, такие как неработающие pod, ошибки конфигурации и другие аномалии, используя заранее определенные анализаторы.

  • Интеграция с внешними системами наблюдаемости:

    Обеспечивает связь с такими инструментами, как Prometheus и Grafana, для отправки результатов анализа и визуализации проблем.

Примечание

K8sGPT устанавливается по умолчанию с компонентом AIOps, в результате создается один CR K8sGPT с именем dapp-sre-ai-agent в пространстве имен dapp-aiops. При этом, пользователь может создавать и другие ресурсы K8sGPT напрямую, уже без участия инструмента K8sGPT.

Конфигурация values#

Значения можно переопределить через редактирование инструмента с именем k8sgpt и указанием нужных values в spec.values. Общее описание конфигурации values для инструментов описано в разделе «Конфигурации инструментов дополнительных компонентов».

ai - настройки искусственного интеллекта для анализа Kubernetes ресурсов#

Параметр

Описание

Значение по умолчанию

ai.enabled

Включение/отключение функций AI в K8sGPT. При включении активируются возможности анализа с использованием ИИ

true

ai.model

Модель искусственного интеллекта для анализа. Поддерживаются различные модели: gpt-3.5-turbo, gpt-4, noopmodel и другие

noopmodel

ai.backend

Бэкенд для подключения к AI-сервисам. Доступные варианты: openai, localai, azureopenai, cohere, amazonbedrock, googlegem и другие

localai

ai.secret

Секрет для аутентификации с AI-провайдером. Содержит API-ключи и другие учетные данные

{}

ai.language

Язык для получения объяснений от AI. Поддерживаются различные языки включая русский, английский, французский и другие

russian

analysis - параметры периодического сканирования кластера#

Параметр

Описание

Значение по умолчанию

analysis.interval

Интервал выполнения анализа кластера. Определяет частоту автоматического сканирования (например: 30s, 5m, 1h)

5m

customAnalyzers - пользовательские анализаторы для расширения функционала#

Параметр

Описание

Значение по умолчанию

customAnalyzers

Список пользовательских анализаторов для расширения функциональности K8sGPT. Позволяет добавлять специализированные проверки

[]

image - конфигурация образа основного контейнера k8sgpt#

Параметр

Описание

Значение по умолчанию

image.repository

Полный путь к образу K8sGPT в реестре Docker. Использует шаблонизацию для динамического построения пути

{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-k8sgpt/k8sgpt

image.tag

Тег версии образа K8sGPT для развертывания

v0.4.31

imagePullPolicy - стратегия загрузки контейнерных образов#

Параметр

Описание

Значение по умолчанию

imagePullPolicy

Политика загрузки образа Docker. Возможные значения: Always, IfNotPresent, Never

IfNotPresent

gpt2giga - настройки компонента интеграции с GigaChat#

Параметр

Описание

Значение по умолчанию

gpt2giga.image.repository

Репозиторий образа конвертера запросов GPT в формат GigaChat

{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-gpt2giga/gpt2giga

gpt2giga.image.tag

Тег образа компонента gpt2giga для управления версиями и откатом

v0.0.14

noCache - управление кешированием результатов анализа#

Параметр

Описание

Значение по умолчанию

noCache

Отключение кеширования результатов анализа. При true результаты не кешируются

false

filters - перечень типов ресурсов Kubernetes для анализа#

Параметр

Описание

Значение по умолчанию

filters

Список ресурсов Kubernetes подлежащих проверке анализатором, включает контроллеры и рабочие нагрузки

- Deployment
- Pod
- DaemonSet
- StatefulSet
- Service
- Node
- Job
- CronJob
- ReplicaSet

sink - конфигурация экспорта результатов во внешние системы#

Параметр

Описание

Значение по умолчанию

sink

Конфигурация для отправки результатов анализа во внешние системы (Slack, webhook и другие)

{}

integrations - интеграции со сторонними платформами#

Параметр

Описание

Значение по умолчанию

integrations

Настройки интеграций с инструментами мониторинга и безопасности (Prometheus, Trivy и другие)

{}

extraOptions - дополнительные параметры тонкой настройки k8sgpt#

Параметр

Описание

Значение по умолчанию

extraOptions

Дополнительные параметры конфигурации для K8sGPT, не входящие в основные настройки

{}

kubeconfig - параметры подключения к Kubernetes API#

Параметр

Описание

Значение по умолчанию

kubeconfig

Настройки для подключения к кластеру Kubernetes, включая пути к kubeconfig-файлам. По умолчанию работает в режиме in-cluster, то есть, в том кластере DropApp, куда установлен компонент AIOps

{}

nodeSelector - селектор узлов для планирования пода#

Параметр

Описание

Значение по умолчанию

nodeSelector

Селектор узлов для размещения pod K8sGPT. Позволяет ограничить узлы для развертывания

{}

remoteCache - настройки распределенного кеша#

Параметр

Описание

Значение по умолчанию

remoteCache

Настройки удаленного кеширования результатов анализа для повышения производительности

{}

resources - лимиты ресурсов для контейнера k8sgpt#

Параметр

Описание

Значение по умолчанию

resources

Ограничения ресурсов CPU и памяти для pod K8sGPT (requests/limits)

{}

gigaChatConfig - параметры интеграции с GigaChat API#

Параметр

Описание

Значение по умолчанию

gigaChatConfig

Специфичные настройки аутентификации и конфигурации для работы с API GigaChat

{}

imagePullSecrets - секреты для приватных репозиториев#

Параметр

Описание

Значение по умолчанию

imagePullSecrets

Список секретов для аутентификации в приватных реестрах Docker при загрузке образов

[]