在将进程移至层次结构下的新 cgroup 后,我试图找到一种将进程移回原始 cgroup 的方法。情况是 k8s 集群,我在节点(容器)上有一个 pod,并且运行一个共享相同 IPC 的临时容器 + 它具有特权。我能做到
mkdir /sys/fs/cgroup/newone
echo 1 > /sys/fs/cgroup/newone/cgroup.procs
(1 = pod 的进程,因为我们共享 pid 命名空间)但是当我尝试这样做时,
echo 1 > /proc/1/root/sys/fs/cgroup/group.procs
我收到 r/o 错误,我认为这是因为 pod 进程将 cgroup 安装为 ro,所以我无法访问它。根据 cgroups v2 文档(这就是我正在处理的):
编写者必须对源 cgroup 和目标 cgroup 的共同祖先的“cgroup.procs”文件具有写访问权限。
这意味着我必须能够将其移回原处,所以我想知道如何访问它?
答案1
我发现我需要nsenter
目标 cgroup 然后挂载它然后它就可以工作了!