kubectl logs -f pod从一开始就显示所有日志,当日志很大,我们必须等待几分钟才能获得最后一个日志时,这就成了一个问题。当远程连接时,它变得更糟糕。有没有办法让我们追踪最后100行的日志并跟踪它们?
kubectl logs -f pod
zsbz8rwp1#
在集群中,最佳实践是通过聚合器在单个点上收集所有日志,然后使用专用工具对其进行分析。因此,在K8S中,log命令是非常基本的。无论如何,kubectl logs -h显示了一些对您有用的选项:
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上可以找到一些符合您要求的工具(以及更多),其中一些是:
ckx4rj1h2#
试试kubectl logs -f pod --tail=10
kubectl logs -f pod --tail=10
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个日志)
roqulrg34#
您可以使用这种方法来获得前10行
kubectl logs my-pod-name -n my-ns | head -n 10
6rqinv9w5#
如果您正在测试某些内容,您也可以从最后开始跟踪日志:
kubectl logs my-pod-name --follow
这就像在bash或其他shell中运行tail -f一样。
tail -f
5条答案
按热度按时间zsbz8rwp1#
在集群中,最佳实践是通过聚合器在单个点上收集所有日志,然后使用专用工具对其进行分析。因此,在K8S中,log命令是非常基本的。
无论如何,
kubectl logs -h
显示了一些对您有用的选项:在github上可以找到一些符合您要求的工具(以及更多),其中一些是:
ckx4rj1h2#
试试
kubectl logs -f pod --tail=10
fhity93d3#
从多容器的Pod日志中提取尾线。
从应用中的pod日志中获取尾行:
(ex:如果您的应用程序有3个pod,则上述命令的输出可以是30个日志(每个pod 10个日志)
roqulrg34#
您可以使用这种方法来获得前10行
6rqinv9w5#
如果您正在测试某些内容,您也可以从最后开始跟踪日志:
这就像在bash或其他shell中运行
tail -f
一样。