在 kubernetes 中清除 pod 的日志?

Wei*_*ang 7 kubernetes

如何清除特定 pod 的现有日志?

这样我就可以kubectl logs在下一次获得自那时以来的所有日志。

谢谢!

cod*_*ger 11

你不能,日志轮转一般是在Docker中实现的(或者有时通过节点主机上的logrotate实现)。但是您可以使用kubectl logs --since-time并填写上次获取的时间。如果您正在尝试构建一些东西来自动迭代处理日志,可能会使用 Fluentd 将它们加载到某种数据库中(Kafka 在这方面很常见)。

  • 加一表示“_即将滥用..._”——通常后面跟着我目前正在做的事情 (3认同)
  • 那么,您可以配置 docker 守护进程来更频繁地轮换日志。您也可以删除 docker JSON 日志文件,但我真的不会这样做。顺便提一句。`--since` 也可能很有趣,因为您可以指定自上次日志消息以来的时间量。 (2认同)
  • 是的,但我认为 Kubernetes 没有任何方法可以影响这一点。如果您想要低级别,请确保您可以在“rm”日志文件中通过 SSH :) 但也不要这样做,我认为这个问题意味着即将滥用“kubectl 日志”。 (2认同)

Dav*_*ave 10

找到了一些其他有用的日志限制选项。它以秒、分钟或小时为单位进行限制:

kubectl logs podname-xxxxxxxx-xxxx --since 10s
kubectl logs podname-xxxxxxxx-xxxx --since 5m
kubectl logs podname-xxxxxxxx-xxxx --since 1h
Run Code Online (Sandbox Code Playgroud)

这对于多行来说:

kubectl logs podname-xxxxxxxx-xxxx --tail=5
kubectl logs podname-xxxxxxxx-xxxx --tail=-1
Run Code Online (Sandbox Code Playgroud)