Стадия жизненного цикла модуля: General Availability
У модуля есть требования для установки
v1.1.0
Изменения
- Сбором логов теперь управляет отдельный контроллер. Раньше конфигурацию агента сбора логов генерировали хуки модуля; теперь её собирает Deployment
log-shipper-controller, который работает в неймспейсе модуля на системных узлах. Контроллер следит за ресурсами ClusterLogDestination, ClusterLoggingConfig и PodLoggingConfig, обновляет конфигурацию агента при каждом изменении и запускает или останавливает DaemonSet агента в зависимости от того, есть ли что отправлять. Существующие ресурсы и настройки модуля продолжают работать без изменений. Контроллер отдаёт собственные метрики, которые собирает Prometheus платформы.
Улучшения
- Логи, собранные с подов Kubernetes, теперь содержат лейбл
host_ipс IP-адресом узла, на котором работает под. Раньше лейбл устанавливался только для логов, читаемых из файлов.
Безопасность
- Исправлены различные уязвимости.
v1.0.7
Новые возможности
- Порядок чтения и размер порции чтения файлов логов. У источников
kubernetesPodsиfileв ClusterLoggingConfig и в PodLoggingConfig появились два новых параметра.maxReadBytesограничивает, сколько байт агент читает из одного файла за проход, прежде чем перейти к следующему, — так чтение распределяется равномернее между множеством активно растущих файлов.oldestFirstзаставляет агент дочитывать старые файлы, прежде чем браться за новые. Если параметры не заданы, агент работает как раньше: логи подов читаются от старых к новым, файлы — равномерно, порция чтения — 2048 байт. Кроме того, агент больше не добавляет к каждой записи лога пода идентификатор контейнера, идентификатор образа, список IP-адресов пода, аннотации пода, UID пода и лейблы неймспейса. Эти поля удалялись перед отправкой, поэтому отправляемые логи не меняются.
Исправления
- Исправлено время события для хранилищ Loki, Splunk, Vector и Socket с кодеком GELF. Агент преобразовывал метку времени каждой записи в строку в локальном часовом поясе узла, а эти хранилища берут время события только из типизированной метки времени, поэтому сохраняли время отправки записи вместо времени её появления. Теперь метка времени доходит до них без изменений, и поле
timestampв записи содержит время в UTC, а не в локальном часовом поясе узла; для Splunk строка в локальном часовом поясе сохраняется в полеdatetime. Elasticsearch, Logstash, Kafka и Socket с другими кодеками по-прежнему получают метку времени строкой в локальном часовом поясе узла. Преобразование теперь выполняется непосредственно перед трансформациями хранилища, а метка времени, уже заменённая трансформацией, остаётся как есть.
v1.0.6
Новые возможности
- Удаление записей лога для отдельного хранилища. Новая трансформация
DropEventв ClusterLogDestination удаляет запись лога, если истинны все условия изwhen. Условия записываются так же, как вAddLabels, а трансформация выполняется на своей позиции в списке, поэтому может опираться на лейблы, добавленные предыдущими трансформациями. В отличие отlogFilterиlabelFilterв ClusterLoggingConfig, которые фильтруют на источнике для всех хранилищ,DropEventдействует только для того хранилища, где задана.
Изменения
- Логи, собираемые с подов Kubernetes, теперь содержат лейбл
host_ipс IP-адресом узла, на котором работает под. У логов, собираемых из файлов, он уже был.
v1.0.5
Улучшения
- В документации с примерами теперь описано, как обрабатываются несколько трансформаций
ParseMessage: они применяются к каждой записи по порядку сверху вниз, и после первого успешного разбора остальные не применяются. Поэтому трансформации для конкретных форматов, например JSON, следует указывать первыми, а универсальную трансформацию строки — последней.
v1.0.4
Исправления
- Исправлена трансформация
ReplaceValueс литеральной строкой замены (без именованных групп вtarget). Агент сбора логов отклонял сгенерированную конфигурацию, поэтому трансформация не работала.
v1.0.3
Изменения
- Системные метрики агента сбора логов теперь содержат лейбл
d8_source="dkp". Он позволяет отличать метрики платформы от метрик, которые отдают пользовательские приложения. - Неймспейс модуля теперь проверяется по профилю Pod Security Standards
restricted. Нарушения выводятся только как предупреждения и не блокируют запуск нагрузки. Отклонения, которые нужны агенту, — запуск от root и монтирование путей узла для чтения логов контейнеров и узла и для хранения позиции чтения — описаны и обоснованы в ресурсе SecurityPolicyException, который поставляется вместе с модулем, поэтому сбор логов продолжает работать без каких-либо действий. - Права агента ограничены настолько, насколько это позволяет сбор логов: применён seccomp-профиль
RuntimeDefault, сброшены все Linux capabilities, запрещено повышение привилегий, корневая файловая система контейнеров доступна только для чтения. - Удалён параметр конфигурации модуля
registry.dockercfg. Образы модуля всегда загружаются с учётными данными хранилища образов платформы, поэтому, если параметр указан в настройках модуля, удалите его перед обновлением.
Безопасность
- Исправлены различные уязвимости.
v1.0.2
Исправления
- Исправлены ссылки между страницами документации и в описаниях custom resource, которые перестали работать после переноса модуля в отдельный репозиторий.
v1.0.1
Изменения
- Образы модуля теперь собираются на основе образов container-base с использованием пакетного менеджера
pm.
Безопасность
- Исправлены различные уязвимости. Вместе с модулем теперь поставляется VEX-документ, в котором перечислены уязвимости зависимостей, не затрагивающие модуль, и причина для каждой из них.
v1.0.0
Изменения
- Переработано управление ресурсами в режиме
Static: запросы CPU и памяти теперь задаются в секцииresourcesRequests.static.requests, а ограничения CPU и памяти для агента — в секцииresourcesRequests.static.limits. Существующие настройки модуля конвертируются автоматически, никаких действий не требуется.
Исправления
- Исправлена ошибка, из-за которой запросы CPU и памяти, заданные для режима управления ресурсами
Static, не доходили до контейнера агента сбора логов.