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, Aggregator, Stateless-Aggregator. Для роли Agent создается DaemonSet, для Aggregator — StatefulSet, для Stateless-Aggregator — Deployment

"Agent"

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

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

{}

image - определить образ контейнера Vector#

Параметр

Описание

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

image.repository

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

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

image.pullPolicy

Политика загрузки образа контейнера Vector. Используются стандартные значения Kubernetes, например IfNotPresent, Always, Never

IfNotPresent

image.pullSecrets

Список imagePullSecrets для доступа к приватным registry из Pod Vector

[]

image.tag

Тег образа Vector. По умолчанию совпадает с appVersion чарта

"v0.53.0"

image.sha

Digest SHA образа Vector для фиксации точной версии образа

""

image.base

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

""

replicas - определить количество реплик Vector#

Параметр

Описание

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

replicas

Количество Pod Vector. Используется для ролей Aggregator и Stateless-Aggregator

1

hostAliases - определить дополнительные записи hostAliases для Pod Vector#

Параметр

Описание

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

hostAliases

Дополнительные записи в /etc/hosts внутри Pod Vector. Пример конфигурации:

- ip: «127.0.0.1»
hostnames:
- «foo.local»
- «bar.local»

[]

podManagementPolicy - определить политику управления Pod StatefulSet#

Параметр

Описание

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

podManagementPolicy

Политика управления Pod StatefulSet для роли Aggregator. Обычно используется OrderedReady или Parallel

OrderedReady

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

Параметр

Описание

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

secrets.generic

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

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

{}

autoscaling - определить параметры автомасштабирования Vector#

Параметр

Описание

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

autoscaling.enabled

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

false

autoscaling.external

Указывает, что масштабированием управляет внешний механизм, например KEDA

false

autoscaling.annotations

Аннотации для ресурса HPA Vector

{}

autoscaling.minReplicas

Минимальное количество реплик для HPA Vector

1

autoscaling.maxReplicas

Максимальное количество реплик для HPA Vector

10

autoscaling.targetCPUUtilizationPercentage

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

80

autoscaling.targetMemoryUtilizationPercentage

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

null

autoscaling.customMetric

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

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

{}

autoscaling.behavior

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

scaleDown:
stabilizationWindowSeconds: 300

{}

podDisruptionBudget - определить параметры PodDisruptionBudget для Vector#

Параметр

Описание

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

podDisruptionBudget.enabled

Включает создание PodDisruptionBudget для Vector

false

podDisruptionBudget.minAvailable

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

1

podDisruptionBudget.maxUnavailable

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

null

rbac - определить RBAC-ресурсы для роли Agent#

Параметр

Описание

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

rbac.create

Создает и использует RBAC-ресурсы. Актуально только для роли Agent

true

rbac.extraRules

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

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

[]

psp - определить создание PodSecurityPolicy#

Параметр

Описание

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

psp.create

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

false

serviceAccount - определить ServiceAccount для Vector#

Параметр

Описание

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

serviceAccount.create

Создает ServiceAccount для Vector

true

serviceAccount.annotations

Аннотации для ServiceAccount Vector

{}

serviceAccount.name

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

null

serviceAccount.automountToken

Автоматически монтирует API credentials в ServiceAccount Vector

true

podAnnotations - определить аннотации Pod Vector#

Параметр

Описание

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

podAnnotations

Аннотации, которые будут добавлены на Pod Vector

{}

podLabels - определить метки Pod Vector#

Параметр

Описание

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

podLabels.vector.dev/exclude

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

"true"

podPriorityClassName - определить priorityClassName для Pod Vector#

Параметр

Описание

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

podPriorityClassName

Имя PriorityClass, которое будет назначено Pod Vector

""

podHostNetwork - определить использование hostNetwork для Pod Vector#

Параметр

Описание

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

podHostNetwork

Включает запуск Pod Vector в сетевом пространстве узла

false

podSecurityContext - определить PodSecurityContext для Pod Vector#

Параметр

Описание

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

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 - определить securityContext контейнеров Vector#

Параметр

Описание

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

securityContext.privileged

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

true

securityContext.allowPrivilegeEscalation

Разрешает повышение привилегий внутри контейнера Vector

true

securityContext.readOnlyRootFilesystem

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

true

securityContext.capabilities.drop

Список Linux capabilities, удаляемых из контейнера Vector

- ALL

command - определить команду запуска контейнера Vector#

Параметр

Описание

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

command

Переопределяет команду запуска контейнера Vector

[]

args - определить аргументы запуска контейнера Vector#

Параметр

Описание

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

args

Переопределяет аргументы запуска контейнера Vector

- –config-dir
- «/etc/vector/»

env - определить переменные окружения контейнеров Vector#

Параметр

Описание

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

env

Переменные окружения для контейнеров Vector. По умолчанию задает имя узла через поле Pod. Пример конфигурации:

- name: MY_VARIABLE
valueFrom:
secretKeyRef:
name: vector
key: my_variable
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: vector
key: awsAccessKeyId

- name: VECTOR_HOST
valueFrom:
fieldRef:
fieldPath: spec.nodeName

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

Параметр

Описание

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

envFrom

Импортирует переменные окружения из Secret или ConfigMap. Пример конфигурации:

- secretRef:
name: vector

[]

containerPorts - определить порты контейнера Vector вручную#

Параметр

Описание

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

containerPorts

Явно задает список containerPorts для Vector и отключает их автоматическую генерацию

[]

resources - определить requests и limits для контейнеров Vector#

Параметр

Описание

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

resources

Requests и limits ресурсов для контейнеров Vector. Пример конфигурации:

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

{}

lifecycle - определить lifecycle hooks контейнеров Vector#

Параметр

Описание

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

lifecycle

Lifecycle hooks для контейнеров Vector, например preStop или postStart. Пример конфигурации:

preStop:
exec:
command:
- /bin/sleep
- «10»

{}

minReadySeconds - определить минимальное время готовности нового Pod#

Параметр

Описание

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

minReadySeconds

Минимальное количество секунд, которое новый Pod должен успешно проходить проверки, прежде чем будет считаться доступным

0

updateStrategy - определить стратегию обновления Pod Vector#

Параметр

Описание

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

updateStrategy

Переопределяет стратегию обновления Pod Vector. Для DaemonSet используется DaemonSetUpdateStrategy, для StatefulSet — StatefulSetUpdateStrategy, для Deployment — DeploymentStrategy. Пример конфигурации:

type: RollingUpdate
rollingUpdate:
maxUnavailable: 1

{}

terminationGracePeriodSeconds - определить grace period при остановке контейнеров Vector#

Параметр

Описание

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

terminationGracePeriodSeconds

Время в секундах, отводимое контейнерам Vector на корректное завершение работы

60

nodeSelector - определить nodeSelector для Pod Vector#

Параметр

Описание

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

nodeSelector

Ограничивает размещение Pod Vector узлами с указанными labels

{}

tolerations - определить tolerations для Pod Vector#

Параметр

Описание

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

tolerations

Tolerations для размещения Pod Vector на tainted-узлах

- 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 для Pod Vector#

Параметр

Описание

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

affinity

Правила node affinity и pod affinity/anti-affinity для Pod Vector

{}

topologySpreadConstraints - определить topology spread constraints для Pod Vector#

Параметр

Описание

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

topologySpreadConstraints

Правила равномерного распределения Pod Vector по доменам топологии. Используется для ролей Aggregator и Stateless-Aggregator

[]

service - определить Service для Vector#

Параметр

Описание

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

service.enabled

Создает Service для Vector

true

service.type

Тип Service для Vector, например ClusterIP, NodePort, LoadBalancer

"ClusterIP"

service.annotations

Аннотации для Service Vector

{}

service.topologyKeys

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

- «kubernetes.io/hostname»
- «topology.kubernetes.io/zone»
- «topology.kubernetes.io/region»
- «*»

[]

service.ports

Явно задает список портов Service и отключает их автоматическую генерацию

[]

service.externalTrafficPolicy

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

""

service.internalTrafficPolicy

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

""

service.loadBalancerIP

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

""

service.ipFamilyPolicy

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

""

service.ipFamilies

Список IP family для Service в dual-stack конфигурации

[]

service.trafficDistribution

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

""

serviceHeadless - определить headless Service для Vector#

Параметр

Описание

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

serviceHeadless.enabled

Создает headless Service для Vector

true

ingress - определить Ingress для Vector#

Параметр

Описание

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

ingress.enabled

Создает и использует Ingress для доступа к Vector

false

ingress.className

Задает ingressClassName для Ingress. Требует Kubernetes 1.18 и выше

"nginx"

ingress.annotations

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

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

{}

ingress.hosts

Список host и path для 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 Service в соответствии с собственной конфигурацией. Имеет приоритет над 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.api.playground

Включает playground для API Vector

false

customConfig.data_dir

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

/vector-data-dir

customConfig.sources.host_metrics.type

Тип источника для сбора host metrics

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 journal

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)

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)

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 Vector по умолчанию#

Параметр

Описание

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

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 для Vector, соответствующие томам из 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 - определить дополнительные тома для Pod Vector#

Параметр

Описание

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

extraVolumes

Дополнительные volumes для 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 - определить дополнительные монтирования томов для контейнеров Vector#

Параметр

Описание

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

extraVolumeMounts

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

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

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

initContainers - определить initContainers для Pod Vector#

Параметр

Описание

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

initContainers

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

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

[]

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

Параметр

Описание

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

extraContainers

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

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

[]

persistence - определить параметры хранения данных Vector#

Параметр

Описание

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

persistence.enabled

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

false

persistence.existingClaim

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

""

persistence.retentionPolicy

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

whenDeleted: Retain
whenScaled: Retain

{}

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 - определить dnsPolicy для Pod Vector#

Параметр

Описание

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

dnsPolicy

Политика DNS для Pod Vector

ClusterFirst

dnsConfig - определить дополнительные параметры DNS для Pod Vector#

Параметр

Описание

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

dnsConfig

Дополнительная конфигурация DNS для Pod Vector. Пример конфигурации:

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

{}

shareProcessNamespace - определить общий process namespace для контейнеров Pod#

Параметр

Описание

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

shareProcessNamespace

Разрешает контейнерам внутри одного Pod Vector использовать общий namespace процессов

false

livenessProbe - определить livenessProbe для контейнеров Vector#

Параметр

Описание

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

livenessProbe

Переопределяет стандартную livenessProbe контейнеров Vector. При использовании customConfig требуется включить customConfig.api.enabled. Пример конфигурации:

httpGet:
path: /health
port: api

{}

readinessProbe - определить readinessProbe для контейнеров Vector#

Параметр

Описание

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

readinessProbe

Переопределяет стандартную readinessProbe контейнеров Vector. При использовании customConfig требуется включить customConfig.api.enabled. Пример конфигурации:

httpGet:
path: /health
port: api

{}

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

Параметр

Описание

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

podMonitor.enabled

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

false

podMonitor.jobLabel

Label, из которого Prometheus Operator будет брать имя job

app.kubernetes.io/name

podMonitor.port

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

prom-exporter

podMonitor.path

HTTP path для scrape метрик

/metrics

podMonitor.interval

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

null

podMonitor.scrapeTimeout

Таймаут выполнения scrape

null

podMonitor.relabelings

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

[]

podMonitor.metricRelabelings

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

[]

podMonitor.podTargetLabels

Список labels Pod, которые нужно перенести на target метрик

[]

podMonitor.additionalLabels

Дополнительные labels для ресурса 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 для Vector

false

haproxy.image.repository

Переопределяет registry и имя образа HAProxy

haproxytech/haproxy-alpine

haproxy.image.pullPolicy

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

IfNotPresent

haproxy.image.pullSecrets

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

[]

haproxy.image.tag

Тег образа HAProxy

"2.6.12"

haproxy.rollWorkload

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

true

haproxy.replicas

Количество Pod HAProxy

1

haproxy.serviceAccount.create

Создает ServiceAccount для HAProxy

true

haproxy.serviceAccount.annotations

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

{}

haproxy.serviceAccount.name

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

null

haproxy.serviceAccount.automountToken

Автоматически монтирует API credentials в ServiceAccount HAProxy

true

haproxy.strategy

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

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

{}

haproxy.terminationGracePeriodSeconds

Время в секундах, отводимое HAProxy на корректное завершение работы

60

haproxy.podAnnotations

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

{}

haproxy.podLabels

Labels для Pod HAProxy

{}

haproxy.podPriorityClassName

Имя PriorityClass для Pod HAProxy

""

haproxy.podSecurityContext

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

fsGroup: 2000

{}

haproxy.securityContext

SecurityContext контейнеров HAProxy. Пример конфигурации:

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

{}

haproxy.containerPorts

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

[]

haproxy.service.type

Тип Service для HAProxy

ClusterIP

haproxy.service.annotations

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

{}

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 family для Service HAProxy в dual-stack конфигурации

[]

haproxy.existingConfigMap

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

""

haproxy.customConfig

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

""

haproxy.extraVolumes

Дополнительные volumes для Pod HAProxy

[]

haproxy.extraVolumeMounts

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

[]

haproxy.initContainers

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

[]

haproxy.extraContainers

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

[]

haproxy.autoscaling.enabled

Создает HorizontalPodAutoscaler для HAProxy

false

haproxy.autoscaling.external

Указывает, что HAProxy масштабируется внешним HorizontalPodAutoscaler

false

haproxy.autoscaling.minReplicas

Минимальное количество реплик для HPA HAProxy

1

haproxy.autoscaling.maxReplicas

Максимальное количество реплик для HPA HAProxy

10

haproxy.autoscaling.targetCPUUtilizationPercentage

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

80

haproxy.autoscaling.targetMemoryUtilizationPercentage

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

null

haproxy.autoscaling.customMetric

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

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

{}

haproxy.resources

Requests и limits ресурсов для HAProxy. Пример конфигурации:

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

{}

haproxy.livenessProbe.tcpSocket.port

TCP-порт для стандартной livenessProbe HAProxy

1024

haproxy.readinessProbe.tcpSocket.port

TCP-порт для стандартной readinessProbe HAProxy

1024

haproxy.nodeSelector

Node selector для Pod HAProxy

{}

haproxy.tolerations

Tolerations для Pod HAProxy

[]

haproxy.affinity

Правила affinity и anti-affinity для Pod HAProxy

{}

extraObjects - определить дополнительные Kubernetes-объекты через values#

Параметр

Описание

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

extraObjects

Список дополнительных manifest-объектов Kubernetes, которые создаются через values и обрабатываются функцией tpl для шаблонизации. Пример конфигурации:

- apiVersion: v1
kind: ConfigMap
metadata:
name: vector-dashboards
labels:
grafana_dashboard: «1»
data:
vector.json: |

[]