千家信息网

【读书笔记】05 | 白话容器基础(一):从进程说开去

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,《深入剖析Kubernetes - 05 | 白话容器基础(一):从进程说开去》容器的实现主要应用了namespace 和 cgroups 的机制其中namespace的实现,实际上就是在底层调用cl
千家信息网最后更新 2024年11月26日【读书笔记】05 | 白话容器基础(一):从进程说开去

《深入剖析Kubernetes - 05 | 白话容器基础(一):从进程说开去》


容器的实现主要应用了namespace 和 cgroups 的机制


其中namespace的实现,实际上就是在底层调用clone() 时,加一个CLONE_NEWPID 参数,为进程创建一个新的namespace,屏蔽其他进程pid,使其看不到宿主机上真正的进程空间,从而认为自己就是pid 1 的主进程


int pid = clone(main_function, stack_size, CLONE_NEWPID | SIGCHLD, NULL);


除了PID,还实现了mount、uts、ipc、user、network 的namespace 隔离


PS:从宿主机的视角来看,这些通过namespace隔离的进程跟其他进程没有什么区别


即宿主机上可以看到运行在容器中的进程


0