持久卷的 Kubernetes 存储位置在哪里?
Where is Kubernetes storage location of a Persistent Volume?
我正在学习 Kubernetes 并尝试按照以下教程创建 Mysql 数据库:
到目前为止,我一直在使用 Docker 和 Docker-compose 来完成我所有的开发和生产工作。
使用 Docker 桌面(在 Mac 上)Kubernetes 单主节点集群,我能够使示例工作并与 Mysql 交互创建 table 和填充一些数据。删除资源重试后,数据还在,重新安装Deployment、Service、PV和PVC后,我可以立即访问数据。成功连接应用程序的先决条件。
然而,我终其一生都无法找出数据实际存储在笔记本电脑本地文件系统中的位置。这些示例中仅列出了 2 个文件路径。部署中的一个(我假设是容器的内部文件系统,类似于Docker的容器内部路径):
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
以及持久卷路径(我假设是 docker 的主机系统等效文件路径):
hostPath:
path: "/mnt/data"
我的问题是:在我的膝上型电脑上,我找不到任何这些路径。 /mnt/data 不直接存在于我的笔记本电脑的根目录中(我希望它存在的位置),尽管 PV 仍然处于活动状态,而且我看不到 kubernetes 集群、节点或 pod 挂载在我的文件系统上的任何地方.这些数据存储在我的笔记本电脑上的什么位置??这不一定是实际有用的知识,但了解它对于更好地理解 kubernetes 及其工作原理至关重要,而且我不愿意也无法继续学习 kubernetes,直到我弄清楚物理上的位置数据存储在主机文件系统上。
我看到另一个问题说“通过 SSH 连接到 运行 PV 资源的节点”,但我觉得这是在引用分布式云系统,其中节点存在于单独的服务器上,并且作为声明我无法在本地找到我的一个主节点 运行 的挂载路径。其他一切似乎都指向关于 PV 和 PVC 的无用官方文档。
任何人都可以向我解释这个 mysql 数据应该在哪里吗?
Docker Mac 上的桌面运行 a virtual machine to run docker inside。当您查看 hostPath.path
时,您是正确的 - 这就是它的存储位置。但是因为 docker/Kubernetes 在 VM 内部,所以路径是相对的。
要自己看这个有点棘手,Docker Desktop 不提供有关进入 VM 的指南。社区有 some options though。一个简单的方法是 docker run -it --rm --privileged --pid=host justincormack/nsenter1
。该命令在 docker 内运行一个容器,在包含 docker 守护程序的 VM 上为您提供一个 shell。
至于这个在你笔记本电脑的什么位置,你可以按照docs about the disk image for the VM。 首选项 > 资源 > 高级 将显示磁盘映像文件在笔记本电脑上的物理位置。
我正在学习 Kubernetes 并尝试按照以下教程创建 Mysql 数据库:
到目前为止,我一直在使用 Docker 和 Docker-compose 来完成我所有的开发和生产工作。
使用 Docker 桌面(在 Mac 上)Kubernetes 单主节点集群,我能够使示例工作并与 Mysql 交互创建 table 和填充一些数据。删除资源重试后,数据还在,重新安装Deployment、Service、PV和PVC后,我可以立即访问数据。成功连接应用程序的先决条件。
然而,我终其一生都无法找出数据实际存储在笔记本电脑本地文件系统中的位置。这些示例中仅列出了 2 个文件路径。部署中的一个(我假设是容器的内部文件系统,类似于Docker的容器内部路径):
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
以及持久卷路径(我假设是 docker 的主机系统等效文件路径):
hostPath:
path: "/mnt/data"
我的问题是:在我的膝上型电脑上,我找不到任何这些路径。 /mnt/data 不直接存在于我的笔记本电脑的根目录中(我希望它存在的位置),尽管 PV 仍然处于活动状态,而且我看不到 kubernetes 集群、节点或 pod 挂载在我的文件系统上的任何地方.这些数据存储在我的笔记本电脑上的什么位置??这不一定是实际有用的知识,但了解它对于更好地理解 kubernetes 及其工作原理至关重要,而且我不愿意也无法继续学习 kubernetes,直到我弄清楚物理上的位置数据存储在主机文件系统上。
我看到另一个问题说“通过 SSH 连接到 运行 PV 资源的节点”,但我觉得这是在引用分布式云系统,其中节点存在于单独的服务器上,并且作为声明我无法在本地找到我的一个主节点 运行 的挂载路径。其他一切似乎都指向关于 PV 和 PVC 的无用官方文档。
任何人都可以向我解释这个 mysql 数据应该在哪里吗?
Docker Mac 上的桌面运行 a virtual machine to run docker inside。当您查看 hostPath.path
时,您是正确的 - 这就是它的存储位置。但是因为 docker/Kubernetes 在 VM 内部,所以路径是相对的。
要自己看这个有点棘手,Docker Desktop 不提供有关进入 VM 的指南。社区有 some options though。一个简单的方法是 docker run -it --rm --privileged --pid=host justincormack/nsenter1
。该命令在 docker 内运行一个容器,在包含 docker 守护程序的 VM 上为您提供一个 shell。
至于这个在你笔记本电脑的什么位置,你可以按照docs about the disk image for the VM。 首选项 > 资源 > 高级 将显示磁盘映像文件在笔记本电脑上的物理位置。