使用 Kubectl 获取 Pod 日志的小技巧

2022-12-06 19:56:20 浏览数 (1)

可以使用 kubectl 命令从 Kubernetes 中的 Pod 中检索应用程序日志。

在这篇笔记中,我将展示如何从正在运行的 Pod(包括所有副本)和之前崩溃的 Pod 中获取日志。

还将展示如何使用 kubectl 命令获取最近(tail)和实时跟踪(follow) Pod 中的日志。

使用 Kubectl 获取 Pod 日志

要从 Kubernetes 中的 Pod 获取日志,首先需要找出 Pod 的名称或与 Pod 关联的标签:

代码语言:javascript复制
$ kubectl get pods --show-labels

从 Pod 获取日志:

代码语言:javascript复制
$ kubectl logs <podName>

如果 Pod 之前发生过崩溃,您可以通过以下方式访问上一个 Pod 的日志:

代码语言:javascript复制
$ kubectl logs --previous <podName>

如果一个 Pod 有多个副本,并且具有关联的标签(例如 app=my-app),您可以使用它来查看来自具有该标签的所有 Pod 的日志:

代码语言:javascript复制
$ kubectl logs -l app=my-app

获取最近日志

上面的命令显示了在 Pod 生命周期内收集的所有日志,因此可能需要一些时间才能将它们全部显示出来。

我可以只获取 Pod 的最近 100 行日志:

代码语言:javascript复制
$ kubectl logs --tail=100 <podName>

要显示最近一小时写入的 Pod 日志:

代码语言:javascript复制
$ kubectl logs --since=1h <podName>

在最近 15 分钟内:

代码语言:javascript复制
kubectl logs --since=15m <podName>

实时跟踪日志

实时跟踪来自 Pod 的日志:

代码语言:javascript复制
$ kubectl logs -f <podName>

实时跟踪 Pod 的最近 100 行日志:

代码语言:javascript复制
$ kubectl logs --tail=100 -f <podName>

0 人点赞