一个容器挂载的问题

2023-11-30 23:46:39 +08:00
 yujianwjj

需求:在每个 node 上启动一个 pod(命名为 x-pod),这个 x-pod 能够获取这个 node 上所有 pod 的文件系统里面的文件。

容器是用 containerd 启动的,容器的文件系统是 overlay2.

由于 containerd 的所有容器的文件都会挂载在 /run/containerd/io.containerd.runtime.v2.task/k8s.io/<container_id>/rootfs 这个目录下,所以我就直接让这个 x-pod 以 mount hostPath 的方式挂载这个/run/containerd 目录,发现也确实能够读取其他 pod 的文件系统内容。

现在的问题时,当这个 node 上有新的 pod 启动的时候,x-pod 能够读到 /run/containerd/io.containerd.runtime.v2.task/k8s.io/<新 pod 的 container_id>/rootfs 这个目录,但是这个目录确实空的,当然直接在宿主机上看这个目录肯定是有内容的。

求教如何解决这个问题。

808 次点击
所在节点    Docker
1 条回复
julyclyde
2023-12-01 11:43:06 +08:00
你这个 mount hostPath 存在原理性问题吧?

你的 x-pod 启动的时候已经知道了整个系统的 mount 关系;但是新增的 mount 关系并不会反应给它

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/996667

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX