深入刨析容器(一):容器的前世今生

这篇具有很好参考价值的文章主要介绍了深入刨析容器(一):容器的前世今生。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题外话,从左耳听风那里听到的话,技术的世界再变,你要找到不变的去学习,也就是说其实变来变去的只不过是外层理念封装的概念,实质的话本质还是基础,把基础打好才是无敌,这也点醒了我,要好好的学习基础知识,才能以不变应万变。

然后在极客时间溜达的时候,又看到一句话,学一门技术你要知道为什么会用它而不是用其他的,它的出现是为了解决什么痛点,而不是炫技,所以才有了此刻的文章,为什么会有容器,为什么Docker和K8S取得了最终容器的胜利,这场战争就此拉开。

本章来源学习极客时间的 《深入剖析 Kubernetes》张磊 而整理的笔记。

1.1.初出茅庐

10年前的今天,那时已有云计算的Paas平台,以Cloud Foundry为代表的,可以将应用打包,写一些脚本配置,那么执行一行指令即可安装启动,但是由于本地系统与云系统不一致,很多软件应用不适配,需要程序员各种试错,才能写一个满意的脚本执行不出问题,但是如果换成另一个系统,或者是别的应用,则还需要试错配置才能达到满意的配置,这就导致了Cloud Foundry衰败。

半路杀出来个Docker,它其他的都是和Cloud Foundry源码大差不差,唯独一个创新,让它在后面的地位奠下了基础,这个创新就是Docker 镜像,Docker能够将操作系统的等应用文件(操作系统内核没有打包)包打成个镜像,这个压缩包包含了完整的操作系统文件和目录,也就是包含了这个应用运行所需要的所有依赖,这样你在本地测试能使用并打包,到Docker上不会出现问题,不用经过复杂的的配置试错阶段,所以一经问世则被很多的开发者追捧。

容器最核心的就是运行应用的隔离环境,或者说“沙盒”,就是所谓的“容器”,而Docker也是,在docker run就会创建“沙盒”,然后调用操作系统Cgroups 和 Namespace 机制创建出来的隔离环境,Cgroups和Namespace后面会讲,这也是Docker重要的实现容器的方法。

1.2.崭露头角

后面Docker的公司出于种种原因将公司名称改为Docker,专注于开发者用户,而不是老板,对于开发者用户便利,自然而然就有受众群体,让它风光无两。

1.3.群雄并起

Docker在最热的时候立马发现了自己的短处,只是提供应用的打包肯定是站不住脚的,所以想要发展还是要自己做Pass平台,刚开始有其他的平台与Docker合作,如CoreOS 公司,但最终Docker的发展影响到了CoreOS的发展而决裂告终,随后Docker就发布了Swarm,容器集群管理,命令基本和单机的Docker差不多,所以很受Docker使用者的追捧。

Docker前期发展让Docker很有资本,所以收购了很多好项目去完善自己的平台能力,如Fig项目,Fig项目第一次提出了容器编排,其实,“编排”(Orchestration)在云计算行业里不算是新词汇,它主要是指用户如何通过某些工具或者配置来完成一组虚拟机以及关联资源的定义、配置、创建、删除等工作,然后由云计算平台按照这些指定的逻辑来完成的过程。

Fig的工作不难,假如现在有应用容器A和数据库容器B,那么Fig允许用户把A,B两个容器定义在一个配置文件中,并且可以指定他们的关系,比如容器A需要访问数据库B,然后执行一条指令即可 fig up,然后fig把容器的定义和配置交给Docker api依次创建,并启动。Fig 项目被收购后改名为 Compose,到目前为止这个Compose也有很多人使用。

还有很多令人眼前一亮的开源项目或公司。比如,专门负责处理容器网络的 SocketPlane 项目(后来被 Docker 公司收购),专门负责处理容器存储的 Flocker 项目(后来被 EMC 公司收购),专门给 Docker 集群做图形化管理界面和对外提供云服务的 Tutum 项目(后来被 Docker 公司收购)等等

还有其他的Marathon,专门大数据处理的,虽然不能提供像 Swarm 那样的原生 Docker API,Mesos 社区却拥有一个独特的竞争力:超大规模集群的管理经验。

1.4 尘埃落定

由于Docker垄断性发展,导致了其他厂商的不满,他们联合Docker做起了中间基金,大家一起制定了OCI( Open Container Initiative ),容器的标准和规范,OCI 的提出,意在将容器运行时和镜像的实现从 Docker 项目中完全剥离出来。虽然由Docker牵头,但是Docker并没有把时间过多的浪费在这,OCI也并没有剥夺Docker的地位,因为并没有涉及到Docker最根本的利益-容器平台化也就是Paas,所以其他厂商-谷歌以及红帽等一起联合发起了CNCF(Cloud Native Computing Foundation),这个基金会的目的也只是为了推K8s项目,用来抵抗Docker,k8s之所以优秀,是其谷歌红帽等其他公司本身优秀的技术积累,K8s则是来自于 Borg 和 Omega 系统的内部特性,这些特性落到 Kubernetes 项目上,就是 Pod、Sidecar 等功能和设计模式。而且K8S吸取百家所长,积极发展社区,将各个方面都放开,能够轻易的被其他厂家插拔,慢慢的,Docker就打不过k8s,并出现了尬尴的局面,最终随着创作者从Docker公司离职而尘埃落定。

这一节讲了容器出现的始末,下一节会讲容器的内部概念,让我们一点点深入容器,揭开它神秘的面纱。文章来源地址https://www.toymoban.com/news/detail-486437.html

到了这里,关于深入刨析容器(一):容器的前世今生的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【区块链杂谈】区块链的前世今生(今生)

    在前面,我们回顾了区块链技术自诞生到野蛮生长的三个阶段,自某些不可抗因素主动干预之后,整个市场因为比特币价格的腰斩而萎靡不振,热衷于赚取热钱快钱的投机者逐渐退出,只留下了一片狼藉。 在这样的背景下, 区块链的发展逐渐由币价驱动转向技术驱动 ,投机

    2024年02月09日
    浏览(33)
  • Mycat之前世今生

    如果我有一个32核心的服务器,我就可以实现1个亿的数据分片,我有32核心的服务器么?没有,所以我至今无法实现1个亿的数据分片。——MyCAT ‘s Plan 话说“每一个成功的男人背后都有一个女人”,自然MyCAT也逃脱不了这个诅咒,MyCAT背后是阿里曾经开源的知名产品——Coba

    2024年02月10日
    浏览(23)
  • InfiniBand 的前世今生

    今年,以 ChatGPT 为代表的 AI 大模型强势崛起,而 ChatGPT 所使用的网络,正是 InfiniBand,这也让 InfiniBand 大火了起来。那么,到底什么是 InfiniBand 呢?下面,我们就来带你深入了解 InfiniBand。 InfiniBand(也称为“无限带宽”,缩写为 IB)是一个用于高性能计算的计算机网络通信标

    2024年02月06日
    浏览(33)
  • 提示工程的前世今生

    原文链接:芝士AI吃鱼 通过提示进行情境学习 在生物学中,涌现是一种令人难以置信的特性,由于相互作用的结果,各个部分聚集在一起,表现出新的行为(称为涌现),这是你在较小的尺度上看不到的。更令人难以置信的是,即使较小比例的版本看起来与较大比例相似,但

    2024年02月13日
    浏览(40)
  • ChatGPT的前世今生

    作者🕵️‍♂️:让机器理解语言か 专栏🎇:NLP(自然语言处理) 描述🎨:让机器理解语言,让世界更加美好! 寄语💓:🐾没有白走的路,每一步都算数!🐾 ( 本文是chatGPT原理介绍,但没有任何数学公式,可以放心食用 ) 这几个月, chatGPT模型 真可谓称得上是狂拽

    2023年04月09日
    浏览(34)
  • powerpc架构的前世今生

    PowerPC架构是一种基于精简指令集计算机(RISC)的处理器架构。它最初由IBM、Motorola和Apple共同开发,旨在为个人电脑、工作站和服务器提供高性能和可扩展性。 PowerPC架构在1991年首次推出,后来成为苹果Macintosh电脑的主要处理器架构。它在苹果电脑上使用的时间从1994年持续到

    2024年02月10日
    浏览(33)
  • CADisplayLink前世今生

    本文字数: 19803 字 预计阅读时间: 50 分钟 用最通俗的语言,描述最难懂的技术 上周同事做 code review 的时候说到了 CADisplayLink 的一些变化,感触颇深,提到了接口的一些变动,现在就自己的一些理解加上网上文档的查阅对该对象进行以下的说明: 测试环境 编译环境:Xcod

    2024年02月09日
    浏览(47)
  • 1 Go的前世今生

    概述         Go语言正式发布于2009年11月,由Google主导开发。它是一种针对多处理器系统应用程序的编程语言,被设计成一种系统级语言,具有非常强大和有用的特性。Go语言的程序速度可以与C、C++相媲美,同时更加安全,支持并行进程。此外,Go语言也支持面向对象编程

    2024年02月08日
    浏览(34)
  • 小程序插件的前世今生

    首先,在开始之前,我们需要了解小程序插件的概念。小程序插件可以理解为小程序的扩展功能,类似于应用商店中的插件。通过引入插件,我们可以给小程序添加一些特定的功能模块,例如地图、支付、分享等。这样一来,开发者就可以更加灵活地为用户提供丰富的体验。

    2024年02月03日
    浏览(36)
  • Main()函数的前世今生

             在开始分析程序之前,我们第一个要解决的问题,就是如何定位到 main函数,想要从二进制逆向的角度分析出main 函数,就必须要了解正向的代码下 main 函数的所有的细节和特 征。毕竟逆向的本质就是正向。 VS C++开发的程序在调试时总是从main或WinMain函数开始,这

    2024年02月09日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包