kubernetes 从kubectl日志的巨大日志中跟踪几行-f

h5qlskok  于 2023-04-29  发布在  Kubernetes
关注(0)|答案(5)|浏览(322)

kubectl logs -f pod从一开始就显示所有日志,当日志很大,我们必须等待几分钟才能获得最后一个日志时,这就成了一个问题。当远程连接时,它变得更糟糕。有没有办法让我们追踪最后100行的日志并跟踪它们?

zsbz8rwp

zsbz8rwp1#

在集群中,最佳实践是通过聚合器在单个点上收集所有日志,然后使用专用工具对其进行分析。因此,在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上可以找到一些符合您要求的工具(以及更多),其中一些是:

ckx4rj1h

ckx4rj1h2#

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

fhity93d

fhity93d3#

从多容器的Pod日志中提取尾线。

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

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

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

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

roqulrg3

roqulrg34#

您可以使用这种方法来获得前10行

kubectl logs my-pod-name  -n my-ns | head -n 10
6rqinv9w

6rqinv9w5#

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

kubectl logs my-pod-name --follow

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

相关问题