从 kubectl logs -f 的巨大日志中拖尾几行
Tailing few lines from huge logs of kubectl logs -f
kubectl logs -f pod
从头开始显示所有日志,当日志很大时就会出现问题,我们必须等待几分钟才能获取最后一条日志。远程连接时变得更糟。有没有办法可以跟踪最后 100 行日志的日志并跟踪它们?
在集群中,最佳做法是通过聚合器将所有日志收集到一个点,并使用专用工具对其进行分析。因此,在 K8S 中,日志命令非常基础。
总之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 上提供了一些符合您要求(以及更多)的工具,其中一些是:
尝试kubectl logs -f pod --tail=10
如果你正在测试一些东西,你也可以从最后看日志:
kubectl logs my-pod-name --follow
这将像 运行 tail -f
在 bash 或其他 shell 中一样工作。
从具有多个容器的 pod 的日志中获取尾行。
kubectl logs <pod name> --all-containers=true --tail=10
要从应用程序中 pods 的日志中获取尾行:
kubectl logs --selector app=<your application> --tail=10
(例如:如果您的应用程序有 3 个 pods,则上述命令的输出可以是 30 个日志,每个 pod 日志 10 个)
你可以用这种方式得到前10行
kubectl logs my-pod-name -n my-ns | head -n 10
kubectl logs -f pod
从头开始显示所有日志,当日志很大时就会出现问题,我们必须等待几分钟才能获取最后一条日志。远程连接时变得更糟。有没有办法可以跟踪最后 100 行日志的日志并跟踪它们?
在集群中,最佳做法是通过聚合器将所有日志收集到一个点,并使用专用工具对其进行分析。因此,在 K8S 中,日志命令非常基础。
总之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 上提供了一些符合您要求(以及更多)的工具,其中一些是:
尝试kubectl logs -f pod --tail=10
如果你正在测试一些东西,你也可以从最后看日志:
kubectl logs my-pod-name --follow
这将像 运行 tail -f
在 bash 或其他 shell 中一样工作。
从具有多个容器的 pod 的日志中获取尾行。
kubectl logs <pod name> --all-containers=true --tail=10
要从应用程序中 pods 的日志中获取尾行:
kubectl logs --selector app=<your application> --tail=10
(例如:如果您的应用程序有 3 个 pods,则上述命令的输出可以是 30 个日志,每个 pod 日志 10 个)
你可以用这种方式得到前10行
kubectl logs my-pod-name -n my-ns | head -n 10