在 bash 终端上逐页查看 kubectl 日志

View kubectl logs page by page on bash terminal

团队, 在 bash 我在 运行 下面查看日志,但是当它们很大时,终端全都被占用了,我无法停止它几分钟。

有没有一种方法可以让我在 bash 上执行 kubectl,它只显示 shell 屏幕大小的日志,然后我使用 return 键或空格键查看更多?就像journalctl?但我想在使用 kubectl 时实现这一点。

kubectl logs test-pod -n namespace-test

上面一次显示 10K 行,这是我不想要的。我也不想执行到 pod 并实际查看日志文件。有什么提示吗?或者是否有类似显示最后 100 行的内容?还是先用 xargs?

你可以这样做:

kubectl logs --tail=100 test-pod -n namespace-test

有几种方法可以获得。

1) 少

kubectl logs test-pod -n namespace-test | less

此命令将允许您从上到下逐页阅读日志。您可以使用箭头向上或向下移动。

2) --tail=

kubectl logs test-pod -n namespace-test --tail=500

将显示最后 500 行日志

3) 带 grep 的管道

kubectl logs test-pod -n namespace-test | grep <some_phrase>

它将允许您查找包含给定短语的日志。请注意,您可以通过管道加入命令,即

kubectl logs test-pod -n namespace-test --tail=500 | grep <some_phrase>

4) --since=

kubectl logs test-pod -n namespace-test --since=60

它显示最近 60 秒的日志

5) --since-time=''

与上一个类似。它将显示提供时间的日志。此命令中的格式为

'YYYY-MM-DDTHH:MM:ssZ'

kubectl logs test-pod -n namespace-test --since-time='2019-04-23T12:00:00Z'

您可能听说过 more 选项,但它是旧格式。您只能从上到下滚动,不能向上滚动。

kubectl logs test-pod -n namespace-test | more