从kubectl原木-f的大原木中拖出几行

时间:2018-08-14 06:34:35

标签: kubernetes tail kubectl

kubectl logs -f pod从头开始显示所有日志,当日志很大时,这将成为问题,我们必须等待几分钟才能获取最后的日志。从远程连接时,情况变得更糟。有没有一种方法可以让我们将日志的最后100行尾随日志并跟踪它们?

4 个答案:

答案 0 :(得分:20)

在集群中,最佳实践是通过聚合器将所有日志收集到一个点中,并使用专用工具进行分析。因此,在K8S中,log命令是非常基本的。

无论如何,kubectl logs -h都会显示一些对您有用的选项:

# Display only the most recent 20 lines of output in pod nginx
kubectl logs --tail=20 nginx

# Show all logs from pod nginx written in the last hour
kubectl logs --since=1h nginx

您可以在github上找到一些满足您要求(以及更多)的工具,其中一些是:

答案 1 :(得分:7)

尝试kubectl logs -f pod --tail=10

答案 2 :(得分:0)

从具有多个容器的 pod 的日志中获取尾行。

kubectl logs <pod name> --all-containers=true --tail=10

从应用程序中的 pod 日志中获取尾行:

kubectl logs --selector app=<your application> --tail=10

(例如:如果您的应用程序有 3 个 Pod,则上述命令的输出可以是 30 个日志,每个 Pod 日志的 10 个)

答案 3 :(得分:-1)

如果您正在测试某些内容,您还可以从最后跟踪日志:

kubectl logs my-pod-name --follow

这就像在 bash 或其他 shell 中运行 tail -f 一样。