使用docker,我可以通过log-driver = syslog命令行选项将容器日志转发到syslog。如何通过Kubernetes yaml / json描述符传递这些docker参数?
我不认为kubernetes需要在pod json文件中执行此类--log-driver选项。根据我的经验,您可以在泊坞窗服务中设置此类设置。即检查
/etc/systemd/system/docker.service
并设置ExecStart = / usr / bin / docker daemon --log-driver = json-file blablabla。更多信息可以到达:https://docs.docker.com/engine/admin/logging/overview/#configure-logging-drivers
更进一步,如果你没有设置这个--log-driver,默认情况下会创建json文件,它会收集kubernetes pods中容器的所有日志,你可以找到这些文件
your_docker_runtime_root/docker/containers/container_id/container_id-json.json
在这个帖子中讨论了很长一段时间:https://github.com/kubernetes/kubernetes/issues/15478,但是k8s社区真的建议拥有自己的专用日志代理。您可以选择在每台主机下运行它或将其用作sidecar或更多推荐作为DaemonSet。
因为k8s离开dockerd
并转移到containerd
,你甚至不能选择配置dockerd日志记录驱动程序和日志选项。所以你要么等待k8s社区添加日志驱动程序opts或使用上述方法之一。