Kubernetes - 增加 kubectl 日志大小

3

我有一个运行在Kubernetes容器中的应用程序,使用Azure Kubernetes Service(AKS)进行管理。 我可以使用以下命令将应用程序部署时的日志输出到文本文件中:

kubectl logs deployment/my-deployment > out.txt

这使我得到一个大约最大28MB的文件。当我使用docker logs...在物理VM上获取相同容器的docker日志时,日志文件要大得多(高达120MB+)。

我该如何增加可用的kubectl logs的大小?如果有此选项,则可能是一种增加保存容器的pod的可用kubectl logs大小的选项,因为pod和deployment日志是相同的。

它不是/etc/docker/daemon.json中的docker配置限制了kubectl日志的大小,因为它被设置为50MB。我已经阅读了kubernetes使用的基础docker配置,但事实并非如此,因为我的kubectl日志被截断到大约28MB左右。

1个回答

3

Kubectl logs可能会使用默认日志轮换来读取日志,这意味着logrotate服务处于活动状态

此问题所述,请检查cat /etc/logrotate.d/docker-containers的内容以进行确认。

根据非官方 Kubernetes的解释:

在节点级别记录日志的一个重要考虑因素是实现日志轮换,以确保日志不会消耗节点上所有可用的存储空间。Kubernetes使用logrotate工具实现日志轮换。

Kubernetes每天执行一次日志轮换,或者如果日志文件大小超过10MB,则执行日志轮换。
每个轮换属于单个容器;如果容器反复失败或Pod被驱逐,则该容器的所有先前轮换将丢失。
默认情况下,Kubernetes会保留每个容器的五个日志轮换


谢谢@VonC。在我的/etc/logrotate.d/目录下没有名为docker-containers的文件。 - Chris Halcrow
@ChrisHalcrow 你有检查 Kubernetes 部署的容器内部吗?我的意思是,https://github.com/kubernetes/kubernetes/issues/11046 显示:/var/lib/docker/containers/63f0f01f331682d637413d0f550d22340a8ab0c6481205afe9823d53e2a2ee08# cat /etc/logrotate.d/docker-containers - VonC
嗨@VonC,谢谢。容器目录中没有“etc”目录。 - Chris Halcrow
@ChrisHalcrow 好的。有任何日志轮换吗?我总是看到由于这种服务而产生较小的日志。 - VonC
没有找到任何东西,find / *logrotate* - Chris Halcrow
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接