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