首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将kubernetes (kubeadm)从/var/log/消息中删除

问将kubernetes (kubeadm)从/var/log/消息中删除
EN

Stack Overflow用户
提问于 2018-08-08 13:00:08
回答 1查看 3.3K关注 0票数 2

我们有一个运行在Centos 7上的kubernetes集群。然而,所有日志记录都将转到/var/log/messages,这使得centos系统日志难以读取。我是否可以告诉kubeadm/kubernetes登录到/var/ log /kubernetes呢?

我们已经将我们的应用程序(pod)日志发送到一个挂载点。我们需要移动库伯奈特的史泰尔原木。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-08 21:03:14

然而,所有日志记录都将转到/var/log/messages,这使得centos系统日志难以读取。我是否可以告诉kubeadm/kubernetes登录到/var/ log /kubernetes呢?

不,不完全是,但您可以重新配置Docker以另一种方式登录。

这可能取决于您正在运行的Docker版本,但在我的CentOS 7 VM (几周前)中,我运行的是通过yum安装的Docker版本1.13.1。

当浏览文档的1.13版本和最新的稳定版本的Docker时,他们说的差不多是一样的:

如果不指定日志驱动程序,则默认为json-file。

我通过yum安装的Docker版本在启动Docker时加载的环境文件(/etc/sysconfig/docker)中有以下一行:

代码语言:javascript
复制
OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'

正如您可以看到的那样,日志驱动程序被配置为journald,这应该是您在/var/log/messages中从容器中看到日志的原因。您可以检查配置了哪个日志记录驱动器:

代码语言:javascript
复制
docker info | grep 'Logging Driver'

日志驱动程序决定在何处发送所有日志,即从容器发送的stderr和stdout。Docker支持两个不同的测井驱动程序,如果您选择配置例如json-file,如果您想从OS的角度重新定位日志记录(“更改”日志路径),这可能是最好的选择。每个Docker容器都有自己的日志写入/var/log/pods/<ID>/<NAME>/<LOGFILE>,实际上日志文件是返回到/var/lib/docker/containers/<ID>/<ID>-json.log的符号链接。

如果要配置json-file,则删除--log-driver=journald标志,然后在文档中提到的/etc/docker/daemon.json文件中配置该标志。使用json-file,您可以配置日志旋转和日志文件大小等内容,请参阅文档获得更多选项。

当通过daemon.json文件进行配置时--这将成为一个全局设置--您可以始终使用docker run ... --log-driver覆盖用于特定容器的日志记录驱动程序。

这些日志记录更改适用于在Docker中运行的所有内容,要移动kubelet (它与主机上的Docker一起运行),您可以查看可配置的选项。默认情况下,kubelet stderr日志是通过journald记录的,并在/var/log/messages中结束,要更改此行为,可以添加--log-dir选项并指向另一个位置。

最后,我认为如果日志传送适合您的环境,那么考虑并研究其他日志驱动程序是很好的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51747434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档