Docker | awslogs 驱动程序 |设置含义流名称
Docker | awslogs driver | Setting meaning stream name
我告诉 containerd 使用 /etc/docker/daemon.json
文件来使用 awslogs,正如 https://docs.docker.com/config/containers/logging/awslogs/
中的文档所建议的那样
默认情况下,aws 流名称设置为随机生成的容器 ID,当您在组内列出流时,它没有意义。
awslogs 驱动程序可以选择将 awslogs-stream 设置为特定名称,但这不能满足我的需求,因为我希望不同的容器使用不同的流。
我想我想做的是告诉 docker 从图像名称和容器 ID 组成流 ID,但我找不到相应的选项。
理论上,我可以直接在 docker run
命令中设置流名称,但这还不够好,因为我使用 Kubernetes 启动这些容器,所以我不确定如何设置 stream_name 来自应用程序 yml 文件。
有什么办法可以满足我的需求吗?
你是对的,没有迹象表明 --log-opt
被实施到 Kubernetes 中,因为 dockerd 已被弃用。
您是否尝试设置 tag
而不是指定 awslogs-stream
?
- 检查此 Use Awslogs With Kubernetes 'Natively',因为它可能完全符合您的需求。
来自 Docker 您发布的文档 link:
Specify tag
as an alternative to the awslogs-stream
option. tag
interprets Go template markup, such as {{.ID}}
, {{.FullID}}
or {{.Name}}
docker.{{.ID}}
.
See the tag option documentation for details on all supported template substitutions.
另一种可行的方法是使用 sidecar 容器守护进程来处理日志,然后转发到 awslogs,但 tag
是一种更清洁、更简单的解决方案。
这是使用 fluentd 的过程:
How to Send Kubernetes Logs to AWS Cloudwatch
我告诉 containerd 使用 /etc/docker/daemon.json
文件来使用 awslogs,正如 https://docs.docker.com/config/containers/logging/awslogs/
默认情况下,aws 流名称设置为随机生成的容器 ID,当您在组内列出流时,它没有意义。
awslogs 驱动程序可以选择将 awslogs-stream 设置为特定名称,但这不能满足我的需求,因为我希望不同的容器使用不同的流。
我想我想做的是告诉 docker 从图像名称和容器 ID 组成流 ID,但我找不到相应的选项。
理论上,我可以直接在 docker run
命令中设置流名称,但这还不够好,因为我使用 Kubernetes 启动这些容器,所以我不确定如何设置 stream_name 来自应用程序 yml 文件。
有什么办法可以满足我的需求吗?
你是对的,没有迹象表明 --log-opt
被实施到 Kubernetes 中,因为 dockerd 已被弃用。
您是否尝试设置 tag
而不是指定 awslogs-stream
?
- 检查此 Use Awslogs With Kubernetes 'Natively',因为它可能完全符合您的需求。
来自 Docker 您发布的文档 link:
Specify
tag
as an alternative to theawslogs-stream
option.tag
interprets Go template markup, such as{{.ID}}
,{{.FullID}}
or{{.Name}}
docker.{{.ID}}
. See the tag option documentation for details on all supported template substitutions.
另一种可行的方法是使用 sidecar 容器守护进程来处理日志,然后转发到 awslogs,但 tag
是一种更清洁、更简单的解决方案。
这是使用 fluentd 的过程:
How to Send Kubernetes Logs to AWS Cloudwatch