K8sGPT-operator#

K8sGPT Operator – оператор, предназначенный для автоматизации развертывания и управления жизненным циклом «K8sGPT». Он позволяет интегрировать K8sGPT в кластер как декларативно управляемый компонент, обеспечивая непрерывную диагностику и анализ проблем в реальном времени.

Основные задачи и возможности
  • Автоматизация жизненного цикла: установка, настройка и управление инстансами K8sGPT с помощью Custom Resource Definitions (CRD).

  • Обеспечение непрерывной диагностики: управление конфигурацией анализаторов и расписаний сканирования для своевременного выявления аномалий и ошибок конфигурации.

  • Конфигурирование интеграций: декларативная настройка экспорта результатов анализа во внешние системы наблюдаемости (например, Prometheus и Grafana).

  • Управление результатами: представление итогов сканирования в виде Kubernetes-манифестов (Custom Resources), что упрощает их интеграцию в CI/CD-пайплайны и системы мониторинга.

Примечание

K8sGPT Operator устанавливается по умолчанию в составе «AIOps».

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

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

interplex – распределенный кеш#

Параметр

Описание

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

interplex.enabled

Активация распределенного кеша Interplex для координации экземпляров оператора

false

dynamicRBAC – динамическое управление RBAC#

Параметр

Описание

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

dynamicRBAC.enabled

Включение создания оператором ресурсов ServiceAccount, ClusterRole и ClusterRoleBinding в динамическом режиме для каждого управляемого ресурса K8sGPT. При отключении используются ресурсы, предварительно созданные на основе Helm-шаблонов

true

serviceMonitor – параметры ServiceMonitor#

Параметр

Описание

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

serviceMonitor.enabled

Создание ServiceMonitor для сбора метрик

false

serviceMonitor.additionalLabels

Дополнительные метки для ServiceMonitor

{}

grafanaDashboard – панель управления Grafana#

Параметр

Описание

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

grafanaDashboard.enabled

Создание объекта ConfigMap с дашбордом Grafana для визуализации метрик оператора

false

grafanaDashboard.folder.annotation

Аннотация для определения каталога Grafana, содержащего дашборд

grafana_folder

grafanaDashboard.folder.name

Имя каталога Grafana для размещения дашборда

ai

grafanaDashboard.label.key

Ключ метки для обнаружения дашборда Grafana

grafana_dashboard

grafanaDashboard.label.value

Значение метки для обнаружения дашборда Grafana

"1"

grafanaDashboard.grafanaOperator.enabled

Создание GrafanaDashboard для интеграции с Grafana Operator

false

grafanaDashboard.grafanaOperator.matchLabels

Метки для выбора экземпляра Grafana, с которым связывается дашборд

dashboards: grafana

controllerManager – контроллер-менеджер#

Параметр

Описание

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

controllerManager.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

controllerManager.kubeRbacProxy.containerSecurityContext.allowPrivilegeEscalation

Активация разрешения на эскалацию привилегий в контейнере

false

controllerManager.kubeRbacProxy.containerSecurityContext.capabilities.drop

Список возможностей (capabilities), отзываемых у контейнера

- ALL

controllerManager.kubeRbacProxy.image.repository

Путь к репозиторию контейнерного образа kube-rbac-proxy с поддержкой шаблонов Helm

'{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-kube-rbac-proxy/kube-rbac-proxy'

controllerManager.kubeRbacProxy.image.tag

Тег образа kube-rbac-proxy

v0.22.1

controllerManager.kubeRbacProxy.resources.limits.cpu

Ограничение ресурсов CPU для контейнера

500m

controllerManager.kubeRbacProxy.resources.limits.memory

Ограничение ресурсов памяти для контейнера

128Mi

controllerManager.kubeRbacProxy.resources.requests.cpu

Запрашиваемые ресурсы CPU для контейнера

5m

controllerManager.kubeRbacProxy.resources.requests.memory

Запрашиваемые ресурсы памяти для контейнера

64Mi

controllerManager.manager.sinkWebhookTimeout

Тайм-аут ожидания обработки запросов вебхука

30s

controllerManager.manager.enableResultLogging

Активация логирования результатов анализа

false

controllerManager.manager.containerSecurityContext.allowPrivilegeEscalation

Активация разрешения на эскалацию привилегий в контейнере

false

controllerManager.manager.containerSecurityContext.capabilities.drop

Список возможностей (capabilities), отзываемых у контейнера

- ALL

controllerManager.manager.image.repository

Путь к репозиторию контейнерного образа K8sGPT Operator с поддержкой шаблонов Helm

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

controllerManager.manager.image.tag

Тег образа K8sGPT Operator

v0.2.27

controllerManager.manager.resources.limits.cpu

Ограничение ресурсов CPU для контейнера

500m

controllerManager.manager.resources.limits.memory

Ограничение ресурсов памяти для контейнера

128Mi

controllerManager.manager.resources.requests.cpu

Запрашиваемые ресурсы CPU для контейнера

10m

controllerManager.manager.resources.requests.memory

Запрашиваемые ресурсы памяти для контейнера

64Mi

controllerManager.replicas

Количество реплик pod

1

controllerManager.nodeSelector

Селектор узлов для планирования pod

{}

controllerManager.podSecurityContext.runAsNonRoot

Запуск контейнера от имени пользователя без административных полномочий

true

kubernetesClusterDomain – домен кластера#

Параметр

Описание

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

kubernetesClusterDomain

Домен кластера Kubernetes для внутренних DNS-запросов

cluster.local

metricsService – сервис экспорта метрик#

Параметр

Описание

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

metricsService.ports[0].name

Имя порта сервиса метрик для идентификации в конфигурациях мониторинга

https

metricsService.ports[0].port

Порт сервиса для доступа к метрикам внутри кластера

8443

metricsService.ports[0].protocol

Протокол передачи метрик

TCP

metricsService.ports[0].targetPort

Порт контейнера для направления запросов метрик

https

metricsService.type

Тип сервиса Kubernetes для экспорта метрик

ClusterIP