Kubernetes hostPath类型PV的实际存储文件与目录位置查询
问题核心原因
你使用的是hostPath类型的PersistentVolume,这类PV的存储完全绑定Pod实际调度到的集群节点的本地文件系统,不会在所有集群节点上同步创建目录。
第一个问题:PV对应真实目录的位置
- 首先确认Pod运行的节点:执行命令
kubectl get pod <替换为你的Pod名称> -o wide,查看输出的NODE字段,获取Pod调度到的节点地址,你需要SSH登录该节点才能找到对应目录,登录其他集群节点默认不会有这个路径。 - 如果你使用的是minikube、kind、k3d这类本地测试集群:你本地宿主机的
/var/lib和集群节点的文件系统是隔离的,需要先进入集群节点内部再查看:- minikube执行
minikube ssh进入节点 - kind执行
docker exec -it <kind节点容器名称> bash进入节点
进入节点后访问/var/lib/sqldata即可看到对应目录。
- minikube执行
第二个问题:容器内文件的实际存储位置
容器挂载路径下的所有文件,实际就存储在Pod调度到的集群节点的/var/lib/sqldata路径下,和节点本地的普通文件完全一致,你在容器内的增删改操作都会直接同步到该节点目录下。
异常排查
如果确认登录了正确节点还是找不到目录,可以在节点上执行find / -name sqldata全局搜索目录,排查路径配置错误、PV重新绑定等异常情况。
内容的提问来源于stack exchange,提问作者Charlie
相关产品推荐
相关产品推荐

