您的位置:首页 > 运维架构 > Linux

linux 容器(LXC) 第3章 命名空间(namespace) 简介

2016-06-15 15:36 369 查看

1. 命名空间是什么

命名空间简单的来说提供的就是全局资源的一种抽象,将资源放到不同的命名空间中,各个命名空间中的资源是相互隔离的。

2. namespace 的分类

namespace 分成了5类,分别是UTS/IPC/PID/NS/Net; 这些命令空间可以组合使用,创建一个namespace 也是在clone 的库函数中设置一个参数(每类namespace 有自己的参数)即可新建新的namespace;

容器是否包括所有的namespace
LXC 任何一个容器可以创建0-5个namespace,来完成对不同全局资源的隔离;一般我们用的容器中是5中namespace 全部新建来完成容器的彻底虚拟化隔离



3. namespace 的5个分类

UTS (uname)
 主要是用来进行hostname的资源隔离,在不同的UTS 的namespace 里面hostname 可以名字一样,相互之间透明、不冲突;

PID(进程pid)
主要是用来进行进程资源的隔离,在不同的PID的namespace 里面pid 相同的2个进程可以存在,而且相互之间透明、不冲突

IPC(inter-process-connection 进程之间通信) 
主要是用来进行进程直接通信的隔离的,这个主要的作用是?(现在还不确定:自己理解是隔离进程直接直接通信,二用容器或者pod 来通信)

NS(mnt) 文件系统隔离
容器在chroot 之后限制了进程只能读写指定的目录,NS的namespace 则是文件的挂载和卸载只跟namespace 有关系,跟其他的namespace 是透明的

NET 网络隔离
借助namespace 可以进行网络接口的隔离,达到一个容器单独一个“网卡”的效果;不同的namespace 的网卡的带宽相互不影响
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: