【问题标题】:Can I get hold of a log file in a kubernetes pod?我可以在 kubernetes pod 中获取日志文件吗?
【发布时间】:2017-09-05 02:11:32
【问题描述】:

有什么方法可以获取 Kubernetes 集群中 pod 的日志文件吗?

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

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

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

    然后,登录到那个节点,你会在/var/lib/docker/containers/<long_container_id>/<long_container_id>-json.log下看到容器的docker日志

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

    【讨论】:

      【解决方案2】:
      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 的答案不同,您运行的是哪个容器运行时并不重要。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-07-21
          • 2017-12-24
          • 2019-01-20
          • 2018-06-03
          • 2018-11-16
          • 1970-01-01
          • 2018-07-27
          • 2022-11-11
          相关资源
          最近更新 更多