容器核心技术-Namespace

news/2024/6/3 19:26:04 标签: kubernetes, 容器

一、容器

基于Linux 内核的 Cgroup, Namespace,以及Union FS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术,由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器

1.1 容器主要特性

  • 安全性
  • 隔离性
  • 便携性
  • 可配额

二、Namespace

·Linux Namespace 是一种 Linux Kernel 提供的资源隔离方案:

  1. 系统可以为进程分配不同的 Namespace;
  2. 并保证不同的Namespace资源独立分配、进程彼此隔离,即 不同的Namespace下的进程互不干扰。

2.1 Namespace类型

在这里插入图片描述

2.2 隔离性

在这里插入图片描述

  1. pid namespace

    • 不同的用户进程就是通过pid namespace隔离开的,且不同不同namesapce中可以有相同的pid,但是这些pid都能映射到主机上的不同pid,本质还是主机上起的进程。
    • 有了pid namespace,每个namespace的pid能够相互隔离。
  2. net namespace

    • 网络隔离是通过net namespace 实现的,每个 net namespace 有独立的 network devices, IP addresses, IP routing tables。
    • Docker默认采用veth 的方式将 container 中的虚拟网卡同host上的一个docker bridge:docker0连接在一起。
  3. mnt namespace

    • mnt namespace 允许不同 namespace 的进程看到的文件结构不同,这样每个namespace中的进程所看到的文件目录就被隔离开了。
  4. uts namespace

    • UTS("UNIX Time-sharing System”) namespace允许每个 container 拥有独立的 hostname 和 domain name,使其在网络上可以被视作一个独立的节点而非Host上的一个进程。
  5. user namespace

    • 每个container 可以有不同的user和group id,也就是说可以在 container 内部用 container 内部的用户执行程序而非Host 上的用户。

三、Namespace示例

创建新的network namespace,并执行 sleep 指令:

unshare -fn sleep 100

查看进程信息:
在这里插入图片描述
查看网络namespace:
在这里插入图片描述
进入该进程所在Namespace 查看网络配置,与主机不一致:
在这里插入图片描述


http://www.niftyadmin.cn/n/5154190.html

相关文章

linux写文件如何保证落盘?

3.1.1. sync sync函数只是将所有修改过的块缓冲区排入写队列,然后就返回,它并不等待实际写磁盘操作结束。通常称为 update的系统守护进程会周期性地(一般每隔30秒)调用sync函数。这就保证了定期冲洗内核的块缓冲区。命令 sync也…

Linux 编译链接那些事儿(02)C++链接库std::__cxx11::basic_string和std::__1::basic_string链接问题总结

1 问题背景说明 在自己的项目源码中引用libeasysqlite.so时编译成功,但运行时遇到问题直接报错,找不到符号 symbol:_ZN3sql5FieldC1ENSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS_10field_typeEi。 2 问题描述和解…

注意,注意,weak_ptr有坑

class Test { public:Test(){cout << "构造函数\n";}~Test(){cout << "析构函数\n";} }; void *operator new(size_t nsize) {void *ptmp std::malloc(nsize);printf("申请内存:%d,%p\n",nsize, ptmp);return ptmp; }void operator…

【嵌入式项目应用】__物联网小知识:不同通讯线的通讯距离是多少,你知道吗?

目录 前言 不同协议通讯线的传输距离 无线传输协议与距离 1. 蓝牙 2. Zigbee 3. LoRa 4. Wi-Fi 5. 蜂窝网络 6. Sigfox 7. LoRaWAN (*&#xffe3;︶&#xffe3;)创作不易&#xff01;期待你们的 点赞、收藏和评论喔。 前言 在物联网中&#xff0c;通讯线的作用是…

定积分的几何应用(总结非常全面!)

文章目录 1 原函数存在性和可积性1.1 函数可积的充分条件&#xff08;判定条件&#xff09;1.2 函数存在原函数的充分条件&#xff08;判定条件&#xff09;1.3 函数可积的必要条件&#xff08;性质&#xff09;1.4 变上限积分的性质 2 平面图形2.1 平面图形的面积2.1.1 直角坐…

Educational Codeforces Round 157 (Rated for Div. 2) D. XOR Construction (思维题)

题目 给定长为n-1(n<2e5)的整数序列a&#xff0c;第i个数a[i](0<a[i]<2n) 构造一个长为n的整数序列b&#xff0c;满足&#xff1a; 1. 0到n-1在b数组中每个数恰好出现一次 2. 对于&#xff0c; 题目保证一定有解&#xff0c;有多组时可以输出任意一组 思路来源 …

STM32G030F6P6 芯片实验 (二)

STM32G030F6P6 芯片实验 (二) Hello World - GPIO LED 尝试了下, 从 0 开始建 MDK HAL M0plus Project, 成功点亮 LED了。 但是 ST-LINK跑着跑着, 码飞了! 不知飞哪去了。 只好拿 MX 建了个 MDK Base。 呼叫 SysTick HAL_Delay(), 切换 LED。 基本上都是一样的用法, 只是换…

【错误解决方案】ModuleNotFoundError: No module named ‘my_fake_useragent‘

1. 错误提示 ModuleNotFoundError: No module named my_fake_useragent&#xff0c;这意味着你试图导入一个名为 my_fake_useragent 的模块&#xff0c;但Python找不到这个模块。 2. 解决方案 检查模块名是否正确: 确保你试图导入的模块名是正确的。也许你拼写错误或者大小写不…