kubernetes pods日志的绝对路径是什么?

时间:2017-10-22 05:55:44

标签: kubernetes logstash containers

kubernetes pods日志的绝对路径是什么? 当我尝试kubectl logs pod时,我可以看到pod的日志。我想知道运行pod的日志文件路径。

kubectl logs npapp-0r9jw

output: rectory /hab/pkgs/core/tomcat8/8.5.9/20170514144202/tc/webapps/ROOT has finished in 21 ms
national-parks.default(O): 22-Oct-2017 05:33:54.526 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /hab/pkgs/core/tomcat8/8.5.9/20170514144202/tc/webapps/manager
national-parks.default(O): 22-Oct-2017 05:33:54.564 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /hab/pkgs/core/tomcat8/8.5.9/20170514144202/tc/webapps/manager has finished in 38 ms
national-parks.default(O): 22-Oct-2017 05:33:54.564 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /hab/pkgs/core/tomcat8/8.5.9/20170514144202/tc/webapps/host-manager
national-parks.default(O): 22-Oct-2017 05:33:54.595 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /hab/pkgs/core/tomcat8/8.5.9/20170514144202/tc/webapps/host-manager has finished in 31 ms
national-parks.default(O): 22-Oct-2017 05:33:54.599 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [http-nio-8080]
national-parks.default(O): 22-Oct-2017 05:33:54.613 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [ajp-nio-8009]
national-parks.default(O): 22-Oct-2017 05:33:54.620 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 2735 ms

我在哪里可以看到绝对日志文件路径?

2 个答案:

答案 0 :(得分:1)

VonC的答案并非100%准确-应该为/var/log/pods/<namespace>_<pod_name>_<pod_id>/<container_name>/*.log


此外,实际日志文件的位置取决于您使用的容器运行时。 Docker将其容器日志存储在/var/lib/docker/containers

使用Kubernetes时,您可以使用绝对日志路径/var/log/pods/<namespace>_<pod_name>_<pod_id>/<container_name>/*.log访问容器日志。这些.log文件符号链接到容器运行时存储的实际日志文件。

答案 1 :(得分:0)

如果您查看Kubernetes sources,您会看到pkg/routes/logs.go,它将提供(默认情况下)/var/log内的文件内容(提供静态文件following this example)< / p>

func logFileHandler(req *restful.Request, resp *restful.Response) {
    logdir := "/var/log"
    actual := path.Join(logdir, req.PathParameter("logpath"))
    http.ServeFile(resp.ResponseWriter, req.Request, actual)
}

正如您在kubernetes/kubernetes issue 53022中看到的那样:

  

当前符号链接/var/log/containers指向/var/log/pods/pod_UID/*.logs

因此,日志的完整绝对路径是:

/var/log/pods/pod_UID/*.logs