Tetragon#
Tetragon - инструмент безопасности, аудита и мониторинга уровня процессов в Kubernetes. Он использует технологию eBPF для отслеживания системных вызовов (syscalls), выполнения команд, сетевой активности и других событий внутри контейнеров и хостовых систем без необходимости модификации приложений.
Основные задачи и возможности
Отслеживание выполнения команд (
exec tracing):Регистрирует запуск бинарных файлов внутри pod, что позволяет выявлять подозрительную активность (например, запуск
bash,wgetилиnc).Контроль безопасности с помощью политик eBPF:
Позволяет блокировать или предупреждать о выполнении определенных команд по правилам (например, запретить
straceилиtcpdump).Аудит и сбор событий в реальном времени:
Генерирует события аудита, которые могут быть отправлены в SIEM-системы, Loki, Kafka или другие системы анализа.
Интеграция с Cilium и Hubble:
Работает как часть экосистемы Cilium, дополняя сетевую безопасность детальной видимостью на уровне ОС.
Низкий уровень накладных расходов:
Использование eBPF обеспечивает высокую эффективность и масштабируемость, даже в больших кластерах.
Поддержка Kubernetes-native подхода:
Политики и конфигурации управляются через CRD, что позволяет применять их декларативно, как обычные манифесты.
Примечание
Tetragon не является инструментом по умолчанию в компоненте Security. Его можно установить как инструмент (Tool) или явно включить в список spec.tools при установке компонента Security.
Конфигурация values#
Значения можно переопределить через редактирование инструмента с именем tetragon и указанием нужных values в spec.values. Общее описание конфигурации values для инструментов описано в разделе «Конфигурации инструментов дополнительных компонентов».
-
imagePullSecrets - определить секреты для загрузки образов из приватных реестров
priorityClassName - определить PriorityClass для pod агента Tetragon
imagePullPolicy - определить политику загрузки образов Tetragon
serviceAccount - определить настройки ServiceAccount для pod Tetragon
podAnnotations - определить дополнительные аннотации для pod Tetragon
podSecurityContext - определить pod-level securityContext для Tetragon
extraHostPathMounts - определить дополнительные hostPath-монтирования для pod Tetragon
extraConfigmapMounts - определить дополнительные монтирования ConfigMap для pod Tetragon
daemonSetAnnotations - определить аннотации для DaemonSet Tetragon
extraVolumes - определить дополнительные volumes для pod Tetragon
updateStrategy - определить стратегию обновления DaemonSet Tetragon
podLabels - определить дополнительные labels для pod Tetragon
daemonSetLabelsOverride - определить переопределяемые labels для DaemonSet Tetragon
selectorLabelsOverride - определить переопределяемые selector labels для ресурсов Tetragon
podLabelsOverride - определить переопределяемые labels для pod Tetragon
serviceLabelsOverride - определить переопределяемые labels для Service Tetragon
exportDirectory - определить каталог для JSON-экспорта событий Tetragon
hostNetwork - определить использование hostNetwork для pod Tetragon
enabled - включить развертывание Helm chart Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включает установку chart целиком |
|
imagePullSecrets - определить секреты для загрузки образов из приватных реестров#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список секретов Kubernetes, используемых для загрузки контейнерных образов |
|
priorityClassName - определить PriorityClass для pod агента Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Имя PriorityClass, назначаемое pod Tetragon |
|
imagePullPolicy - определить политику загрузки образов Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Политика загрузки контейнерных образов, например Always, IfNotPresent или Never |
|
serviceAccount - определить настройки ServiceAccount для pod Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создавать отдельный ServiceAccount для Tetragon |
|
|
Аннотации для ServiceAccount Tetragon |
|
|
Имя существующего или создаваемого ServiceAccount; пустое значение означает автогенерацию имени |
|
podAnnotations - определить дополнительные аннотации для pod Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные аннотации, которые будут добавлены на pod Tetragon |
|
podSecurityContext - определить pod-level securityContext для Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Настройки securityContext на уровне pod для Tetragon |
|
nodeSelector - определить правила выбора узлов для Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Node selector для размещения pod Tetragon на подходящих узлах |
|
tolerations - определить tolerations для pod Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список tolerations, позволяющий запускать pod Tetragon на tainted-узлах |
|
affinity - определить affinity-правила для pod Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Affinity и anti-affinity правила для размещения pod Tetragon |
|
extraHostPathMounts - определить дополнительные hostPath-монтирования для pod Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные hostPath-монтирования, подключаемые в pod Tetragon |
|
extraConfigmapMounts - определить дополнительные монтирования ConfigMap для pod Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные монтирования ConfigMap в pod Tetragon |
|
daemonSetAnnotations - определить аннотации для DaemonSet Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации, применяемые к объекту DaemonSet Tetragon |
|
extraVolumes - определить дополнительные volumes для pod Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные volumes, подключаемые к pod Tetragon |
|
updateStrategy - определить стратегию обновления DaemonSet Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Стратегия обновления для DaemonSet Tetragon |
|
podLabels - определить дополнительные labels для pod Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные labels, добавляемые на pod Tetragon |
|
daemonSetLabelsOverride - определить переопределяемые labels для DaemonSet Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Набор labels, полностью или частично переопределяющий labels DaemonSet Tetragon |
|
selectorLabelsOverride - определить переопределяемые selector labels для ресурсов Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Набор labels для переопределения selector-меток ресурсов Tetragon |
|
podLabelsOverride - определить переопределяемые labels для pod Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Набор labels для переопределения labels pod Tetragon |
|
serviceLabelsOverride - определить переопределяемые labels для Service Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Набор labels для переопределения labels сервисов Tetragon |
|
dnsPolicy - определить DNS policy для pod Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
DNS policy для pod Tetragon, например Default, ClusterFirst или ClusterFirstWithHostNet |
|
exportDirectory - определить каталог для JSON-экспорта событий Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Путь внутри pod, в который Tetragon записывает JSON-файлы экспорта событий |
|
hostNetwork - определить использование hostNetwork для pod Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включает запуск pod Tetragon в сети хоста; требуется для корректной видимости процессов |
|
tetragon - определить настройки агента Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включает развертывание агента Tetragon |
|
|
Переопределяет имя ресурсов агента Tetragon |
|
|
Полностью переопределяет образ контейнера агента Tetragon |
|
|
Репозиторий образа агента Tetragon |
|
|
Тег образа агента Tetragon |
|
|
Ресурсные requests и limits для контейнера агента Tetragon |
|
|
Дополнительные аргументы командной строки для агента Tetragon |
|
|
Дополнительные переменные окружения для контейнера агента Tetragon |
|
|
Включает добавление аннотаций на pod агента Tetragon |
|
|
Дополнительные volumeMounts для контейнера агента Tetragon |
|
|
Запускает контейнер агента Tetragon в привилегированном режиме |
|
|
Переопределяет стандартную livenessProbe контейнера Tetragon |
|
|
Размер LRU-кеша процессов, используемого для поиска предков последующих exec-событий |
|
|
Включает режим отладки агента Tetragon |
|
|
Имя файла JSON-экспорта; пустая строка отключает файловый JSON-экспорт |
|
|
Права доступа к файлу JSON-экспорта в строковом виде, например 600, 640 или 644 |
|
|
Размер файла JSON-экспорта в мегабайтах, после которого выполняется ротация |
|
|
Количество ротированных файлов JSON-экспорта, сохраняемых на диске |
|
|
Сжимать ротированные файлы JSON-экспорта |
|
|
Лимит экспорта событий в минуту; значение -1 отключает ограничение |
|
|
Allowlist для JSON-экспорта событий, позволяющий ограничить набор экспортируемых событий |
(complex) |
|
Denylist для JSON-экспорта в файловые sink’и; не влияет на gRPC-вывод |
(complex) |
|
Фильтры включения и исключения полей событий Tetragon; при наличии INCLUDE-фильтра остальные поля по умолчанию исключаются |
|
|
Фильтры маскирования секретов в args полях событий на основе RE2-выражений и, при необходимости, фильтрации по binary_regex |
|
|
Имя кластера, записываемое в поле cluster_name в сообщениях GetEventsResponse |
|
|
Разрешает обращение к Kubernetes API для связывания событий Tetragon с podи Kubernetes |
|
|
Включает видимость Linux capabilities в exec- и kprobe-событиях |
|
|
Включает видимость namespaces в exec- и kprobe-событиях |
|
|
Список через запятую типов событий, для которых нужно собирать сведения о предках процесса; поддерживаются base, kprobe, tracepoint, uprobe и lsm |
|
|
Абсолютный путь к BTF-файлу для явной передачи через опцию –btf |
|
|
Полностью переопределяет команду запуска контейнера агента Tetragon |
|
|
Полностью переопределяет аргументы запуска контейнера агента Tetragon |
|
|
Включает экспорт метрик Tetragon в формате Prometheus |
|
|
Адрес, на котором публикуются метрики; пустая строка означает все доступные интерфейсы |
|
|
Порт публикации метрик Prometheus |
|
|
Список через запятую labels метрик, которые нужно включить; поддерживаются namespace, workload, pod и binary |
|
|
Создавать ресурс ServiceMonitor для scrape метрик pod Tetragon |
|
|
Набор labels для переопределения labels ресурса ServiceMonitor Tetragon |
|
|
Дополнительные labels для ресурса ServiceMonitor Tetragon |
|
|
Интервал опроса метрик ServiceMonitor; если не задан, используется глобальный интервал Prometheus |
|
|
Включает публикацию gRPC-интерфейса Tetragon |
|
|
Адрес публикации gRPC, например localhost:54321 или unix-сокет |
|
|
Включает публикацию gops-сервера |
|
|
Адрес публикации gops-сервера |
|
|
Порт публикации gops-сервера |
|
|
Включает публикацию pprof-сервера |
|
|
Адрес публикации pprof-сервера |
|
|
Порт публикации pprof-сервера |
|
|
Включает policy filter; требуется для фильтрации по namespace Kubernetes и pod labels |
|
|
Включает cgroup map для policy filter |
|
|
Включает отладочные сообщения policy filter |
|
|
Включает мониторинг задержек обработки сообщений |
|
|
Включает health gRPC-сервер агента Tetragon |
|
|
Порт публикации health gRPC-сервера |
|
|
Интервал проверки состояния агента |
|
|
Путь к файловой системе proc хоста в окружении выполнения |
|
|
Количество повторных попыток в кеше событий Tetragon |
|
|
Задержка в секундах между повторными попытками в кеше событий Tetragon |
|
|
Сохраняет enforcement policy активной даже после завершения процесса Tetragon |
|
|
Интервал запуска сборщика мусора кеша процессов |
|
|
Настраивает pod Tetragon на доступ к CRI, работающему на хосте |
|
|
Путь на хосте к сокету CRI, например containerd или CRI-O |
|
|
Включает использование cgroup id вместо имен cgroup для связывания pod; зависит от включенного CRI |
|
tetragonOperator - определить настройки Tetragon Operator#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включает развертывание Tetragon Operator |
|
|
Переопределяет имя Deployment Tetragon Operator |
|
|
Количество реплик Deployment Tetragon Operator |
|
|
Включает механизм lease-based failover для нескольких реплик оператора |
|
|
Namespace для создания Lease-ресурса; при пустом значении используется namespace установки Tetragon |
|
|
Максимальная длительность отсутствия обновления lease, после которой лидер считается недоступным |
|
|
Интервал, с которым лидер пытается продлить lease |
|
|
Пауза между повторными попытками продления lease при ошибке |
|
|
Аннотации для Deployment Tetragon Operator |
|
|
Аннотации для pod Tetragon Operator |
|
|
Дополнительные labels для Deployment Tetragon Operator |
|
|
Дополнительные labels для pod Tetragon Operator |
|
|
Имя PriorityClass для pod Tetragon Operator |
|
|
Создавать отдельный ServiceAccount для Tetragon Operator |
|
|
Аннотации для ServiceAccount Tetragon Operator |
|
|
Имя существующего или создаваемого ServiceAccount оператора; пустое значение означает автогенерацию имени |
|
|
Настройки securityContext на уровне pod для Tetragon Operator |
|
|
Разрешает повышение привилегий в контейнере Tetragon Operator |
|
|
Список Linux capabilities, удаляемых у контейнера Tetragon Operator |
|
|
CPU limit контейнера Tetragon Operator |
|
|
Memory limit контейнера Tetragon Operator |
|
|
CPU request контейнера Tetragon Operator |
|
|
Memory request контейнера Tetragon Operator |
|
|
Тип стратегии обновления Deployment Tetragon Operator |
|
|
Максимальное количество дополнительных pod при rolling update |
|
|
Максимальное количество недоступных pod при rolling update |
|
|
Node selector для размещения pod Tetragon Operator |
|
|
Список tolerations для pod Tetragon Operator |
|
|
Предпочтительные anti-affinity правила для разнесения pod оператора по разным узлам |
(complex) |
|
Полностью переопределяет образ контейнера Tetragon Operator |
|
|
Репозиторий образа Tetragon Operator |
|
|
Тег образа Tetragon Operator |
|
|
Политика загрузки образа Tetragon Operator |
|
|
Дополнительные volumes для Deployment Tetragon Operator |
|
|
Дополнительные volumeMounts для контейнера Tetragon Operator |
|
|
Принудительно обновлять CRD при работе оператора |
|
|
Включает CRD PodInfo и контроллер, который синхронизирует ресурсы PodInfo |
|
|
Включает создание CRD TracingPolicy и TracingPolicyNamespaced |
|
|
Включает метрики Tetragon Operator |
|
|
Адрес публикации метрик Tetragon Operator; пустая строка означает все интерфейсы |
|
|
Порт публикации метрик Tetragon Operator |
|
|
Создавать ServiceMonitor для метрик Tetragon Operator |
|
|
Набор labels для переопределения labels ServiceMonitor оператора |
|
|
Дополнительные labels для ServiceMonitor Tetragon Operator |
|
|
Интервал опроса метрик ServiceMonitor оператора; если не задан, используется глобальный интервал Prometheus |
|
export - определить настройки экспорта событий Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Режим экспорта событий; значение stdout включает sidecar для вывода в stdout, пустая строка отключает экспорт |
|
|
Ресурсные requests и limits для контейнера экспорта событий |
|
|
Настройки securityContext для контейнера экспорта событий |
|
|
Список файлов, которые fluentd должен отслеживать и экспортировать |
|
|
Дополнительные переменные окружения для контейнера export-stdout |
|
|
Дополнительные источники envFrom для контейнера export-stdout, например configMapRef или secretRef |
|
|
Упрощенный способ добавить secret-ссылки в envFrom; можно указывать строкой или объектом с дополнительными параметрами |
|
|
Добавлять команду в manifest для контейнера export-stdout; при false используется команда образа по умолчанию |
|
|
Добавлять аргументы в manifest для контейнера export-stdout; при false используются аргументы образа по умолчанию |
|
|
Явное переопределение команды контейнера export-stdout |
|
|
Явное переопределение аргументов контейнера export-stdout |
|
|
Дополнительные volumeMounts для pod экспорта в stdout |
|
|
Полностью переопределяет образ контейнера export-stdout |
|
|
Репозиторий образа sidecar-контейнера hubble-export-stdout |
|
|
Тег образа sidecar-контейнера hubble-export-stdout |
|
crds - определить способ установки CRD для Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Метод установки CRD; поддерживаются operator, helm и none |
|
rthooks - определить настройки runtime hooks Tetragon#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включает daemonset tetragon-rthooks для установки runtime hooks на хостах |
|
|
Переопределяет имя ресурсов tetragon-rthooks |
|
|
Интерфейс установки runtime hooks; поддерживаются oci-hooks и nri-hook |
|
|
Аннотации для daemonset tetragon-rthooks |
|
|
Дополнительные labels для daemonset tetragon-rthooks |
|
|
Аннотации для pod tetragon-rthooks |
|
|
Имя PriorityClass для pod tetragon-rthooks |
|
|
Настройки securityContext на уровне pod для tetragon-rthooks |
|
|
Путь на хосте, куда будет установлен бинарный файл tetragon-oci-hook |
|
|
Список namespace через запятую, для которых разрешено создание pod при недоступности tetragon-oci-hook; namespace установки Tetragon добавляется автоматически |
|
|
Дополнительные volumeMounts для init-контейнера oci-hook-setup |
|
|
Ресурсные requests и limits для init-контейнера oci-hook-setup |
|
|
Дополнительные аргументы, передаваемые в tetragon-oci-hook |
|
|
Каталог установки JSON-файла hook для интерфейса oci-hooks |
|
|
Путь к сокету NRI для интерфейса nri-hook |
|
|
Полностью переопределяет образ контейнера tetragon-rthooks |
|
|
Репозиторий образа tetragon-rthooks |
|
|
Тег образа tetragon-rthooks |
|
|
Имя ServiceAccount для tetragon-rthooks; пустое значение означает использование имени по умолчанию |
|