【发布时间】:2020-07-10 06:38:46
【问题描述】:
我有一个在 kubernetes 中运行的 pod,其中一些边车使用以下命令从“主”容器中跟踪不同的日志文件:
tail -n+1 -f path/to/log.file
问题是,在部署 pod 几天后,其中一个边车停止了拖尾日志,而其余的边车继续正常工作。
失败的总是相同的,与其他相比,拖尾一个更大的日志文件。
我进入边车,手动拖尾,就可以正常看到日志了。
拖尾停止时 pod 没有重新启动,并且日志文件没有重新创建。我能看到的唯一想法是 pod 几分钟前释放了一些内存,但我不知道这与问题有什么关系。
有什么可能导致这种情况的想法吗?
【问题讨论】:
-
相关文件是否发生了任何类型的日志轮换?
-
@kristaps 是的,这个文件有日志轮换,每天大约发生 4 次。会不会是因为这个?当我说文件没有重新创建时,我的意思是我的意思是,它可以因为轮换而重新创建,但我看不到这种情况发生的时间,因为我最多只能有 2 天前的日志文件,而且这种情况发生得更早。跨度>
-
@kristaps 其他正确跟踪的日志文件也有轮换。
-
Tail 有
--max-unchanged-stats=N标志,在N迭代后重新打开文件,如果文件大小没有改变以检查它是否已取消链接,这可能发生在日志轮换中。跨度> -
是的@kristaps,由于重新创建了日志文件,这显然是一个问题。我不知道为什么我们只能在这种情况下而不是在其余文件中观察它。将发布答案
标签: kubernetes tail