Cgroups 和 Namespaces 一块使用,被用于创建容器。
Namespace提供了系统资源的隔离,Cgroups允许对这些资源进行细粒度的控制和限制。
Namespace(命名空间)
Namespaces 是一种内核机制。它从进程的视角对资源进行了划分,通过限制进程可以看到的资源从而限制其可以只用的资源。
# 查看系统中的命名空间
lsns
NS TYPE NPROCS PID USER COMMAND
4026531835 cgroup 100 2442 lvgg /lib/systemd/systemd --user
4026531836 pid 102 2442 lvgg /lib/systemd/systemd --user
4026531837 user 103 2442 lvgg /lib/systemd/systemd --user
4026531838 uts 100 2442 lvgg /lib/systemd/systemd --user
4026531839 ipc 100 2442 lvgg /lib/systemd/systemd --user
4026531840 mnt 100 2442 lvgg /lib/systemd/systemd --user
4026532000 net 99 2442 lvgg /lib/systemd/systemd --user
4026532411 pid 1 23340 lvgg /usr/share/browser/browser --type=zygote
4026532413 net 1 23340 lvgg /usr/share/browser/browser --type=zygote
# 查看当前进程的命名空间,可以用于setns系统调用
ls -al /proc/$$/n