可以使用 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 的日志:
$ kubectl logs -l app=my-app
获取最近日志
上面的命令显示了在 Pod
生命周期内收集的所有日志,因此可能需要一些时间才能将它们全部显示出来。
我可以只获取 Pod
的最近 100
行日志:
$ 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>