如何截断 kubernetes pod 的日志?

Yu *_*aao 2 logging kubernetes

我下载了一个 pod 的日志,它的大小大于 1G,如何处理/截断 pod 的日志?所以我可以更快地下载它?

PS:我需要清除日志的旧部分,以便释放磁盘空间

cod*_*ger 6

kubectl logs --tail=1000只显示最近的 1000 行。根据需要进行调整。

--tail=-1:要显示的最近日志文件的行。默认为 -1,没有选择器,如果提供了选择器,则显示所有日志行,否则为 10。


dam*_*j07 5

如果您想要基于时间的截断,还可以添加到 Coderangers 答案中。这是您获取最近 1 小时日志的方法。

kubectl logs --since=1h nginx
Run Code Online (Sandbox Code Playgroud)

显示过去一小时内来自 pod nginx 的所有日志。


更新发表评论。

pod 和容器日志存储在各自的应用程序路径中。参考这个答案。/sf/answers/3561101701/

另一个解决方案是截断每个 kubernetes 节点的 docker 日志。

sudo sh -c "du -ch /var/lib/docker/containers/*/*-json.log | grep total"
This will give total size of docker logs.

sudo sh -c "truncate -s 0 /var/lib/docker/containers/*/*-json.log"
Above command will truncate all the log files. 
Run Code Online (Sandbox Code Playgroud)

注意* - 这是一个变通解决方案。确保在执行此操作之前备份重要日志。