设为首页收藏本站language 语言切换
查看: 1330|回复: 10
收起左侧

[分享] 【SPOTO思博网络】运维基础《Namespace》【零基础入门干货】

[复制链接]
发表于 2021-12-9 14:32:03 | 显示全部楼层 |阅读模式
本帖最后由 SPOTO 于 2022-8-10 10:32 编辑

【SPOTO思博网络】运维基础《Namespace》【零基础入门干货】

Namespace是将内核的全局资源做封装,使得每个namespace都有一份独立的资源,因此不同的进程在各自的namespace内对同一种资源的使用互不干扰。

举个例子,执行sethostname这个系统调用会改变主机名,这个主机名就是全局资源,内核通过UTSNamespace可以将不同的进程分隔在不同的UTSNamespace 中,在某个Namespace修改主机名时,另一个Namespace的主机名保持不变。

目前,Linux内核实现了6种Namespace。

与命名空间相关的三个系统调用:
clone创建全新的Namespace,由clone创建的新进程就位于这个新的namespace里。
创建时传入flags参数,

可选值有CLONE_NEWIPC,CLONE_NEWNET,
CLONE_NEWNS,
CLONE_NEWPID,
CLONE_NEWUTS, CLONE_NEWUSER,分别对应上面六种namespace。

unshare为已有进程创建新的namespace。setns把某个进程放在已有的某个namespace里。



6种命名空间

UTSnamespace
UTSnamespace 对主机名和域名进行隔离。为什么要隔离主机名?因为主机名可以代替IP来访问。如果不隔离,同名访问会出冲突。


IPCnamespace
Linux提供很多种进程通信机制,IPCnamespace 针对System V和POSIX消息队列,这些IPC机制会使用标识符来区别不同的消息队列,然后两个进程通过标识符找到对应的消息队列。
IPCnamespace 使得相同的标识符在两个 namespace代表不同的消息队列,因此两个namespace中的进程不能通过IPC 来通信。


PIDnamespace
隔离进程号,不同namespace的进程可以使用相同的进程号。
当创建一个PIDnamespace 时,第一个进程的PID是1,即init进程。它负责回收所有孤儿进程的资源,所有发给init进程的信号都会被屏蔽。


Mountnamespace
隔离文件挂载点,每个进程能看到的文件系统都记录在/proc/$$/mounts里。在一个namespace里挂载、卸载的动作不会影响到其他namespace。


Networknamespace
隔离网络资源。每个namespace都有自己的网络设备、IP、路由表、/proc/net目录、端口号等。网络隔离可以保证独立使用网络资源,比如开发两个web应用可以使用80端口。
新创建的Networknamespace 只有loopback一个网络设备,需要手动添加网络设备。


Usernamespace
隔离用户和用户组。它的厉害之处在于,可以让宿主机上的一个普通用户在namespace里成为0 号用户,也就是root用户。
这样普通用户可以在容器内“随心所欲”,但是影响也仅限在容器内。最后,回到Docker上,经过上述讨论,namespace和cgroup的使用很灵活,需要注意的地方也很多。
Docker 通过Libcontainer来做这些脏活累活。用户只需要使用DockerAPI 就可以优雅地创建一个容器。dockerexec 的底层实现就是上面提过的setns 。

——————————————————————————————————
HCIE/CCIE的提升空间有多少?看看群内聊天讨论就知道!



添加老杨老师微信:spotoa,加入全国网工交流群(已建立50+个),获取更多CCIE/HCIE考试一手资讯+考试必备资料,也欢迎添加
网工老杨老师微信:spotoa




【推荐阅读】
 楼主| 发表于 2021-12-22 16:49:44 | 显示全部楼层
有问题可加微信咨询:spotoa
板凳 2021-12-22 16:49:44 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-23 09:28:15 | 显示全部楼层
有问题可加微信咨询:spotoa
地板 2021-12-23 09:28:15 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-12-23 16:39:23 | 显示全部楼层
很棒的资料!
5# 2021-12-23 16:39:23 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-28 16:55:11 | 显示全部楼层
有问题可加微信咨询:spotoa
6# 2021-12-28 16:55:11 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-6 10:31:40 | 显示全部楼层
有问题请咨询微信:spotoa
7# 2022-1-6 10:31:40 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-11 09:59:09 | 显示全部楼层
有问题请咨询微信:spotoa
8# 2022-2-11 09:59:09 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-15 15:52:24 | 显示全部楼层
有问题请咨询微信:spotoa
9# 2022-2-15 15:52:24 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-25 14:25:24 | 显示全部楼层
有问题请咨询微信:spotoa
10# 2022-2-25 14:25:24 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-22 09:35:14 | 显示全部楼层
本帖最后由 SPOTO 于 2022-8-10 10:33 编辑

如果你有以下需求:
1. 有需要思科/华为考证【稳定题库】
2. 想要进入全国网工交流群,和更多同伴连接
3. 对网工生涯迷茫,想要有大佬可以指点迷津~

欢迎扫描下方二维码,加老杨老师的微信,作为CCIE+9年网工,他对行业的了解可谓是颇深。围观他的朋友圈,能学习到的技术和视野远远超过你的想象,欢迎扫码加v!!!

11# 2022-6-22 09:35:14 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-25 13:06 , Processed in 0.076077 second(s), 22 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表