是否可以获取 Kubernetes 管理的 Docker 容器的 cgroup 路径?

是否可以获取 Kubernetes 管理的 Docker 容器的 cgroup 路径?

当我们使用时kubectl describe pods <pod_name>,会输出大量信息,包括服务器正在运行的节点,以及有关 pod 的各种信息,包括容器 ID 和镜像。

如果我们通过 ssh 进入节点,我们可以四处寻找/sys/fs/cgroup/memory/kubepods并找到诸如 之类的目录/sys/fs/cgroup/memory/kubepods/pod6cbf8d09-2a76-11e9-9f3e-42010a80003b,这些目录具有看起来像哈希的子目录。如果我们检查cgroup.procs这些子目录中伪文件中列出的进程,我们可以推断这些子目录对应于 Kubernetes 启动的 Docker 容器。

不幸的是,人类必须手动检查cgroup.procs文件来推断每个目录对应哪个容器。

有没有办法获取/sys/fs/cgroup/memory/kubepods与 pod 内特定容器对应的子目录路径的名称?

答案1

我不建议重命名容器子目录,因为其中的容器是哈希值。如果重命名这些子目录,实际上可能会破坏文件系统。

此外,/sys 还保存内核提供的信息和配置。更改此目录内的任何信息或配置都可能导致节点内出现意外行为。

相关内容