需求:在每个 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 这个目录,但是这个目录确实空的,当然直接在宿主机上看这个目录肯定是有内容的。
求教如何解决这个问题。
1
julyclyde 2023-12-01 11:43:06 +08:00
你这个 mount hostPath 存在原理性问题吧?
你的 x-pod 启动的时候已经知道了整个系统的 mount 关系;但是新增的 mount 关系并不会反应给它 |