有没有办法在Kubernetes集群中获取pod的日志文件?
我知道我可以使用“kubectl exec log -f $ POD_NAME”命令获取日志,但我想直接访问日志文件。
答案 0 :(得分:4)
这取决于您正在使用的日志记录驱动程序
我假设您在此处使用默认的json日志记录驱动程序,但您可以使用kubectl get po -o wide
然后,登录到该节点,您将在/var/lib/docker/containers/<long_container_id>/<long_container_id>-json.log
您需要使用docker ps
和docker inspect
来确定长容器ID。
答案 1 :(得分:1)
我通常从/var/log/containers
检索它,在那里您可以找到所有容器&#39;部署在该特定计算机上的日志
答案 2 :(得分:0)
kubectl get pod <pod_name> -n <namespace> -o jsonpath='{.spec.nodeName}'
以获得运行此Pod的节点。ssh
进入节点,您将在/var/log/pods/<namespace>_<pod_name>_<pod_id>/<container_name>/
找到Pod的日志。 /var/log/pods/<namespace>_<pod_name>_<pod_id>/<container_name>/
目录中的文件是指向容器运行时写入其容器日志文件的符号链接。因此,与jaxxstorm的答案不同,您在运行哪个容器运行时都没有关系。