Kubernetes的锅日志文件在哪里?

问题描述 投票:3回答:2

我跑的时候

$ kubectl logs <container>

我得到了我的豆荚的日志。

但那些日志的文件在哪里?

一些消息来源说/var/log/containers/其他人说/var/lib/docker/containers/但我找不到我的实际应用程序或pod的日志。

kubernetes kubectl
2个回答
1
投票

磁盘文件名来自

docker inspect $pod_name_or_sha | jq -r '.[0].LogPath'

假设docker守护进程的配置是默认的{"log-driver": "json-file"},如果kubectl logs行为正确,几乎可以保证为真。

这也可能不言而喻,但你必须在调度Pod的节点上使用docker inspect,或者在磁盘上查看日志文件的存在,以做任何有用的事情。 kubectl describe pod $pod_name将呈现节点名称,或者您可能怀疑它将在kubectl get -o json pod $pod_name中,如果您希望以编程方式获取它。


0
投票

你在这些目录中看到了什么吗?

在我的集群中,来自每个pod的stdout / stderr日志都在/var/log/containers中,但是有一些链接/重定向:

/var/log/containers/<pod-name>_<namespace>_<container-name-container-id>.log -> /var/log/pods/<some-uuid>/<container-name>_0.log

该日志实际上链接到/var/lib/docker

<container-name>_0.log -> /var/lib/docker/containers/<container-id>/<container-id>-json.log
© www.soinside.com 2019 - 2024. All rights reserved.