Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 将kubernetes(kubeadm)日志记录从/var/log/messages中删除_Logging_Kubernetes - Fatal编程技术网

Logging 将kubernetes(kubeadm)日志记录从/var/log/messages中删除

Logging 将kubernetes(kubeadm)日志记录从/var/log/messages中删除,logging,kubernetes,Logging,Kubernetes,我们有一个kubernetes集群在Centos 7上运行。但是,所有日志记录都将转到/var/log/messages,这使得centos系统日志难以读取。有没有办法让kubeadm/kubernetes直接登录到/var/log/kubernetes 我们已经将应用程序(pod)日志发送到装载点。我们需要移动kubernetes的stderr日志 但是,所有日志记录都将转到/var/log/messages,这使得centos系统日志难以读取。有没有办法让kubeadm/kubernetes

我们有一个kubernetes集群在Centos 7上运行。但是,所有日志记录都将转到/var/log/messages,这使得centos系统日志难以读取。有没有办法让kubeadm/kubernetes直接登录到/var/log/kubernetes

我们已经将应用程序(pod)日志发送到装载点。我们需要移动kubernetes的stderr日志

但是,所有日志记录都将转到/var/log/messages,这使得centos系统日志难以读取。有没有办法让kubeadm/kubernetes直接登录到/var/log/kubernetes

不,不完全正确,但您可以重新配置Docker以不同的方式登录

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

当浏览版本
1.13
和最新版本的Docker时,他们或多或少会说相同的话:

如果未指定日志驱动程序,则默认为json文件

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

OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'
正如您所看到的,日志驱动程序配置为
journald
,这应该是您在
/var/log/messages
中看到容器中日志的原因。您可以检查配置了哪些日志记录驱动器:

docker info | grep 'Logging Driver'
日志驱动程序决定所有日志的发送位置,Docker表示容器中的
stderr
stdout
。如果您选择配置,Docker支持两种不同的方法,例如
json文件
,如果您想从操作系统角度重新定位日志记录(“更改”日志路径),这可能是最佳选择。每个Docker容器都将有自己的日志写入
/var/log/pods//
,实际上日志文件是返回
/var/lib/Docker/containers///-json.log的符号链接

如果您确实配置了
json文件
,则删除
--log driver=journald
标志,并在文档中提到的
/etc/docker/daemon.json
文件中配置此标志。使用
json文件
可以配置日志旋转和日志文件大小等内容,有关更多选项,请参阅

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

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


最后,我认为最好考虑一下日志传送,并调查其他日志驱动程序是否适合您的环境。

我遵循了您的提示,谢谢,并将您的问题标记为答案,但是,我仍然在消息中写入了一些小东西:Aug 12 03:25:49 kube-dev-master0 kubelet:W0812 03:25:49.673951 xxx container_manager_linux.go:792]CPUAccounting未为pid启用:xxxx Aug 12 03:25:49 kube-dev-master0 kubelet:W0812 03:25:49.673961 xxxx container_manager_linux.go:795]MemoryAccounting未为pid:xxxx。还有什么方法可以移动这些吗?@warhansen,我编辑了我的答案,并添加了一个关于kubelet日志的部分。希望这能帮你做最后一点!