大家好,
我们目前 AWS EKS 集群中的一个 Pod 存在问题。 Pod 日志记录相当多,并且会定期被驱逐,因为它超出了临时存储限制。不幸的是,我们正在运行带有 docker 容器引擎的旧版本 EKS,但我们的目标是尽快迁移到新版本。目前,我们还没有配置任何日志轮换。
在思考避免这种行为的方法时,我想到了两种可能性:
理想情况下,我希望有一个混合解决方案,如果需要的话,可以允许临时存储限制,但避免用日志填充它。我想知道一段时间后情况 1 会发生什么。内存消耗会增加吗?这似乎是一个非常标准的问题,但在我的研究过程中我无法找到令人满意的答案。您通常如何处理 Kubernetes 中的日志密集型 pod?
感谢您提前提供任何提示和答案
我会考虑走另一条路 更改临时存储限制或添加 sidecar 容器以进行日志轮换。
自 K8S
v1.21
Kubelet 负责通过与容器运行时通信(使用 CRI)来轮转容器日志。
从这里:
您可以配置两个 kubelet 配置设置,
(默认 10Mi)和containerLogMaxSize
(默认 5)、使用kubelet配置文件。这些设置可以让你 配置每个日志文件的最大大小和最大数量 每个容器分别允许的文件。containerLogMaxFiles
因此,您可以配置 Kubelet 以更频繁地轮换日志(通过每次轮换更多日志)。
(*) 如果相关:
如果 1 分钟默认值不够,请调整 FluentD 的
flush_interval
。 buffer_chunk_limit
。