k8s极简史Docker和K8S已经是当下运维的必备技能 , 无论是行业技能要求还是前沿技术领域 , 现在还不能很好掌握这两门技术的技术人员 , 在新一轮的技术迭代中将最终被抛弃 。
LXC
文章插图
AA6FB025-6CB8-4A96-B91D-702CD632331B
Docker其实是一门容器化技术 , 也是虚拟化技术的一种 , 只是相对传统的kvm,xen,vmware虚拟化技术而言 , 是基于进程级别的虚拟化技术 , 更为轻量 , 因而性能损耗更小 。
虚拟化技术并不是一门新技术 , 最小可以追溯到LXC技术!
LXC为linux Container的简写 。可以提供轻量级的虚拟化 , 以便隔离进程和资源 , 而且不需要提供指令解释机制以及全虚拟化的其他复杂性 。相当于C++中的NameSpace 。容器有效地将由单个操作系统管理的资源划分到孤立的组中 , 以更好地在孤立的组之间平衡有冲突的资源使用需求 。与传统虚拟化技术相比 , 它的优势在于:
- 与宿主机使用同一个内核 , 性能损耗小;
- 不需要指令级模拟;
- 不需要即时(Just-in-time)编译;
- 容器可以在CPU核心的本地运行指令 , 不需要任何专门的解释机制;
- 避免了准虚拟化和系统调用替换中的复杂性;
- 轻量级隔离 , 在隔离的同时还提供共享机制 , 以实现容器与宿主机的资源共享 。
总结:Linux Container是一种轻量级的虚拟化的手段 , 提供了在单一可控主机节点上支持多个相互隔离的server container同时执行的机制 。Linux Container有点像chroot , 提供了一个拥有自己进程和网络空间的虚拟环境 , 但又有别于虚拟机 , 因为LXC是一种操作系统层次上的资源的虚拟化这里衍生出来另外一个问题?LXC技术最早可以追溯到20世纪70年代 , 计算机系统刚诞生的时代 , 即LXC和系统是强关联 , 为什么一直到2010年左右才开始在历史舞台大紫大红呢?
这里其实要讲到进程和隔离了 。
进程与隔离
文章插图
进程与隔离
没有电的电脑只是一堆废铁 , 通了电的电脑只是一堆带电的废铁!! 这句话充分诠释了操作系统的重要性 。
由于计算机只认识二进制 0 和 1 , 所以无论哪种语言的实现 , 最后都需要通过某种方式编译为二进制文件 , 才能在计算机操作系统中运行起来 。
而为了能够让这些代码正常运行 , 我们还需要数据、代码运行平台即操作系统 。比如我们这个加法程序所需要的输入文件 。这些数据加上代码本身的二进制文件 , 放在磁盘上 , 就是我们平常所说的一个“程序” , 也叫代码的可执行镜像(executable image) 。
【?k8s极简史,一文看懂k8s如何力战群雄,坐上容器编排老大】然后 , 我们就可以在计算机上运行这个程序了 。
- 首先 , 操作系统从“程序”中发现输入数据保存在一个文件中
- 然后 , 这些数据就会被加载到内存中待命
- 接着 , 操作系统又读取到了计算加法的指令
- 这时 , 它就需要指示 CPU 完成加法操作 。
就这样 , 一旦 程序 被执行起来 , 它就从磁盘上的二进制文件 , 变成了计算机内存中的数据、寄存器里的值、堆栈中的指令、被打开的文件 , 以及各种设备的状态信息的一个集合 。像这样一个程序运行起来后的计算机执行环境的总和 , 就是我们今天的主角:进程 。
从上面可以看到 , 操作系统也是进程 , 只是其无比复杂 , 复杂到可以把自己“虚拟成平台”并承载其它进程运行的程序 , 而操作系统在这个过程中起到两个非常重要的角色是:资源分配和资源隔离 。
资源分配
推荐阅读
- 常喝玫瑰花茶好处多,多喝玫瑰花茶对女性是极好的
- Nginx 极简教程,常用场景统统解析
- 冬季感冒咳嗽茶疗,感冒咳嗽喝人参薄荷茶效果极佳
- 异地恋怎么维持 维持异地恋的终极技巧
- 太极拳不仅仅是健身那么简单
- 太极拳的练习讲究的是内气的练习
- 太极初学者学习老架二路拳的意义
- 看太极拳是怎样来提高身体免疫力的
- 太极的练习姿势 是我们练好太极的关键
- 太极不仅可以修身还可以养性