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 - определить настройки контейнерного образа victoria-metrics-operator
configReloader - определить настройки образа config-reloader
replicaCount - определить количество реплик victoria-metrics-operator
imagePullSecrets - определить секреты для загрузки образов из приватных реестров
nameOverride - определить сокращенное переопределение имени ресурсов
fullnameOverride - определить полное переопределение имени ресурсов
logLevel - определить уровень логирования victoria-metrics-operator
allowedMetricsEndpoints - определить список разрешенных metrics endpoint
rbac - определить настройки RBAC-ресурсов victoria-metrics-operator
extraLabels - определить дополнительные метки для всех ресурсов
annotations - определить дополнительные аннотации для всех ресурсов
podSecurityContext - определить pod-level securityContext для оператора
securityContext - определить container-level securityContext для оператора
operator - определить функциональные настройки victoria-metrics-operator
watchNamespaces - определить список namespace для наблюдения оператором
serviceAccount - определить настройки ServiceAccount для оператора
service - определить настройки Service для victoria-metrics-operator
[podDisruptionBudget - определить настройки PodDisruptionBudget для оператора](#podd disruptionbudget—определить-настройки-podd disruptionbudget-для-оператора)
terminationGracePeriodSeconds - определить timeout корректного завершения pod
lifecycle - определить lifecycle hooks для контейнера оператора
resources - определить requests и limits для контейнера оператора
nodeSelector - определить правила выбора узлов для pod оператора
priorityClassName - определить PriorityClass для pod оператора
topologySpreadConstraints - определить ограничения распределения pod по топологии кластера
extraArgs - определить дополнительные аргументы запуска оператора
envFrom - определить альтернативные источники переменных окружения
extraHostPathMounts - определить дополнительные hostPath mounts для pod оператора
extraVolumes - определить дополнительные volumes для pod оператора
extraVolumeMounts - определить дополнительные volumeMounts для контейнера оператора
extraContainers - определить дополнительные контейнеры в pod оператора
hostNetwork - определить использование hostNetwork для pod оператора
shareProcessNamespace - определить общий process namespace между контейнерами pod
admissionWebhooks - определить настройки admission webhooks и TLS для валидации ресурсов
serviceMonitor - определить настройки мониторинга оператора через VMServiceScrape или ServiceMonitor
probe - определить настройки readiness, liveness и startup probes
extraObjects - определить дополнительные Kubernetes-объекты для развертывания
image - определить настройки контейнерного образа victoria-metrics-operator#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Реестр контейнерного образа оператора |
|
|
Репозиторий контейнерного образа оператора |
|
|
Тег контейнерного образа оператора, переопределяющий Chart.AppVersion |
|
|
Вариант контейнерного образа, например scratch |
|
|
Политика загрузки контейнерного образа оператора |
|
configReloader - определить настройки образа config-reloader#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Реестр контейнерного образа config-reloader |
|
|
Репозиторий контейнерного образа config-reloader |
|
|
Тег контейнерного образа config-reloader |
|
crds - определить настройки создания и обновления CRD#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Управляет созданием CRD; отключение корректно работает только вместе с |
|
|
Определяет способ создания CRD: immutable plain CRD или templated CRD |
|
|
Дополнительные аннотации для CRD при использовании templated CRD |
|
|
Удалять vm-ресурсы в namespace релиза при uninstall chart |
|
|
Репозиторий образа Job для очистки CRD-ресурсов |
|
|
Тег образа Job очистки, по умолчанию соответствующий версии Kubernetes API |
|
|
Политика загрузки образа Job очистки |
|
|
CPU limit для Job очистки |
|
|
Memory limit для Job очистки |
|
|
CPU request для Job очистки |
|
|
Memory request для Job очистки |
|
|
Включает Job обновления CRD |
|
|
Добавляет аргумент |
|
|
Репозиторий образа busybox для Job обновления CRD |
|
|
Тег образа busybox для Job обновления CRD |
|
|
Политика загрузки образа busybox для Job обновления CRD |
|
|
Репозиторий образа kubectl для Job обновления CRD |
|
|
Тег образа kubectl для Job обновления CRD |
|
|
Политика загрузки образа kubectl для Job обновления CRD |
|
|
Дополнительные переменные окружения для Job обновления CRD |
|
|
Ресурсные requests и limits для Job обновления CRD. Пример конфигурации: |
|
|
Дополнительные volumes для Job обновления CRD |
|
|
Дополнительные volumeMounts для Job обновления CRD |
|
|
Node selector для pod Job обновления CRD |
|
|
Affinity-правила для pod Job обновления CRD. Пример конфигурации: |
|
|
Список tolerations для Job обновления CRD. Пример конфигурации: |
|
|
Ограничения распределения pod Job обновления CRD по топологии кластера. Пример конфигурации: |
|
|
Дополнительные метки для Job обновления CRD |
|
|
Дополнительные аннотации для Job обновления CRD |
|
|
Дополнительные метки для pod Job обновления CRD |
|
|
Дополнительные аннотации для pod Job обновления CRD |
|
|
Создавать отдельный ServiceAccount для Job обновления CRD |
|
|
Имя ServiceAccount для Job обновления CRD; пустое значение означает автогенерацию имени |
|
|
Аннотации для ServiceAccount Job обновления CRD |
|
|
Метки для ServiceAccount Job обновления CRD |
|
|
Автоматически монтировать токен ServiceAccount в Job обновления CRD |
|
|
Разрешать повышение привилегий контейнеру Job обновления CRD |
|
|
Монтировать корневую файловую систему контейнера Job обновления CRD только для чтения |
|
|
Список Linux capabilities, удаляемых у контейнера Job обновления CRD |
|
|
Включает применение podSecurityContext для Job обновления CRD |
|
|
FSGroup для pod Job обновления CRD |
|
|
GID группы, от имени которой запускается pod Job обновления CRD |
|
|
Запускать pod Job обновления CRD от непривилегированного пользователя |
|
|
UID пользователя pod Job обновления CRD |
|
|
Тип seccomp-профиля для pod Job обновления CRD |
|
replicaCount - определить количество реплик victoria-metrics-operator#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Количество реплик Deployment оператора |
|
imagePullSecrets - определить секреты для загрузки образов из приватных реестров#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список секретов Kubernetes, используемых для pull контейнерных образов |
|
nameOverride - определить сокращенное переопределение имени ресурсов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределяет базовое имя ресурсов chart |
|
fullnameOverride - определить полное переопределение имени ресурсов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Полностью переопределяет итоговое имя ресурсов серверного компонента |
|
logLevel - определить уровень логирования victoria-metrics-operator#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Уровень логирования оператора; поддерживаются значения info и error |
|
allowedMetricsEndpoints - определить список разрешенных metrics endpoint#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список HTTP endpoint, с которых разрешена отдача метрик |
|
rbac - определить настройки RBAC-ресурсов victoria-metrics-operator#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создавать RBAC-ресурсы для работы оператора |
|
|
Создавать aggregated ClusterRole для read-only и admin прав на CRD |
|
|
Label для включения ClusterRole в aggregated role view |
|
|
Label для включения ClusterRole в aggregated role admin |
|
extraLabels - определить дополнительные метки для всех ресурсов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные метки, добавляемые ко всем ресурсам chart |
|
podLabels - определить дополнительные метки только для pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные метки, добавляемые только на pod оператора |
|
annotations - определить дополнительные аннотации для всех ресурсов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные аннотации, добавляемые ко всем ресурсам chart |
|
podSecurityContext - определить pod-level securityContext для оператора#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включает применение podSecurityContext для pod оператора |
|
|
FSGroup для pod оператора |
|
|
Запускать pod оператора от непривилегированного пользователя |
|
|
UID пользователя pod оператора |
|
securityContext - определить container-level securityContext для оператора#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включает применение securityContext для контейнера оператора |
|
|
Разрешать повышение привилегий в контейнере оператора |
|
|
Список Linux capabilities, удаляемых у контейнера оператора |
|
|
Монтировать корневую файловую систему контейнера оператора только для чтения |
|
operator - определить функциональные настройки victoria-metrics-operator#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Отключает конвертацию объектов prometheus-operator в объекты VictoriaMetrics |
|
|
Добавляет compare-options и sync-options аннотации ArgoCD для конвертированных prometheus-объектов |
|
|
Включает ownerReference для конвертированных объектов, чтобы victoria-metrics-объекты удалялись вместе с исходными prometheus-объектами |
|
|
Использовать встроенный кастомный config-reloader для более предсказуемой синхронизации конфигурации |
|
watchNamespaces - определить список namespace для наблюдения оператором#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список namespace, за которыми следит оператор; пустой список означает все namespace |
|
serviceAccount - определить настройки ServiceAccount для оператора#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создавать ServiceAccount для оператора |
|
|
Имя ServiceAccount; если не задано и создание включено, имя генерируется автоматически |
|
|
Автоматически монтировать токен ServiceAccount; при отключении токен нужно монтировать вручную |
|
service - определить настройки Service для victoria-metrics-operator#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Режим распределения трафика внутри Service |
|
|
Аннотации для Service оператора |
|
|
Метки для Service оператора |
|
|
Явно заданный ClusterIP для Service |
|
|
Список внешних IP-адресов для Service |
|
|
Выделенный IP-адрес для Service типа LoadBalancer |
|
|
Список CIDR-диапазонов, которым разрешен доступ к LoadBalancer |
|
|
Тип Kubernetes Service для оператора |
|
|
HealthCheck NodePort для внешнего балансировщика |
|
|
Политика обработки внешнего трафика для Service |
|
|
Политика выбора IP family для Service |
|
|
Список IP family для Service |
|
|
Порт Service оператора |
|
|
Порт webhook Service оператора |
|
podDisruptionBudget - определить настройки PodDisruptionBudget для оператора#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создавать PodDisruptionBudget для ограничения добровольных прерываний pod оператора |
|
|
Метки для ресурса PodDisruptionBudget |
|
terminationGracePeriodSeconds - определить timeout корректного завершения pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Время в секундах, отводимое на корректное завершение pod перед принудительной остановкой |
|
lifecycle - определить lifecycle hooks для контейнера оператора#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Lifecycle hooks контейнера оператора |
|
resources - определить requests и limits для контейнера оператора#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
CPU limit контейнера оператора |
|
|
Memory limit контейнера оператора |
|
|
CPU request контейнера оператора |
|
|
Memory request контейнера оператора |
|
nodeSelector - определить правила выбора узлов для pod оператора#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Node selector для размещения pod оператора |
|
priorityClassName - определить PriorityClass для pod оператора#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Имя PriorityClass, назначаемое podм оператора |
|
tolerations - определить tolerations для pod оператора#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список tolerations для размещения pod оператора на tainted-узлах |
|
affinity - определить affinity-правила для pod оператора#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Affinity и anti-affinity правила для размещения pod оператора |
|
topologySpreadConstraints - определить ограничения распределения pod по топологии кластера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список topology spread constraints для pod оператора |
|
extraArgs - определить дополнительные аргументы запуска оператора#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные аргументы командной строки для контейнера оператора |
|
env - определить переменные окружения для оператора#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переменные окружения для Deployment оператора. Пример конфигурации: |
|
envFrom - определить альтернативные источники переменных окружения#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Альтернативные источники env-переменных, например ConfigMap или Secret. Пример конфигурации: |
|
extraHostPathMounts - определить дополнительные hostPath mounts для pod оператора#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные hostPath mounts для pod оператора. Пример конфигурации: |
|
extraVolumes - определить дополнительные volumes для pod оператора#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные volumes для pod оператора. Пример конфигурации: |
|
extraVolumeMounts - определить дополнительные volumeMounts для контейнера оператора#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные volumeMounts для контейнера оператора. Пример конфигурации: |
|
extraContainers - определить дополнительные контейнеры в pod оператора#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список дополнительных контейнеров, запускаемых вместе с оператором. Пример конфигурации: |
|
hostNetwork - определить использование hostNetwork для pod оператора#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Запускать pod оператора в сетевом пространстве хоста |
|
shareProcessNamespace - определить общий process namespace между контейнерами pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включает общий process namespace между контейнерами одного pod, имеет смысл при использовании extraContainers |
|
admissionWebhooks - определить настройки admission webhooks и TLS для валидации ресурсов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включает validation webhook для ресурсов VictoriaMetrics |
|
|
Включает валидацию CRD vmagent |
|
|
Включает валидацию CRD vmalert |
|
|
Включает валидацию CRD vmanomaly |
|
|
Включает валидацию CRD vmsingle |
|
|
Включает валидацию CRD vmauth |
|
|
Включает валидацию CRD vmrule |
|
|
Включает валидацию CRD vmalertmanagerconfig |
|
|
Включает валидацию CRD vmalertmanager |
|
|
Включает валидацию CRD vmcluster |
|
|
Включает валидацию CRD vmuser |
|
|
Включает валидацию CRD vlagent |
|
|
Включает валидацию CRD vlogs |
|
|
Включает валидацию CRD vlsingle |
|
|
Включает валидацию CRD vlcluster |
|
|
Включает валидацию CRD vmservicescrape |
|
|
Включает валидацию CRD vmpodscrape |
|
|
Включает валидацию CRD vmnodescrape |
|
|
Включает валидацию CRD vmprobe |
|
|
Включает валидацию CRD vmstaticscrape |
|
|
Политика поведения API server, если webhook недоступен |
|
|
Создавать и инжектировать сертификаты через cert-manager |
|
|
Параметры существующего issuer cert-manager; при пустом значении будет создан self-signed issuer |
|
|
Шаблон секрета Certificate Authority для cert-manager |
|
|
Параметры subject для Certificate Authority |
|
|
Срок действия сертификата Certificate Authority |
|
|
Common Name сертификата Certificate Authority |
|
|
Шаблон секрета сертификата webhook |
|
|
Параметры subject для сертификата webhook |
|
|
Срок действия сертификата webhook |
|
|
Common Name сертификата webhook |
|
|
Сохранять TLS secret webhook при обновлениях и переразвертывании |
|
|
CA certificate для webhook при ручной настройке TLS |
Отсутствует |
|
Сертификат webhook при ручной настройке TLS |
Отсутствует |
|
Приватный ключ webhook при ручной настройке TLS |
Отсутствует |
serviceMonitor - определить настройки мониторинга оператора через VMServiceScrape или ServiceMonitor#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включает создание ресурса мониторинга для scrape метрик оператора |
|
|
Создавать VMServiceScrape при true и ServiceMonitor при false |
|
|
Дополнительный label для ресурса мониторинга, определяющий logical grouping |
|
|
Дополнительный label для выбора Prometheus instance |
|
|
Аннотации для VMServiceScrape или ServiceMonitor |
|
|
Правила relabeling для target’ов мониторинга |
|
|
Схема обращения к endpoint мониторинга, например http или https |
|
|
Интервал scrape метрик оператора |
|
|
Тайм-аут scrape метрик оператора |
|
|
TLS-конфигурация для мониторинга оператора |
|
|
Параметры basic auth для мониторинга оператора |
|
probe - определить настройки readiness, liveness и startup probes#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Порт readiness probe |
|
|
Задержка перед первой readiness probe после старта контейнера |
|
|
Интервал между readiness probe |
|
|
Тайм-аут одной readiness probe |
|
|
Количество неуспешных readiness probe до перевода контейнера в состояние NotReady |
|
|
Порт liveness probe по TCP |
|
|
Задержка перед первой liveness probe после старта контейнера |
|
|
Интервал между liveness probe |
|
|
Тайм-аут одной liveness probe |
|
|
Количество неуспешных liveness probe до перезапуска контейнера |
|
|
Параметры startup probe контейнера оператора |
|
extraObjects - определить дополнительные Kubernetes-объекты для развертывания#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список дополнительных Kubernetes-объектов, которые нужно развернуть вместе с chart |
|