我可以在kubernetes pod中获取日志文件吗?

时间:2017-04-10 06:30:55

标签: kubernetes

有没有办法在Kubernetes集群中获取pod的日志文件?

我知道我可以使用“kubectl exec log -f $ POD_NAME”命令获取日志,但我想直接访问日志文件。

3 个答案:

答案 0 :(得分:4)

这取决于您正在使用的日志记录驱动程序 我假设您在此处使用默认的json日志记录驱动程序,但您可以使用kubectl get po -o wide

查看已安排pod的节点

然后,登录到该节点,您将在/var/lib/docker/containers/<long_container_id>/<long_container_id>-json.log

下看到容器的泊坞日志

您需要使用docker psdocker inspect来确定长容器ID。

答案 1 :(得分:1)

我通常从/var/log/containers检索它,在那里您可以找到所有容器&#39;部署在该特定计算机上的日志

答案 2 :(得分:0)

  1. 运行kubectl get pod <pod_name> -n <namespace> -o jsonpath='{.spec.nodeName}'以获得运行此Pod的节点。
  2. ssh进入节点,您将在/var/log/pods/<namespace>_<pod_name>_<pod_id>/<container_name>/找到Pod的日志。

/var/log/pods/<namespace>_<pod_name>_<pod_id>/<container_name>/目录中的文件是指向容器运行时写入其容器日志文件的符号链接。因此,与jaxxstorm的答案不同,您在运行哪个容器运行时都没有关系。