Docker | водитель awslogs | Установка значения имени потока - PullRequest
0 голосов
/ 20 января 2020

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

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

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

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

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

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

1 Ответ

1 голос
/ 20 января 2020

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

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

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

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

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

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

Как отправить журналы Kubernetes на AWS Cloudwatch

...