Kubernetes在pod中记录位置

时间:2018-06-15 03:27:56

标签: kubernetes

我只是想在pod中找到日志位置。

我刚刚登录了pod,如下所示。

  

kubectl exec -it POD_NAME bash

但是,/ var / logs下的日志不可用。不确定实际的日志位置是什么以及如何更改它。

由于

4 个答案:

答案 0 :(得分:2)

如果您的应用程序正在将日志写入文件,则该日志文件在容器中的位置取决于您的应用程序。日志文件在主机上的位置取决于您是否在主机上安装了日志目录。


如果您的应用程序将日志写入stdout,那么容器运行时将捕获每一行并将其存储在主机上。对于Docker,它存储在/var/lib/docker/containers目录中。

但是,通过将相关日志文件符号链接到/var/log/pods/<namespace>_<pod_name>_<pod_id>/<container_name>/,Kubernetes也使您更容易在Kubernetes节点上找到日志文件。

答案 1 :(得分:1)

无法回答您的问题,因为除了您之外,没有人知道您的应用程序是如何配置和部署的。

我只能猜测您的应用程序通过stdout json日志记录驱动程序将日志写入Docker,并且您的日志存储在您的某个k8s节点上:

$ sudo find /var/lib/docker/containers -name "*-json.log"

默认情况下,您可以使用kubectl -n <namespace> logs <pod_name>命令

查找pod的日志

更多信息:https://kubernetes.io/docs/concepts/cluster-administration/logging/

答案 2 :(得分:0)

容器中的日志文件取决于您运行的应用程序,不同的应用程序将日志输出到不同的位置,例如,我环境中的tomcat输出日志到/ usr / local / tomcat / logs目录。

pod的日志,我们的意思是这里的控制台输出,将保存到主机的容器目录中,然后链接到/ var / log / pods / $ pod_name目录,你可以在那里找到日志。

答案 3 :(得分:0)

请检查/opt/logs/app.log

如果找不到此目录,则只需使用find命令搜索app.log。

 find / -name "app.log"

在最坏的情况下

find / -name "*.log"