Victoria-metrics-operator#

Victoria-metrics-operator - это инструмент для управления VictoriaMetrics в DropApp, автоматизирующий развертывание, настройку и эксплуатацию компонентов мониторинга через пользовательские ресурсы (Custom Resources).

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

    Поддерживает автоматическое развертывание и настройку таких компонентов, как VMAgent, VMAlertmanager, VMAlert, VMAuth и VMCluster.

  • Поддержка кластерного режима VictoriaMetrics (VMCluster):

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

  • Высокая доступность (HA):

    Victoria-metrics-operator обеспечивает отказоустойчивость для всех компонентов стека мониторинга, включая автоматический failover и балансировку нагрузки.

  • Интеграция с Kubernetes API:

    Использует привычные CRD (Custom Resource Definitions), что позволяет управлять VictoriaMetrics через стандартные Kubernetes-манифесты.

Примечание

Victoria-metrics-operator устанавливается по умолчанию с компонентом Monitoring.

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

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

image - конфигурация образа оператора#

Параметр

Описание

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

image.registry

Реестр образов оператора

""

image.repository

Репозиторий образа оператора

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

image.tag

Тег образа оператора

v0.53.0

image.pullPolicy

Политика загрузки образа

IfNotPresent

crds - управление Custom Resource Definitions#

Параметр

Описание

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

crds.enabled

Управляет созданием CRD. Отключает создание CRD только в сочетании с crds.plain: false

true

crds.plain

Определяет, создавать обычные или шаблонные CRD. При false все CRD отрисовываются из шаблонов, при true - неизменяемы и требуют ручного обновления

false

crds.cleanup.enabled

Указывает Helm очистить все vm ресурсы в namespace этого релиза при удалении

false

crds.cleanup.image.repository

Репозиторий образа для задачи очистки CRD

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

crds.cleanup.image.tag

Тег образа для задачи очистки CRD

v1.27.16

crds.cleanup.image.pullPolicy

Политика загрузки образа для очистки

IfNotPresent

crds.cleanup.resources.limits.cpu

Лимит CPU для задачи очистки

500m

crds.cleanup.resources.limits.memory

Лимит памяти для задачи очистки

256Mi

crds.cleanup.resources.requests.cpu

Запрос CPU для задачи очистки

100m

crds.cleanup.resources.requests.memory

Запрос памяти для задачи очистки

56Mi

replicaCount - количество реплик оператора#

Параметр

Описание

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

replicaCount

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

1

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

Параметр

Описание

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

imagePullSecrets

Секреты для загрузки образов

[]

nameOverride - переопределение имени чарта#

Параметр

Описание

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

nameOverride

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

""

fullnameOverride - переопределение полного имени ресурсов#

Параметр

Описание

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

fullnameOverride

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

""

logLevel - уровень логирования оператора#

Параметр

Описание

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

logLevel

Уровень логирования VM operator. Возможные значения: info и error

info

allowedMetricsEndpoints - разрешенные endpoint метрик#

Параметр

Описание

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

allowedMetricsEndpoints

Список разрешенных endpoint для сбора метрик

["/metrics", "/metrics/resources"]

rbac - настройки контроля доступа#

Параметр

Описание

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

rbac.create

Определяет, создавать ли RBAC-ресурсы

true

rbac.aggregatedClusterRoles.enabled

Создание агрегированных clusterRoles для CRD readonly и admin разрешений

true

rbac.aggregatedClusterRoles.labels.view.rbac.authorization.k8s.io/aggregate-to-view

Метки для role-просмотра

true

rbac.aggregatedClusterRoles.labels.admin.rbac.authorization.k8s.io/aggregate-to-admin

Метки для admin role

true

podSecurityContext - контекст безопасности pod#

Параметр

Описание

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

podSecurityContext.enabled

Включение контекста безопасности pod

true

podSecurityContext.fsGroup

Группа файловой системы для pod

2000

podSecurityContext.runAsNonRoot

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

true

podSecurityContext.runAsUser

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

1000

securityContext - контекст безопасности контейнера#

Параметр

Описание

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

securityContext.enabled

Включение контекста безопасности для серверных pods

true

securityContext.allowPrivilegeEscalation

Разрешение повышения привилегий

false

securityContext.capabilities.drop

Отключаемые capabilities

["ALL"]

securityContext.readOnlyRootFilesystem

Корневая файловая система только для чтения

true

operator - настройки функций оператора#

Параметр

Описание

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

operator.disable_prometheus_converter

По умолчанию оператор конвертирует объекты Prometheus-operator

false

operator.prometheus_converter_add_argocd_ignore_annotations

Compare-options и sync-options для объектов Prometheus, конвертируемых оператором для правильного использования с ArgoCD

false

operator.enable_converter_ownership

Включает ссылку владения для конвертированных объектов prometheus-operator

false

operator.useCustomConfigReloader

Включает пользовательский config-reloader, встроенный в оператор. Должен уменьшить время синхронизации конфигурации VMAgent и VMAuth

false

operator.configReloaderImage.repository

Репозиторий образа config-reloader

{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-victoriametrics-operator/config-reloader

operator.configReloaderImage.tag

Тег образа config-reloader

v0.53.0

watchNamespaces - отслеживаемые namespaces#

Параметр

Описание

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

watchNamespaces

По умолчанию оператор отслеживает все namespace. Если нужно переопределить это поведение, укажите namespace

[]

serviceAccount - настройки сервисного аккаунта#

Параметр

Описание

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

serviceAccount.create

Определяет, создавать ли сервисный аккаунт

true

serviceAccount.name

Имя используемого сервисного аккаунта. Если не установлено и create=true, имя генерируется

""

serviceAccount.automountServiceAccountToken

Автомонтирование токена сервисного аккаунта

true

service - настройки сервиса#

Параметр

Описание

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

service.clusterIP

ClusterIP сервиса

""

service.externalIPs

Внешние IP сервиса

""

service.loadBalancerIP

IP балансировщика нагрузки сервиса

""

service.loadBalancerSourceRanges

Диапазоны источников для балансировщика нагрузки

[]

service.type

Тип сервиса

ClusterIP

service.healthCheckNodePort

Порт проверки здоровья для сервиса

""

service.externalTrafficPolicy

Политика внешнего трафика сервиса

""

service.ipFamilyPolicy

Политика IP-семейств сервиса

""

service.ipFamilies

Список IP-семейств сервиса

[]

service.servicePort

Порт сервиса

8080

service.webhookPort

Порт webhook сервиса

9443

podDisruptionBudget - бюджет прерывания pods#

Параметр

Описание

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

podDisruptionBudget.enabled

Включение PodDisruptionBudget

false

terminationGracePeriodSeconds - время graceful завершения#

Параметр

Описание

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

terminationGracePeriodSeconds

Время graceful завершения pod

30

resources - ресурсы оператора#

Параметр

Описание

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

resources.limits.cpu

Лимит CPU для оператора

120m

resources.limits.memory

Лимит памяти для оператора

320Mi

resources.requests.cpu

Запрос CPU для оператора

80m

resources.requests.memory

Запрос памяти для оператора

120Mi

priorityClassName - класс приоритета#

Параметр

Описание

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

priorityClassName

Имя класса приоритета

""

tolerations - tolerations pod#

Параметр

Описание

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

tolerations

Массив объектов tolerations

[]

topologySpreadConstraints - ограничения распределения топологии#

Параметр

Описание

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

topologySpreadConstraints

Ограничения распределения pods по топологии

[]

env - переменные окружения#

Параметр

Описание

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

env

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

[VM_VMALERTDEFAULT_CONFIGRELOADIMAGE, VM_VMALERTMANAGER_CONFIGRELOADERIMAGE]

envFrom - источники переменных окружения#

Параметр

Описание

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

envFrom

Альтернативный источник переменных окружения

[]

extraHostPathMounts - дополнительные hostPath монтирования#

Параметр

Описание

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

extraHostPathMounts

Дополнительные hostPath монтирования

[]

extraVolumes - дополнительные тома#

Параметр

Описание

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

extraVolumes

Дополнительные тома для pod

[]

extraVolumeMounts - дополнительные монтирования томов#

Параметр

Описание

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

extraVolumeMounts

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

[]

extraContainers - дополнительные контейнеры#

Параметр

Описание

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

extraContainers

Дополнительные контейнеры для запуска в pod с оператором

[]

hostNetwork - использование сети хоста#

Параметр

Описание

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

hostNetwork

Включение hostNetwork для развертывания оператора

false

admissionWebhooks - настройки валидационных webhook#

Параметр

Описание

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

admissionWebhooks.enabled

Включает валидационный webhook

false

admissionWebhooks.enabledCRDValidation.vmagent

Валидация CRD vmagent

true

admissionWebhooks.enabledCRDValidation.vmalert

Валидация CRD vmalert

true

admissionWebhooks.enabledCRDValidation.vmsingle

Валидация CRD vmsingle

true

admissionWebhooks.enabledCRDValidation.vmauth

Валидация CRD vmauth

true

admissionWebhooks.enabledCRDValidation.vmrule

Валидация CRD vmrule

true

admissionWebhooks.enabledCRDValidation.vmalertmanagerconfig

Валидация CRD vmalertmanagerconfig

true

admissionWebhooks.enabledCRDValidation.vmalertmanager

Валидация CRD vmalertmanager

true

admissionWebhooks.enabledCRDValidation.vmcluster

Валидация CRD vmcluster

true

admissionWebhooks.enabledCRDValidation.vmuser

Валидация CRD vmuser

true

admissionWebhooks.enabledCRDValidation.vlogs

Валидация CRD vlogs

true

admissionWebhooks.policy

Что делать, когда оператор недоступен для валидации запроса

Fail

admissionWebhooks.certManager.enabled

Включает создание и внедрение сертификата через Cert-manager

false

admissionWebhooks.certManager.issuer

При необходимости предоставьте собственный issuer

{}

admissionWebhooks.certManager.ca.commonName

Common name для Certificate Authority

ca.validation.victoriametrics

admissionWebhooks.certManager.ca.duration

Срок действия CA-сертификата

63800h0m0s

admissionWebhooks.certManager.ca.secretTemplate

Шаблон секрета для CA

{}

admissionWebhooks.certManager.ca.subject

Субъект для CA-сертификата

{}

admissionWebhooks.certManager.cert.commonName

Common name для сертификата

""

admissionWebhooks.certManager.cert.duration

Срок действия сертификата

45800h0m0s

admissionWebhooks.certManager.cert.secretTemplate

Шаблон секрета для сертификата

{}

admissionWebhooks.certManager.cert.subject

Субъект для сертификата

{}

admissionWebhooks.keepTLSSecret

Сохранение TLS-секрета

true

serviceMonitor - настройки мониторинга#

Параметр

Описание

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

serviceMonitor.enabled

Настройка мониторинга с помощью serviceScrape

false

serviceMonitor.vm

Создает VMServiceScrape если true и ServiceMonitor иначе

true

serviceMonitor.extraLabels.app.kubernetes.io/part-of

Дополнительная метка для мониторинга

dropapp-monitoring

serviceMonitor.extraLabels.prometheus

Метка prometheus для ServiceMonitor

k8s

serviceMonitor.annotations

Аннотации для ServiceMonitor

{}

serviceMonitor.relabelings

Правила relabeling для метрик

[]

serviceMonitor.scheme

Схема подключения для сбора метрик

""

serviceMonitor.interval

Интервал сбора метрик

""

serviceMonitor.scrapeTimeout

Время ожидания сбора метрик

""

probe - настройки проверок работоспособности#

Параметр

Описание

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

probe.readiness.httpGet.port

Порт для readiness probe

probe

probe.readiness.initialDelaySeconds

Начальная задержка для readiness probe

5

probe.readiness.periodSeconds

Период проверки readiness probe

15

probe.readiness.timeoutSeconds

Время ожидания readiness probe

5

probe.readiness.failureThreshold

Порог неудач readiness probe

3

probe.liveness.tcpSocket.port

Порт для liveness probe

probe

probe.liveness.initialDelaySeconds

Начальная задержка для liveness probe

5

probe.liveness.periodSeconds

Период проверки liveness probe

15

probe.liveness.timeoutSeconds

Время ожидания liveness probe

5

probe.liveness.failureThreshold

Порог неудач liveness probe

3

extraObjects - дополнительные объекты#

Параметр

Описание

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

extraObjects

Добавление дополнительных спецификаций динамически в этот chart

[]