《深入剖析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隔离的进程跟其他进程没有什么区别
即宿主机上可以看到运行在容器中的进程
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。