大家都知道可以使用kubectl命令从 Kubernetes 中的 Pod 检索应用程序日志。
下面将展示
- 如何从正在运行的 Pod(包括所有副本)和之前崩溃的 Pod中 获取日志。
- 如何使用kubectl命令实时跟踪和查看Pod尾部的日志。
获取Pod名称
要从 Kubernetes 中的 Pod 获取日志,首先需要找到 Pod 的名称或与 Pod 关联的标签:
$ kubectl get pods --show-labels
获取Pod日志:
$ kubectl logs <podName>
如果 Pod 之前崩溃过,您可以使用以下命令访问前一个 Pod 的日志:
$ kubectl logs --previous <podName>**strong text**
如果一个 Pod 有多个副本,并且具有关联的标签(例如app=my-app),您可以使用它来查看具有该标签的所有 Pod 的日志:
$ kubectl logs -l app=my-app
获取Pod尾部日志
上面的命令显示 Pod 生命周期内收集的所有日志,因此可能需要一些时间才能显示全部日志。
有一种方法可以使用kubectl命令来跟踪日志,例如,要从 Pod 中跟踪最后 100 行日志,请执行:
$ kubectl logs --tail=100 <podName>
显示过去一小时内写入的 Pod 日志:
$ kubectl logs --since=1h <podName>
最后 15 分钟:
$ kubectl logs --since=15m <podName>
实时关注Pod日志
还可以实时跟踪来自 Pod 的日志:
$ kubectl logs --since=15m <podName>
要跟踪 Pod 中的最后 100 行日志并实时跟踪它们:
$ kubectl logs --tail=100 -f <podName>