按时间轮换 Kubernetes 上的 pod 日志

问题描述

我的团队有一个特殊要求,每 X 小时删除所有 pod 日志。这是因为日志包含一些敏感信息 - 我们使用 fluentbit 读取和处理它们,但日志仍然存在是一个问题。 我找不到任何按时间轮换它们的正常方法,只有关于按文件大小轮换的 docker daemon 日志驱动程序的建议。 是否可以创建一个 k8s cronjob 来为每个 pod/容器执行诸如“echo ''> /path/to/logfile”之类的操作?如果是,如何?

我很感激这里的任何帮助。 谢谢!

解决方法

Kubernetes 不提供内置的日志轮换功能,但该功能可在许多工具中使用。

根据Kubernetes Logging Architecture

节点级日志的一个重要考虑是实现日志 轮换,以便日志不会消耗所有可用的存储空间 节点。 Kubernetes 不负责轮转日志,而是负责轮转日志 部署工具应该设置一个解决方案来解决这个问题。例如, 在 Kubernetes 集群中,通过 kube-up.sh 脚本部署,有一个 logrotate 工具配置为每小时运行一次。您还可以设置一个 容器运行时自动轮换应用程序的日志。

以下是如何实现日志轮换的一些示例:

您可以将它们用作指南。