我正在维护一个 K8s 集群,最近由于磁盘压力,kubelet 在不同节点上多次驱逐 Pod。经过调查,我发现问题出在 /var/lib/docker/containers/.../*-json.log
处的容器日志文件,这些文件可能会增长到数百个 Gi,消耗所有磁盘。
当我使用由 Kibana、Elasticsearch 和 Fluentbit 组成的中央日志堆栈时,我什至遇到了这个问题。 flutterbit 日志约为 500 Gi,移除中央日志堆栈后,磁盘压力几乎得到解决。但现在我看到我的其他一些组件也出现了这种情况,并且其日志消耗了大约 170 Gi。
在 k8s 中管理日志文件的最佳实践和工具有哪些?
最佳答案
每个 Kubernetes 安装程序都应包含 Logrotate 来处理此问题。 https://kubernetes.io/docs/concepts/cluster-administration/logging/有一些基本信息,但这取决于您的具体配置。
编辑:正如我现在告诉自己的那样,Docker 本身也可以直接进行日志轮换,因此这也是一个选项。
关于logging - 如何解决Kubernetes中日志不断增加的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59209806/