如何解决 Kubernetes 中日志不断增加的问题?

How to solve the increasing log problem in Kubernetes?

我正在维护一个 K8s 集群,最近由于磁盘压力,kubelet 在不同的节点上被驱逐了 pods 很多次。经过调查,我发现问题出在 /var/lib/docker/containers/.../*-json.log 的容器日志文件,这些文件可以增长到数百 Gi 并占用所有磁盘。

当我使用由 Kibana、Elasticsearch 和 Fluentbit 组成的中央日志堆栈时,我什至会遇到这个问题。 fluentbit 日志约为 500 Gi,在删除中央日志堆栈后,磁盘压力几乎得到解决。但现在我看到我的一些其他组件和它的日志消耗了大约 170 Gi。

在 k8s 中管理日志文件的一些最佳实践和工具是什么?

每个 Kubernetes 安装程序都应该包含 Logrotate 来处理这个问题。 https://kubernetes.io/docs/concepts/cluster-administration/logging/ 有一些基本信息,但这取决于您的具体配置。

编辑:正如我现在告诉自己的那样,Docker 本身也可以直接进行日志轮换,所以这也是一个选项。