Докер | драйвер awslogs | Установка значения имени потока

Я говорю containerd использовать awslogs, используя /etc/docker/daemon.json file, как это предлагается в документации в https://docs.docker.com/config/containers/logging/awslogs/

По умолчанию для имени потока aws задан случайно сгенерированный идентификатор контейнера, который не имеет смысла, когда вы перечисляете потоки внутри группы.

У драйвера awslogs есть возможность задать для awslogs-stream определенное имя, но это не удовлетворит мои потребности, поскольку я хочу, чтобы разные контейнеры использовали разные потоки.

Я предполагаю, что я хочу сказать докеру, что нужно составить идентификатор потока из имени изображения и идентификатора контейнера, но я не смог найти для этого вариант.

Теоретически я могу установить имя потока непосредственно в команде docker run, но этого недостаточно, потому что я использую Kubernetes для запуска этих контейнеров, поэтому я не уверен, как установить stream_name из файла yml приложения.

Есть идеи, как удовлетворить мои потребности?


person Eytan Naim    schedule 20.01.2020    source источник
comment
Согласно github.com/kubernetes/kubernetes/issues/15478, нет возможности передать параметры лог-драйвера из Kubernetes   -  person Eytan Naim    schedule 20.01.2020


Ответы (1)


Вы правы, нет никаких признаков внедрения --log-opt в Kubernetes, поскольку dockerd устарел.

Вы пытались установить tag вместо указания awslogs-stream?

Из ссылки документации Docker, которую вы опубликовали:

Укажите tag в качестве альтернативы опции awslogs-stream. tag интерпретирует разметку шаблона Go, такую ​​как {{.ID}}, {{.FullID}} или {{.Name}} docker.{{.ID}}. Подробную информацию обо всех поддерживаемых заменах шаблонов см. В документации по параметрам тегов.

Другой жизнеспособный подход заключается в использовании демона контейнера sidecar для обработки журналов и последующей пересылки в журналы awslogs, но tag это более чистое и простое решение.

Вот процесс с fluentd:

Как отправлять журналы Kubernetes в AWS Cloudwatch < / сильный>

person Will R.O.F.    schedule 20.01.2020