K8sGPT-operator#

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

Основные задачи и возможности
  • Автоматическое развертывание и управление K8sGPT:

    Позволяет устанавливать, настраивать и управлять жизненным циклом K8sGPT внутри кластера с помощью Kubernetes CRD (Custom Resource Definitions).

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

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

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

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

  • Результаты диагностики в виде Kubernetes-манифестов:

    Результаты сканирования выводятся в формате YAML, что позволяет легко интегрировать их в CI/CD или системы мониторинга.

Примечание

K8sGPT-operator устанавливается по умолчанию с компонентом AIOps.

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

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

interplex - настройка распределенного кеша для оператора k8sgpt#

Параметр

Описание

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

interplex.enabled

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

false

serviceMonitor - конфигурация ServiceMonitor для интеграции с Prometheus#

Параметр

Описание

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

serviceMonitor.enabled

Включение создания ресурса ServiceMonitor для автоматического обнаружения метрик Prometheus

false

serviceMonitor.additionalLabels

Дополнительные метки для добавления к ресурсу ServiceMonitor при интеграции с кастомными конфигурациями Prometheus

{}

controllerManager - параметры Deployment контроллер-менеджера оператора#

Параметр

Описание

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

controllerManager.annotations

Дополнительные аннотации для развертывания контроллера

{}

controllerManager.kubeRbacProxy.containerSecurityContext.allowPrivilegeEscalation

Разрешить повышение привилегий для Kube-rbac-proxy

false

controllerManager.kubeRbacProxy.containerSecurityContext.capabilities.drop

Список capabilities для удаления

- ALL

controllerManager.kubeRbacProxy.image.repository

Репозиторий образа Kube-rbac-proxy

{{ .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.21.0

controllerManager.kubeRbacProxy.resources.limits.cpu

Лимит CPU для Kube-rbac-proxy

500m

controllerManager.kubeRbacProxy.resources.limits.memory

Лимит памяти для Kube-rbac-proxy

128Mi

controllerManager.kubeRbacProxy.resources.requests.cpu

Запрос CPU для Kube-rbac-proxy

5m

controllerManager.kubeRbacProxy.resources.requests.memory

Запрос памяти для Kube-rbac-proxy

64Mi

controllerManager.manager.sinkWebhookTimeout

Время ожидания для webhook-запросов

30s

controllerManager.manager.enableResultLogging

Включить логирование результатов анализа

false

controllerManager.manager.containerSecurityContext.allowPrivilegeEscalation

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

false

controllerManager.manager.containerSecurityContext.capabilities.drop

Список capabilities для удаления

- ALL

controllerManager.manager.image.repository

Репозиторий образа K8sGPT-operator

{{ .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

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

1

controllerManager.nodeSelector

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

{}

controllerManager.podSecurityContext.runAsNonRoot

Запуск контейнера от имени не-root пользователя

true

kubernetesClusterDomain - доменное имя Kubernetes кластера для внутренней маршрутизации#

Параметр

Описание

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

kubernetesClusterDomain

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

cluster.local

metricsService - конфигурация сервиса для экспорта метрик оператора#

Параметр

Описание

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

metricsService.type

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

ClusterIP

metricsService.ports[0].name

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

https

metricsService.ports[0].port

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

8443

metricsService.ports[0].protocol

Сетевой протокол для передачи метрик

TCP

metricsService.ports[0].targetPort

Целевой порт контейнера на который направляются запросы метрик

https