K8sGPT#

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

ai - настройки интеграции с искусственным интеллектом#

Параметр

Описание

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

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 - настройки Docker образа#

Параметр

Описание

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

image.repository

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

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

image.tag

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

v0.3.41-master

imagePullPolicy - политика загрузки образа#

Параметр

Описание

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

imagePullPolicy

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

IfNotPresent

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

Параметр

Описание

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

noCache

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

false

filters - фильтры ресурсов для анализа#

Параметр

Описание

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

filters

Фильтр для анализа ресурсов типа Deployment

Deployment

filters

Фильтр для анализа ресурсов типа Pod

Pod

filters

Фильтр для анализа ресурсов типа DaemonSet

DaemonSet

filters

Фильтр для анализа ресурсов типа StatefulSet

StatefulSet

filters

Фильтр для анализа ресурсов типа Service

Service

filters

Фильтр для анализа ресурсов типа Node

Node

filters

Фильтр для анализа ресурсов типа Job

Job

filters

Фильтр для анализа ресурсов типа CronJob

CronJob

filters

Фильтр для анализа ресурсов типа ReplicaSet

ReplicaSet

sink - настройки вывода результатов#

Параметр

Описание

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

sink

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

{}

integrations - интеграции с внешними инструментами#

Параметр

Описание

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

integrations

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

{}

extraOptions - дополнительные опции#

Параметр

Описание

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

extraOptions

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

{}

kubeconfig - конфигурация доступа к кластеру#

Параметр

Описание

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

kubeconfig

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

{}

nodeSelector - селектор узлов#

Параметр

Описание

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

nodeSelector

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

{}

remoteCache - удаленное кеширование#

Параметр

Описание

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

remoteCache

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

{}

resources - ресурсы для подов#

Параметр

Описание

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

resources

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

{}

imagePullSecrets - секреты для загрузки образов#

Параметр

Описание

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

imagePullSecrets

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

[]