当我们使用时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 还保存内核提供的信息和配置。更改此目录内的任何信息或配置都可能导致节点内出现意外行为。