如何在 kubernetes 容器/pod 内进行日志轮换?

Tyl*_*ale 5 logrotate google-cloud-platform kubernetes

我们的设置:

我们在 GCP 中使用 Kubernetes。我们有将日志写入共享卷的 pod,以及一个为日志系统吸收日志的 sidecar 容器。我们不能只使用 stdout 来代替这个过程。

其中一些 pod 寿命很长,并且由于没有日志轮转而填满了磁盘空间。

问题:防止磁盘空间填满的最简单方法是什么(无需安排 Pod 重新启动)?

我一直在尝试使用以下命令安装 logrotate:RUN apt-get install -y logrotate在我们的 Dockerfile 中并放置 logrotate 配置文件,/etc/logrotate.d/dynamicproxy但它似乎没有运行。/var/lib/logrotate/status永远不会生成。

我觉得我找错了方向,或者错过了一些让这项工作不可或缺的东西。任何帮助,将不胜感激。

Tyl*_*ale 2

我们最终编写了自己的守护进程集来正确地从节点而不是容器级别收集日志。然后,我们停止从容器写入共享卷并仅记录到标准输出。

我们使用 fluidd 来处理日志。

https://github.com/splunk/splunk-connect-for-kubernetes/tree/master/helm-chart/splunk-kubernetes-logging