Linux容器技术核心:命名空间、Cgroups与容器编排
1. 命名空间与Cgroups基础
1.1 获取主机操作系统PID 1的命名空间
可以使用以下命令获取主机操作系统PID 1的命名空间:
ls -l /proc/1/ns/net
如果你使用的是macOS,需要在Linux虚拟机上运行此命令。执行后,你可能会看到如下响应:
lrwxrwxrwx 1 root root 0 Nov 19 09:20 /proc/1/ns/net -> 'net:[4026531993]'
从这个输出可以看出,主机的这个命名空间与之前看到的容器的命名空间相同。通过这个练习,我们可以了解容器是如何被隔离到不同的命名空间中的,以及可以使用哪些Docker参数将其与其他命名空间关联起来。
1.2 Cgroups简介
默认情况下,无论容器加入哪个命名空间,它都可以使用主机的所有可用资源。但在系统上运行多个容器时,这显然不是我们想要的,否则少数容器可能会占用所有容器共享的资源。
为了解决这个问题,从Linux内核版本2.6.24开始引入了Cgroups(Control Groups)功能,用于限制进程的资源使用。系统管理员可以使用此功能控制最重要的资源,如内存、CPU、磁盘空间和网络带宽。
在Ubuntu 18.04 LTS中,默认会在 /sys/fs/cgroup/<c
超级会员免费看
订阅专栏 解锁全文
1108

被折叠的 条评论
为什么被折叠?



