V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yujianwjj
V2EX  ›  Docker

一个容器挂载的问题

  •  
  •   yujianwjj · 2023-11-30 23:46:39 +08:00 · 820 次点击
    这是一个创建于 389 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求:在每个 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 条回复    2023-12-01 11:43:06 +08:00
    julyclyde
        1
    julyclyde  
       2023-12-01 11:43:06 +08:00
    你这个 mount hostPath 存在原理性问题吧?

    你的 x-pod 启动的时候已经知道了整个系统的 mount 关系;但是新增的 mount 关系并不会反应给它
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5732 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 03:01 · PVG 11:01 · LAX 19:01 · JFK 22:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.