![kubernetes kubelet 记录到文件和 logrotate](https://linux22.com/image/718506/kubernetes%20kubelet%20%E8%AE%B0%E5%BD%95%E5%88%B0%E6%96%87%E4%BB%B6%E5%92%8C%20logrotate.png)
kubelet 有一个选项可以将日志文件存储在 log-dir 中(https://github.com/kubernetes/kubernetes/issues/21248)。
我使用选项启动 kubelet --logtostderr=false --log-dir=/var/log/kubelet
(我已经创建了目录/var/log/kubelet
),并且确实看到了以 格式kubelet.(hostname).root.log.(date)
生成的日志文件/var/log/kubelet
。
就我而言,我看到三个如下所示的文件:
kubelet.hostname.root.log.ERROR.20180301-152321.161945
kubelet.hostname.root.log.INFO.20180301-152320.161945
kubelet.hostname.root.log.WARNING.20180301-152320.161945
此外,还会为每个 ERROR、INFO 和 WARNING 日志文件创建一个指向最新日志文件的符号链接:
kubelet.ERROR -> kubelet.hostname.root.log.ERROR.20180301-152321.161945
kubelet.INFO -> kubelet.hostname.root.log.INFO.20180301-152320.161945
kubelet.WARNING -> kubelet.hostname.root.log.WARNING.20180301-152320.161945
我的问题是如何轮换和删除超过 5 天的日志文件?这些文件似乎是由生成的glog
,但似乎虽然glog
轮换了日志文件,但它不支持删除旧日志文件(https://github.com/google/glog/issues/36)。
我知道 logrotate,但是文件应该有一个固定的文件名才能通过 logrotate 进行轮换。
有没有办法让 kubelet 记录文件并进行适当的日志轮换和删除旧文件?