K8sGPT-operator#

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

controllerManager - конфигурация основного контроллера#

Параметр

Описание

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

controllerManager.annotations

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

{}

controllerManager.replicas

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

1

controllerManager.nodeSelector

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

{}

controllerManager.podSecurityContext.runAsNonRoot

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

true

controllerManager.podSecurityContext.runAsUser

Идентификатор пользователя для запуска контейнера

65532

controllerManager.podSecurityContext.runAsGroup

Идентификатор группы для запуска контейнера

65532

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

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/dev/k8sgpt-operator

controllerManager.manager.image.tag

Тег образа K8sGPT-operator

v0.2.20-master

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

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

Параметр

Описание

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

kubernetesClusterDomain

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

cluster.local

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

Параметр

Описание

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

metricsService.type

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

ClusterIP

metricsService.ports

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

[{"name": "https", "port": 8443, "protocol": "TCP", "targetPort": "https"}]