Vector-agent#

Vector-agent - это высокопроизводительный агент для сбора, преобразования и отправки логов, метрик и других данных телеметрии. В режиме agent он развертывается на каждом узле кластера Kubernetes и используется для локального сбора данных с контейнеров и системных компонентов.

Основные задачи и возможности
  • Сбор логов с pod и контейнеров: Vector может собирать логи напрямую с контейнеров, фильтровать их и направлять в различные хранилища или системы анализа (например, Loki, Elasticsearch, S3 и др.).

  • Интеграция с Kubernetes API: Vector взаимодействует с API Kubernetes для получения метаданных о pod, контейнерах и узлах, что позволяет добавлять контекстную информацию к собранным данным.

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

  • Легковесность и производительность: написан на языке Rust, что делает его очень эффективным по сравнению с другими агентами, такими как Fluentd или Logstash.

  • Развертывание через DaemonSet: для равномерного покрытия всего кластера Vector обычно разворачивается как DaemonSet, чтобы работать на всех узлах и собирать данные локально.

  • Поддержка множества выходных целей: может отправлять данные в разные системы: от централизованных хранилищ (Elasticsearch, Loki) до брокеров сообщений (Kafka, NATS), облачных сервисов и конечных точек HTTP.

Примечание

Vector-agent устанавливается по умолчанию с компонентом logging. Для Vector-agent преднастроена интеграция с Vector-aggregator.

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

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

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

Параметр

Описание

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

nameOverride

Переопределение базового имени ресурсов чарта для генерации имен

""

fullnameOverride – полное переопределение имени чарта#

Параметр

Описание

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

fullnameOverride

Полное переопределение имени для всех создаваемых ресурсов чарта

""

role – роль экземпляра Vector#

Параметр

Описание

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

role

Роль экземпляра Vector.
Возможные значения: для роли Agent создается DaemonSet, для Aggregator – StatefulSet, для Stateless-Aggregator – Deployment

Agent

daemonSet – переопределение версии API для DaemonSet#

Параметр

Описание

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

daemonSet.apiVersion

Переопределение версии API для DaemonSet (действует для роли Agent)

""

statefulSet – переопределение версии API для StatefulSet#

Параметр

Описание

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

statefulSet.apiVersion

Переопределение версии API для StatefulSet (действует для роли Aggregator)

""

rollWorkload – пересоздание workload при изменении ConfigMap#

Параметр

Описание

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

rollWorkload

Активация добавления контрольной суммы сгенерированного ConfigMap в аннотации workload для инициирования rolling update при изменении конфигурации

true

rollWorkloadSecrets – пересоздание workload при изменении Secret#

Параметр

Описание

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

rollWorkloadSecrets

Активация добавления контрольной суммы сгенерированного Secret в аннотации workload для инициирования rolling update при изменении секрета

true

rollWorkloadExtraObjects – пересоздание workload при изменении extraObjects#

Параметр

Описание

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

rollWorkloadExtraObjects

Активация добавления контрольной суммы объектов из extraObjects в аннотации workload для инициирования rolling update при их изменении

true

commonLabels – общие метки для всех ресурсов#

Параметр

Описание

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

commonLabels

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

{}

image – параметры контейнерного образа#

Параметр

Описание

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

image.repository

Переопределение реестра и имени образа Vector

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

image.pullPolicy

Политика загрузки образа Vector.
Возможные значения: IfNotPresent, Always, Never

IfNotPresent

image.pullSecrets

Список ImagePullSecrets для доступа к приватным реестрам из pod Vector

[]

image.tag

Тег образа контейнера

v0.57.0

image.sha

SHA-хеш образа для проверки целостности

""

image.base

Базовый дистрибутив образа Vector. При указании заменяет суффикс базового дистрибутива в AppVersion, например distroless-libc на debian

""

replicas – количество реплик#

Параметр

Описание

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

replicas

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

1

hostAliases – псевдонимы хостов#

Параметр

Описание

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

hostAliases

Список псевдонимов хостов для добавления в /etc/hosts.
Пример конфигурации:

- ip: "127.0.0.1"
  hostnames:
  - "foo.local"
  - "bar.local"

[]

podManagementPolicy – политика управления pod#

Параметр

Описание

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

podManagementPolicy

Политика управления pod для StatefulSet (действует для роли Aggregator).
Возможные значения: OrderedReady или Parallel

OrderedReady

secrets – секреты для использования Vector#

Параметр

Описание

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

secrets.generic

Набор произвольных ключей и значений, добавляемых в Secret. Значения указываются в открытом виде без base64-кодирования. Обычно используется для учетных данных и параметров доступа.
Пример конфигурации:

my_variable: "my-secret-value"
datadog_api_key: "api-key"
awsAccessKeyId: "access-key"
awsSecretAccessKey: "secret"

{}

autoscaling – настройки автомасштабирования#

Параметр

Описание

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

autoscaling.enabled

Создание HorizontalPodAutoscaler. Применяется к ролям Aggregator и Stateless-Aggregator

false

autoscaling.external

Активация масштабирования внешним механизмом, например KEDA

false

autoscaling.annotations

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

{}

autoscaling.minReplicas

Минимальное количество реплик при автоматическом масштабировании

1

autoscaling.maxReplicas

Максимальное количество реплик при автоматическом масштабировании

10

autoscaling.targetCPUUtilizationPercentage

Целевой процент утилизации CPU для HPA Vector

80

autoscaling.targetMemoryUtilizationPercentage

Целевой процент утилизации памяти для HPA Vector

~

autoscaling.customMetric

Настройка пользовательской метрики для автомасштабирования.
Пример конфигурации:

- type: Pods
  pods:
    metric:
      name: utilization
    target:
      type: AverageValue
      averageValue: 95

{}

autoscaling.behavior

Раздельная настройка поведения scale-up и scale-down для HPA.
Пример конфигурации:

scaleDown:
  stabilizationWindowSeconds: 300

{}

podDisruptionBudget – ограничение одновременной недоступности pod#

Параметр

Описание

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

podDisruptionBudget.enabled

Включение PodDisruptionBudget

false

podDisruptionBudget.minAvailable

Минимальное количество pod, которое должно оставаться доступным после вытеснения (eviction)

1

podDisruptionBudget.maxUnavailable

Максимальное количество pod, которое может быть недоступно после вытеснения (eviction)

~

rbac – настройки RBAC (управление доступом на основе ролей)#

Параметр

Описание

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

rbac.create

Активация автоматического создания ресурсов RBAC

true

rbac.extraRules

Дополнительные правила Kubernetes RBAC, добавляемые в ClusterRole после стандартных правил чарта. Каждое правило должно соответствовать синтаксису правил для ClusterRole.
Пример конфигурации:

- apiGroups: [""]
  resources: ["nodes/metrics", "nodes/stats"]
  verbs: ["get"]

[]

psp – создание PodSecurityPolicy#

Параметр

Описание

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

psp.create

Создание ресурса PodSecurityPolicy для роли Agent (PodSecurityPolicy устарел, начиная с Kubernetes 1.21, и удален в 1.25)

false

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

Параметр

Описание

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

serviceAccount.create

Включение создания ServiceAccount

true

serviceAccount.annotations

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

{}

serviceAccount.name

Имя ServiceAccount. При пустом значении и включенном создании имя генерируется по шаблону fullname

~

serviceAccount.automountToken

Активация автоматического монтирования учетных данных API в ServiceAccount Vector

true

podAnnotations – аннотации pod Vector#

Параметр

Описание

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

podAnnotations

Аннотации, добавляемые на pod Vector

{}

podLabels – метки pod Vector#

Параметр

Описание

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

podLabels.vector.dev/exclude

Метка для pod Vector. Обычно используется для исключения логов Vector из сбора метрик

"true"

podPriorityClassName – имя PriorityClass#

Параметр

Описание

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

podPriorityClassName

Имя PriorityClass, назначаемое pod Vector

""

podHostNetwork – использование hostNetwork#

Параметр

Описание

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

podHostNetwork

Активация запуска pod Vector в сетевом пространстве узла

false

podSecurityContext – параметры контекста безопасности pod#

Параметр

Описание

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

podSecurityContext.runAsUser

UID пользователя, от имени которого запускаются контейнеры в pod Vector

0

podSecurityContext.runAsGroup

GID основной группы для контейнеров в pod Vector

10001

podSecurityContext.seccompProfile.type

Тип Seccomp-профиля для pod Vector

RuntimeDefault

workloadResourceAnnotations – аннотации workload-ресурса Vector#

Параметр

Описание

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

workloadResourceAnnotations

Аннотации для ресурса DaemonSet, Deployment или StatefulSet, которым разворачивается Vector

{}

securityContext – контекст безопасности контейнеров Vector#

Параметр

Описание

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

securityContext.privileged

Запуск контейнера Vector в привилегированном режиме. Требуется для создания каталогов в /var/lib/vector

true

securityContext.allowPrivilegeEscalation

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

true

securityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

securityContext.capabilities.drop

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

- ALL

command – команда запуска контейнера#

Параметр

Описание

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

command

Команда запуска контейнера, переопределяющая стандартный entrypoint образа контейнера

[]

args – аргументы запуска контейнера#

Параметр

Описание

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

args

Аргументы, переопределяющие стандартные аргументы запуска контейнера

- --config-dir
- "/etc/vector/"

env – параметры переменных окружения контейнера#

Параметр

Описание

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

env

Переменные окружения контейнера.
Пример конфигурации:

- name: MY_VARIABLE
  valueFrom:
    secretKeyRef:
      name: vector
      key: key
- name: AWS_ACCESS_KEY_ID
  valueFrom:
    secretKeyRef:
      name: vector
      key: key
- name: VECTOR_HOST
  valueFrom:
    fieldRef:
      fieldPath: spec.nodeName

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

Параметр

Описание

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

envFrom

Источники переменных окружения (Secret или ConfigMap) для pod.
Пример конфигурации:

- secretRef:
    name: vector

[]

containerPorts – порты контейнера Vector#

Параметр

Описание

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

containerPorts

Cписок портов контейнера с отключением автоматической генерации

[]

resources – запросы и ограничения ресурсов контейнера#

Параметр

Описание

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

resources

Запросы и ограничения ресурсов для контейнера.
Пример конфигурации:

requests:
  cpu: 200m
  memory: 256Mi
limits:
  cpu: 200m
  memory: 256Mi

{}

lifecycle – хуки жизненного цикла контейнера#

Параметр

Описание

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

lifecycle

Параметры lifecycle для контейнера.
Пример конфигурации:

preStop:
  exec:
    command:
    - /bin/sleep
    - "10"

{}

minReadySeconds – минимальное время готовности pod#

Параметр

Описание

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

minReadySeconds

Время в состоянии Ready, после которого pod считается доступным

0

updateStrategy – стратегия обновления ресурсов#

Параметр

Описание

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

updateStrategy

Стратегия обновления ресурса.
Пример конфигурации:

type: RollingUpdate
rollingUpdate:
  maxUnavailable: 1

{}

terminationGracePeriodSeconds – тайм-аут корректного завершения работы pod#

Параметр

Описание

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

terminationGracePeriodSeconds

Время, отведенное на корректное завершение работы pod

60

nodeSelector – селектор узлов для планирования pod#

Параметр

Описание

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

nodeSelector

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

{}

tolerations – параметры Toleration для pod#

Параметр

Описание

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

tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

- key: node-role.kubernetes.io/master
  operator: Exists
  effect: NoSchedule
- key: node-role.kubernetes.io/control-plane
  operator: Exists
  effect: NoSchedule
- key: dedicated
  operator: Equal
  value: ingress
  effect: NoSchedule
- key: dedicated
  operator: Equal
  value: infra
  effect: NoSchedule
- operator: Exists

affinity – правила привязки (affinity и anti-affinity) pod к узлам#

Параметр

Описание

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

affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

{}

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

Параметр

Описание

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

topologySpreadConstraints

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

[]

service – настройки Service#

Параметр

Описание

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

service.enabled

Активация создания Service

true

service.type

Тип Service.
Возможные значения: ClusterIP, NodePort, LoadBalancer

ClusterIP

service.annotations

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

{}

service.topologyKeys

Задание topologyKeys для Service Vector.
Пример конфигурации:

- "kubernetes.io/hostname"
- "topology.kubernetes.io/zone"
- "topology.kubernetes.io/region"
- "*"

[]

service.ports

Список портов Service Vector с отключением автоматической генерации

[]

service.externalTrafficPolicy

Политика маршрутизации внешнего трафика для Service типа LoadBalancer или NodePort

""

service.internalTrafficPolicy

Политика маршрутизации внутреннего трафика для Service внутри кластера

""

service.loadBalancerIP

Статический IP-адрес для Service типа LoadBalancer

""

service.ipFamilyPolicy

Политика использования IPv4/IPv6 для Service

""

service.ipFamilies

Список IP-семейств, поддерживаемых Service

[]

service.trafficDistribution

Параметр распределения трафика для Service с учетом topology-aware routing

""

serviceHeadless – настройки headless-сервиса#

Параметр

Описание

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

serviceHeadless.enabled

Создание headless-сервиса

true

ingress – настройки Ingress для маршрутизации внешнего трафика#

Параметр

Описание

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

ingress.enabled

Включение Ingress для компонента сервера

false

ingress.className

Имя IngressClass для определения контроллера Ingress

nginx

ingress.annotations

Аннотации Ingress.
Пример конфигурации:

kubernetes.io/ingress.class: nginx
kubernetes.io/tls-acme: "true"

{}

ingress.hosts

Массив хостов Ingress.
Пример конфигурации:

- host: chart-example.local
  paths:
    - path: /
      pathType: ImplementationSpecific
      port:
        name: ""
        number: ""

[]

ingress.tls

Массив объектов TLS для Ingress.
Пример конфигурации:

- secretName: chart-example-tls
  hosts:
    - chart-example.local

[]

existingConfigMaps – внешние ConfigMap с конфигурацией Vector#

Параметр

Описание

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

existingConfigMaps

Список существующих ConfigMap с конфигурацией Vector вместо создания новой. Требует заполнения dataDir, а также явного задания containerPorts, service.ports и параметров headless-сервиса. Параметр имеет приоритет над customConfig и встроенной конфигурацией чарта

[]

dataDir – путь для хранения данных Vector#

Параметр

Описание

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

dataDir

Путь к каталогу данных Vector при использовании существующих ConfigMap с конфигурацией

""

customConfig – пользовательская конфигурация Vector#

Параметр

Описание

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

customConfig.api.address

API-адрес Vector для healthcheck, introspection и playground

127.0.0.1:8686

customConfig.api.enabled

Включение встроенного API Vector

true

customConfig.data_dir

Каталог хранения данных Vector

/vector-data-dir

customConfig.sources.host_metrics.type

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

host_metrics

customConfig.sources.host_metrics.filesystem.devices.excludes

Список устройств, исключаемых из сбора метрик файловых систем

- binfmt_misc

customConfig.sources.host_metrics.filesystem.filesystems.excludes

Список файловых систем, исключаемых из сбора метрик

- binfmt_misc

customConfig.sources.host_metrics.filesystem.mountpoints.excludes

Список mountpoint-шаблонов, исключаемых из сбора метрик файловых систем

- "*/proc/sys/fs/binfmt_misc"

customConfig.sources.internal_metrics.type

Тип источника внутренних метрик Vector

internal_metrics

customConfig.sources.journald.type

Тип источника для чтения журнала systemd

journald

customConfig.sources.kubernetes_logs.type

Тип источника для сбора логов Kubernetes pod

kubernetes_logs

customConfig.sources.k8s_audit.type

Тип источника для чтения audit-логов Kubernetes из файлов

file

customConfig.sources.k8s_audit.include

Список файлов audit-логов Kubernetes, которые будет читать Vector

- /var/log/kubernetes/audit.log
- /var/log/kubernetes/audit*.log

customConfig.sources.k8s_audit.read_from

Точка начала чтения файлового источника

beginning

customConfig.sources.k8s_audit.ignore_older_secs

Игнорирование файлов старше указанного количества секунд

86400

customConfig.transforms.tag_k8s_pods.type

Тип transform для маркировки логов pod Kubernetes

remap

customConfig.transforms.tag_k8s_pods.inputs

Список входов для transform маркировки логов pod

- kubernetes_logs

customConfig.transforms.tag_k8s_pods.source

VRL-скрипт для установки признака источника логов pod

.source_type = "k8s_pods"

customConfig.transforms.tag_k8s_node.type

Тип transform для маркировки логов узла

remap

customConfig.transforms.tag_k8s_node.inputs

Список входов для transform маркировки логов узла

- journald

customConfig.transforms.tag_k8s_node.source

VRL-скрипт для установки признака источника логов узла

.source_type = "k8s_node"

customConfig.transforms.k8s_audit_json.type

Тип transform для разбора audit-логов Kubernetes

remap

customConfig.transforms.k8s_audit_json.inputs

Список входов для transform разбора audit-логов

- k8s_audit

customConfig.transforms.k8s_audit_json.source

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

parsed, err = parse_json(.message)
if err != null { abort }
. = parsed

# меньше шума
if exists(.stage) && .stage != "ResponseComplete" { abort }
if !exists(.verb) || !exists(.objectRef) { abort }

.ts = .requestReceivedTimestamp
if !exists(.ts) || .ts == null { .ts = .stageTimestamp }

# ВАЖНО: сначала groups, потом user, иначе groups потеряются
if exists(.user) && exists(.user.groups) { .groups = .user.groups } else { .groups = null }
if exists(.user) && exists(.user.username) { .user = .user.username } else { .user = null }

if exists(.objectRef.namespace) { .ns = .objectRef.namespace } else { .ns = null }
if exists(.objectRef.name) { .name = .objectRef.name } else { .name = null }
if exists(.objectRef.resource) { .resource = .objectRef.resource } else { .resource = null }
if exists(.objectRef.apiGroup) { .apiGroup = .objectRef.apiGroup } else { .apiGroup = null }
if exists(.objectRef.subresource) { .subresource = .objectRef.subresource } else { .subresource = null }

if exists(.responseStatus) && exists(.responseStatus.code) { .code = .responseStatus.code } else { .code = null }

.sourceIPs = .sourceIPs
.userAgent = .userAgent

.source_type = "k8s_audit"

customConfig.transforms.add_host.type

Тип transform для добавления имени узла в событие

remap

customConfig.transforms.add_host.inputs

Список входов для transform добавления имени узла

- tag_k8s_pods
- tag_k8s_node
- k8s_audit_json

customConfig.transforms.add_host.source

VRL-скрипт, заполняющий поле host из переменной окружения VECTOR_HOST при его отсутствии

if !exists(.host) || .host == null {
  h, err = get_env_var("VECTOR_HOST")
  if err == null && h != null {
    .host = h
  }
}

customConfig.sinks.aggregator.type

Тип sink для отправки данных в upstream Vector aggregator

vector

customConfig.sinks.aggregator.address

Адрес удаленного Vector aggregator для отправки событий

vector-aggregator.dapp-logging.svc.cluster.local:6000

customConfig.sinks.aggregator.inputs

Список входов для sink отправки в aggregator

- add_host

customConfig.sinks.prom_exporter.type

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

prometheus_exporter

customConfig.sinks.prom_exporter.address

Адрес и порт, на которых Prometheus exporter будет слушать соединения

0.0.0.0:9090

customConfig.sinks.prom_exporter.inputs

Список входов для Prometheus exporter

- host_metrics
- internal_metrics

defaultVolumes – тома, монтируемые в pod по умолчанию#

Параметр

Описание

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

defaultVolumes

Тома, монтируемые в pod Vector по умолчанию. Обычно изменять не требуется. Для пользовательских томов используются extraVolumes и extraVolumeMounts

- name: var-log
  hostPath:
    path: "/var/log/"
- name: var-lib
  hostPath:
    path: "/var/lib/"
- name: procfs
  hostPath:
    path: "/proc"
- name: sysfs
  hostPath:
    path: "/sys"

defaultVolumeMounts – стандартные монтирования томов Vector#

Параметр

Описание

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

defaultVolumeMounts

Стандартные volumeMounts, соответствующие томам из defaultVolumes

- name: var-log
  mountPath: "/var/log/"
  readOnly: true
- name: var-lib
  mountPath: "/var/lib"
  readOnly: true
- name: procfs
  mountPath: "/host/proc"
  readOnly: true
- name: sysfs
  mountPath: "/host/sys"
  readOnly: true

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

Параметр

Описание

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

extraVolumes

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

- name: run-log-journal
  hostPath:
    path: /run/log/journal
    type: Directory

- name: etc-machine-id
  hostPath:
    path: /etc/machine-id
    type: File

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

Параметр

Описание

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

extraVolumeMounts

Список дополнительных точек монтирования томов (VolumeMounts) в контейнере

- name: run-log-journal
  mountPath: /run/log/journal
  readOnly: true

- name: etc-machine-id
  mountPath: /etc/machine-id
  readOnly: true

initContainers – init-контейнеры для pod#

Параметр

Описание

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

initContainers

Список init-контейнеров, запускаемых перед основными.
Пример конфигурации:

- name: test
  image: busybox:latest
  command:
    - cp
  args:
    - /bin/sleep
    - /test/sleep
  volumeMounts:
    - name: test
      mountPath: /test

[]

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

Параметр

Описание

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

extraContainers

Дополнительные контейнеры для pod Vector. Поддерживает шаблоны Helm.
Пример конфигурации:

- name: test
  command:
    - cp
  args:
    - /bin/sleep
    - /test/sleep
  image: busybox:latest
  volumeMounts:
    - name: test
      mountPath: /test

[]

persistence – параметры постоянного хранилища (PersistentVolumeClaim)#

Параметр

Описание

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

persistence.enabled

Создание и использование PersistentVolumeClaim для хранения данных Vector

false

persistence.existingClaim

Имя существующего PersistentVolumeClaim для использования. Актуально для роли Aggregator

""

persistence.retentionPolicy

Политика сохранения PersistentVolumeClaim для StatefulSet Vector. Актуально для роли Aggregator.
Пример конфигурации:

whenDeleted: Retain
whenScaled: Retain

{}

persistence.annotations

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

{}

persistence.accessModes

Список access modes для PersistentVolumeClaim. Актуально для роли Aggregator

- ReadWriteOnce

persistence.size

Размер PersistentVolumeClaim для хранения данных Vector. Актуально для роли Aggregator

10Gi

persistence.finalizers

Список finalizers для PersistentVolumeClaim. Актуально для роли Aggregator

- kubernetes.io/pvc-protection

persistence.selectors

Label selectors для выбора подходящего PersistentVolume. Актуально для роли Aggregator

{}

persistence.hostPath.enabled

Включение хранения данных через hostPath для роли Agent. При отключении для роли Agent используется emptyDir

true

persistence.hostPath.path

Путь hostPath для хранения данных роли Agent. Для роли Agent хранение используется всегда

/var/lib/vector

dnsPolicy – политика DNS для pod#

Параметр

Описание

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

dnsPolicy

Политика разрешения DNS для pod

ClusterFirst

dnsConfig – пользовательская конфигурация DNS для pod#

Параметр

Описание

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

dnsConfig

Пользовательская конфигурация DNS для pod.
Пример конфигурации:

nameservers:
  - 1.2.3.4
searches:
  - ns1.svc.cluster-domain.example
  - my.dns.search.suffix
options:
  - name: ndots
    value: "2"
  - name: edns0

{}

shareProcessNamespace – совместное использование пространства имен процессов контейнерами#

Параметр

Описание

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

shareProcessNamespace

Включение общего пространства имен процессов между контейнерами pod. Позволяет контейнерам видеть процессы друг друга и взаимодействовать через сигналы (например, с sidecar-контейнерами)

false

livenessProbe – параметры проверки работоспособности#

Параметр

Описание

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

livenessProbe

Настройка параметров проверки работоспособности контейнера.
Пример конфигурации:

httpGet:
  path: /health
  port: 8686

{}

readinessProbe – параметры проверки готовности#

Параметр

Описание

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

readinessProbe

Настройка параметров проверки готовности контейнера.
Пример конфигурации:

httpGet:
  path: /health
  port: 8686

{}

startupProbe – параметры проверки успешного запуска#

Параметр

Описание

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

startupProbe

Настройка проверки успешного запуска приложения внутри контейнера. Пока не завершится успешно, проверки работоспособности и готовности не запускаются.
Пример конфигурации:

httpGet:
  path: /health
  port: 8686

{}

podMonitor – определение PodMonitor для сбора метрик Vector#

Параметр

Описание

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

podMonitor.enabled

Создание PodMonitor. Требует установленный CRD PodMonitor

false

podMonitor.jobLabel

Метка, из которой Prometheus Operator будет брать имя Job

app.kubernetes.io/name

podMonitor.port

Имя порта, используемого для scrape

prom-exporter

podMonitor.path

Путь для сбора метрик

/metrics

podMonitor.interval

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

~

podMonitor.scrapeTimeout

Тайм-аут сбора метрик

~

podMonitor.relabelings

RelabelConfigs, применяемые к samples перед scrape

[]

podMonitor.metricRelabelings

MetricRelabelConfigs, применяемые к samples перед ingestion

[]

podMonitor.podTargetLabels

Список меток pod, переносимых на target метрик

[]

podMonitor.additionalLabels

Дополнительные метки для ресурса PodMonitor

{}

podMonitor.honorLabels

Установка honor_labels: true в scrape config

false

podMonitor.honorTimestamps

Установка honor_timestamps: true в scrape config

true

logLevel – уровень логирования Vector#

Параметр

Описание

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

logLevel

Уровень логирования Vector.
Возможные значения: trace, debug, info, warn, error

info

haproxy – встроенный балансировщик HAProxy#

Параметр

Описание

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

haproxy.enabled

Создание встроенного балансировщика HAProxy

false

haproxy.image.repository

Переопределение реестра и имени образа HAProxy

haproxytech/haproxy-alpine

haproxy.image.pullPolicy

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

IfNotPresent

haproxy.image.pullSecrets

Список imagePullSecrets для pod HAProxy

[]

haproxy.image.tag

Тег образа контейнера

2.6.12

haproxy.rollWorkload

Добавление контрольной суммы сгенерированного ConfigMap в Deployment HAProxy для автоматического rolling update

true

haproxy.replicas

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

1

haproxy.serviceAccount.create

Создание ServiceAccount для HAProxy

true

haproxy.serviceAccount.annotations

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

{}

haproxy.serviceAccount.name

Имя ServiceAccount для HAProxy. При пустом значении и включенном создании имя генерируется по шаблону fullname

~

haproxy.serviceAccount.automountToken

Автоматический монтаж учетных данных API в ServiceAccount HAProxy

true

haproxy.strategy

Стратегия обновления pod HAProxy.
Пример конфигурации:

rollingUpdate:
  maxSurge: 25%
  maxUnavailable: 25%
type: RollingUpdate

{}

haproxy.terminationGracePeriodSeconds

Время, отведенное на корректное завершение работы pod

60

haproxy.podAnnotations

Аннотации для pod HAProxy

{}

haproxy.podLabels

Метки для pod HAProxy

{}

haproxy.podPriorityClassName

Имя PriorityClass для pod HAProxy

""

haproxy.podSecurityContext

Параметры контекста безопасности pod.
Пример конфигурации:

fsGroup: 2000

{}

haproxy.securityContext

Контекст безопасности контейнеров HAProxy.
Пример конфигурации:

capabilities:
  drop:
  - ALL
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 1000

{}

haproxy.containerPorts

Явное задание containerPorts для HAProxy с отключением автоматической генерации

[]

haproxy.service.type

Тип Service

ClusterIP

haproxy.service.annotations

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

{}

haproxy.service.topologyKeys

Задание topologyKeys для Service HAProxy.
Пример конфигурации:

- "kubernetes.io/hostname"
- "topology.kubernetes.io/zone"
- "topology.kubernetes.io/region"
- "*"

[]

haproxy.service.ports

Список портов Service HAProxy с отключением автоматической генерации

[]

haproxy.service.externalTrafficPolicy

Политика маршрутизации внешнего трафика для Service HAProxy

""

haproxy.service.loadBalancerIP

Статический IP-адрес для Service HAProxy типа LoadBalancer

""

haproxy.service.ipFamilyPolicy

Политика использования IPv4/IPv6 для Service HAProxy

""

haproxy.service.ipFamilies

Список IP-семейств, поддерживаемых Service

[]

haproxy.existingConfigMap

Имя существующего ConfigMap с конфигурацией HAProxy вместо создания новой. При использовании нужно явно задать haproxy.containerPorts и haproxy.service.ports. Параметр имеет приоритет над haproxy.customConfig и встроенной конфигурацией чарта

""

haproxy.customConfig

Полное переопределение конфигурации HAProxy. Поддерживает шаблоны Helm для подстановки значений. По умолчанию конфигурация генерируется на основе customConfig Vector

""

haproxy.extraVolumes

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

[]

haproxy.extraVolumeMounts

Список дополнительных точек монтирования томов (VolumeMounts) в контейнере

[]

haproxy.initContainers

Список init-контейнеров, запускаемых перед основными

[]

haproxy.extraContainers

Дополнительные контейнеры для pod HAProxy. Поддерживает шаблоны Helm

[]

haproxy.autoscaling.enabled

Создание HorizontalPodAutoscaler для HAProxy

false

haproxy.autoscaling.external

Масштабирование HAProxy внешним HorizontalPodAutoscaler

false

haproxy.autoscaling.minReplicas

Минимальное количество реплик при автоматическом масштабировании

1

haproxy.autoscaling.maxReplicas

Максимальное количество реплик при автоматическом масштабировании

10

haproxy.autoscaling.targetCPUUtilizationPercentage

Целевой процент утилизации CPU для HPA HAProxy

80

haproxy.autoscaling.targetMemoryUtilizationPercentage

Целевой процент утилизации памяти для HPA HAProxy

~

haproxy.autoscaling.customMetric

Пользовательская метрика для автомасштабирования HAProxy.
Пример конфигурации:

- type: Pods
  pods:
    metric:
      name: utilization
    target:
      type: AverageValue
      averageValue: 95

{}

haproxy.resources

Запросы и ограничения ресурсов для контейнера.
Пример конфигурации:

limits:
  cpu: 100m
  memory: 128Mi
requests:
  cpu: 100m
  memory: 128Mi

{}

haproxy.livenessProbe.tcpSocket.port

TCP-порт для стандартной проверки работоспособности контейнера HAProxy

1024

haproxy.readinessProbe.tcpSocket.port

TCP-порт для стандартной проверки готовности контейнера HAProxy

1024

haproxy.nodeSelector

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

{}

haproxy.tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

haproxy.affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

{}

extraObjects – дополнительные объекты Helm-чарта#

Параметр

Описание

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

extraObjects

Добавление дополнительных динамических объектов в Helm-чарте.
Пример конфигурации:

- apiVersion: v1
  kind: ConfigMap
  metadata:
    name: vector-dashboards
    labels:
      grafana_dashboard: "1"
  data:
    vector.json: |
      {{ .Files.Get "dashboards/vector.json" | fromJson | toJson }}

[]