【转帖】极简Docker和Kubernetes发展史

https://www.cnblogs.com/chenqionghe/p/11454248.html

2013年

Docker项目开源

2013年,以AWS及OpenStack,以Cloud Foundry为代表的开源Pass项目,成了云计算领域的一股清流,pass提供了一种“应用托管”的能力。
当时的虚假机和云计算已经是比较普遍的技术了,主流用法就是租一批AWS或者OpenStack的虚拟机,然后用脚本或者手工的方式在机器上部署应用
Cloud Foudry这样的Pass项目,核心组件就是一套打包和分发机制,会调用操作系统的Cgroups和Namespace机制 为每个应用单独创建“沙盒”的隔离环境,然后在“沙盒”中运行这些进程,实现了多用户、批量、隔离运行的目的。
这个“沙盒”,就是所谓的容器。
这一年还叫dotCloud的Docker公司,也是Pass热潮中的一员。只不过,比起Heroku、Pivotal、Red Hat等大佬,dotCloud公司显得太微不足道,主打产品跟主流的CloudFoundry社区脱节,眼看就要阵亡的时候,dotCloud公司决定开源自己的容器项目Docker
“容器”其实不是什么新鲜的东西,不是Docker发明的,当时最热的Pass项目Cloud Foundry中,容器也只是最底层、最不受关注的一部分。

短短几个月,Docker就迅速崛起了,然后Cloud Foundry等所有Pass社区还没来得及成为对手,就已经被淘汰了。

Docker项目大部分和Cloud Foundry容器大部分功能和实现原理是一样的,但是不一样的“Docker镜像”,解决了环境打包的问题,直接打包了应用运行所需要的整个操作系统,赋予了本地环境和云端环境调度一致的能力,避免了用户通过“试错”来匹配不同环境之间差异的痛苦过程, 这也是Docker的精髓。
Pass的定义变成了一套以Docker容器为技术核心,以Docker镜像为打包标准的“容器化”思路
2013年年底,dotClound公司正式改名为Docker公司

2014年

Docker发布Docker Swarm

Docker发布Docker Swarn,以一个完整的整体来对外提供集群管理功能,最大的亮点就是完全使用Docker项目原来的容器管理API来完成集群管理。

docker run "容器"

只需要变成

docker run -H "swarm集群API地址" "容器"

用户只需要使用原先的docker指令创建一个容器,这个请求就会被swarm拦截处理,通过具体的调度算法找到一个适合的Docker Daemon。
这种方式对已经熟悉docker命令行的开发者们非常的友好。

Docker收购Fig,并改名Compose

Docker公司收购了Fig项目,后改名为(Compose)。
Fig项目在开发者面前第一次提出了“容器编排”(Container Orchestration)
在云计算领域,“编排”主要指用户如何通过某些工具或者配置来完成一组虚拟机以及关联资源的定义、配置、创建、删除等工作,然后由云计算平台按照这些指定的逻辑来完成的过程
而容器时代,“编排”就是对Docker容器的一系列定义、配置和创建动作的管理。

Docker和Mesosphere公司的竞争

除了Docker生态外,Mesos和背后的创建公司Mesosphere也是一个非常大的热力,Mesos是大数据最受欢迎的资源管理项目,跟Yarn项目竞争的实力派对手。
大数据关注的计算密集型离线业务,其实不像Web服务那样适合用容器进行托管和扩容,也没有应用打包的强烈需要,所以Hadoop、Spark等项目现在也没在容器技术投入很大的精力,但是Mesos作为大数据套件之一,天生的两层调度机制让它非常容易从大数据领域独立出来去支持更广泛的Pass业务,所以Mesos公司发布了Marathon项目,成为了Docker Swarm的一个强有力的竞争对手。
虽然不能提供像Swarm那样的Docker API,但是Mesos社区拥有一个非常大的竞争力:超大规模集群管理经验
Mesos+Marathon组合进化成了一个调度成熟的Pass项目,同时能支持大数据业务,

Docker和CoreOS

CoreOS是一个基础设施领域创业公司,核心产品是一个定制化的操作系统,用户可以按照分布式集群的方式,管理所有安装了这个系统的节点,使用用户在集群里部署应用像使用单机一样方便
Docker项目发布后,Corecd很快认识到可以把容器的概念无逢集成到自己的这套方案中,从而为用户提供更高层次的Pass能力,所以CoreOS很早就成了Docker项目的贡献者,然而在2014年结束了合作,推出了自己的容器Rocket(rkt),然而这个rkt容器完全被Docker公司压制了。

OCI标准制定

由CoreOS、Google、RatHat等公司共同宣布,Docker公司将Libcontainer(容器运行时库)捐出,并改名为RunC项目,交由一个完全中立的基金会管理,以RunC为依据共同制定一套容器和镜像的标准规范
,叫OCI(Open Container Initiative),意在将容器运行时和镜像的实现从Docker项目中完全剥离出来,以此来压制Docker公司一家独大的现状,同时也为不依赖Docker项目构建平台层能力提供了可能。
不过并没有改变Docker在容器领域一家独大的现状

Kubernetes诞生

2014年6月,基础设施领域的领先者Google发,正式宣告了Kubernetes项目的诞生(Borg的开源版本),如同Docker横空出世一样,再一次改变了容器市场的格局。
微软、RedHat、IBM、Docker加入Kubernetes社区

2015年

CNCF基金会成立

为了在容器编排地位取得绝对的优势,同Swarm和Mesos竞争,Google、RedHat等开源基础设施公司,共同发起了一个名为CNCF的基金会:希望以Kubernetes为基础,建立一个由开源基础设施领域厂商主导、按照独立基础会方式运营的平台社区,来对抗以Docker公司为核心的容器商业生态。简单的说就是打造一个围绕Kubernetes项目的“护城河”。
Docker擅长Docker生态的无缝集成,Mesos擅长大规模集群的调度与管理,Kubernetest选择了Pod、Sidecar等功能和模式作为切入点(大多来自Borg和Omega系统的内部特性)。
Kubernetes的团队规模很少,投入的工程能力有限,RedHat在这时候和Google联盟,正式开户了容器编排“三国鼎立”的书面。

Kubernetes来自Google公司在容器化基础设施领域多年来实践经验的沉淀和升华,在Github上的各项指标一路飙升,将Swarm项目远远地甩在了后边。
同年,Kubernetes发布Helm软件包管理系统、kubeam安装工具、发布Mikibube等一列更新操作

CNCF社区迅速增加了Prometheus、Fluentd、OpenTracing、CNI等一系列容器生态的知名工具和项目
大量的公司和创建团队将注意力投向CNCF社区而不再是Docker公司

2016年

Docker公司放弃现有的Swarm项目,将容器编排和集群管理功能内置到Docker中

面对CNCF的竞争优势,Docker公司宣布放弃现有的Swarm项目,将容器编排和集群管理功能内转到Docker项目当中。
然而这种改变带来的技术复杂度和维护难度,给Docker项目造成了非常不利的书面

Kuberntes支持OpenApi,给开发人员定制化提供更大的灵活性

不同于Docker公司,Kubernetes推进“民主化”架构:从API到容器运行的每一层,都给开发者暴露出了可扩展的插件机制,鼓励用户通过代码的方式介入每一个阶段。
Kubernetes项目的这个变革非常有效,很快在整个容器社区中催生出了大量的、基于Kubernetes API和扩展接口的二次创新产品:

  1. 热度极高的Istio微服务治理工具
  2. 应用部署框架Operator
  3. Rook开源创业项目,把Ceph重量级产品封装成了简单易用的容器存储插件
    Docker公司在Kubernetes社区的崛起和壮大后,败下阵来。

2017年

Docker将Containerd捐献给CNCF社区

Docker公司将容器运行时部分Containerd捐献给CNCF社区,标志着Docker项目你下面升级成为了一个Pass平台,Docker公司宣布将Docker项目改名为Moby,交给社区自行维护,而Docker公司的商业产品还占有Docker这个注册商标。
同年10月,Docker宣布将在自己主打产品Docker企业版中内置Kubernetes项目,持续了两年的容器编排之争终于落下帷幕

2018年

RatHat宣布2.5亿美元收购CoreOS
Docker公司CTO Solomon Hykes宣布辞职,容器技术圈子从此尘埃落定

分类: DockerKubernetes

原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/12004549.html

时间: 2024-10-08 15:20:07

【转帖】极简Docker和Kubernetes发展史的相关文章

[转帖].MegaRAID SAS 9361-8i 开箱 极简测试

[配件开箱] 谁说raid0软硬没多大区别的...MegaRAID SAS 9361-8i 开箱 极简测试 [复制链接] https://www.chiphell.com/thread-1810952-1-1.html 最明显的是 最后的三张图 软raid 不开缓存的raid 以及开缓存的raid 性能差距明显.     tonyni88 电梯直达 1#  发表于 2017-12-28 06:23 | 只看该作者 |只看大图  本帖最后由 tonyni88 于 2017-12-28 06:53

极简容器化交付 | 0命令行完成镜像上传

虽然docker.kubernetes的命令集并非十分复杂,后台操作也比较快捷,但是对于大多数徘徊在容器化门口的企业和个人用户来说,仍旧是一块心病,docker or not docker, that's a question,SWR服务通过提供界面化的操作,屏蔽原生命令行,简化用户操作和技术门槛,为企业和个人用户提供极简的容器化交付平台,我们接下来会通过一系列的文章,向大家介绍SWR的这些功能特性. 今天要为大家介绍的是用户0命令行,通过WEB界面实现镜像的上传及实现原理剖析. 我们从这个最为

基于docker、kubernetes部署openstack到atomic系统上

声明: 本人阅读笔记,翻译类文章仅作意译.如有不对之处,请指出. 需要更本源的理解,请自行阅读英文. 本博客欢迎转发,但请保留原作者信息! 博客地址:http://blog.csdn.net/halcyonbaby 新浪微博:寻觅神迹 内容系本人学习.研究和总结,如有雷同,实属荣幸! 基于docker.kubernetes部署openstack到atomic系统上 openstack的服务定义,是不是看起来很简洁? openstack的实际组件构成,是不是看起来很复杂? 所有的openstack

CentOS下使用Postfix + Dovecot + Dnsmasq搭建极简局域网邮件系统

背景 开发环境为局域网,工作内容需要经常查看邮件文件(*.eml),可恶的Foxmail必须验证账户才能进入主界面,才能打开eml文件查看. 无奈搭一个局域网内的邮件系统吧.极简搭建,仅用于通过Foxmail验证. 环境 [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 安装 下载服务器软件: SMTP服务器postfix POP/IMAP服务器dovecot DNS服务器dns

React Native的极简手册

安装入门可以参考:React Native官方文档(http://reactnative.cn/docs/0.31/tutorial.html#content). NodeJS知识储备:参考<NodeJS入门>(https://leanpub.com/nodebeginner-chinese).(尊重知识,请购买原版). 书籍:<React Native入门与实战> 代码示例:30天学习React Native教程(https://github.com/fangwei716/30-

极简主义生活方式

极简主义生活方式,是对自身的再认识,对自由的再定义. 深入分析自己,首先了解什么对自己最重要,然后用有限的时间和精力,专注地追求,从而获得最大幸福. 放弃不能带来效用的物品,控制徒增烦恼的精神活动,简单生活,从而获得最大的精神自由. 1.欲望极简 了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风.把自己的精力全部用在自己最迫切的欲望上,如提升专业素养.照顾家庭.关心朋友.追求美食等. 2.精神极简 了解.选择.专注于1-3项自己真正想从事的精神活动,充分学习.提高.不盲目浪费自己的时间与精

极简OCI连接TimesTen程序

针对Oracle数据库的开发,Java和OCI是最常用的两种编程语言,对于TimesTen也是一样. 相较于Pro*C,OCI编程稍显复杂.但OCI提供更细粒度的控制,提供更丰富的功能和更好的性能.因此,对于熟悉C语言的编程人员,为性能和可控制性,以及易于调试,都应该首选OCI而非Pro*C. 和Pro*C一样, OCI也支持用TNS和easy connect string(DSN)来连接TimesTen. 可以通过connect string和TWO_TASK来指定相应的接口. 由于大部分的概

Vim,极简使用教程,让你瞬间脱离键鼠切换的痛苦

写之前,脑子里觉得可以最常用操作的来熟悉Vim,内容不多,写了一半确发现,即使是最常用的操作,讲完也要写好多,已经不能叫什么极简教程了,不过既然写了,就这样吧 都说Vim很难学,是的,相对于鼠标来讲,肯定是超难学了.但它的好处真的非常多,特别是对于敲代码的同学.关于这些问题,今天就不讨论了,这里主要说的是,只要记住小小的一部分操作,就可以很轻松的使用Vim,仍然可以极大的提高敲代码的效率哦. 网上很多介绍Vim的文章,都在介绍它强大的操作,其实加大了学习的难度,我简单的总结了一下,要使用Vim只

Ui培训之如何设计极简三色图标

小编之前在ui培训课程里面了解到,在ui设计当中,时下图标设计流行的是一种不一样的极简风,这样会更加细腻有趣.配色是设计中永恒的话题,在我看来简易更是设计的精髓. Banana Bird 在刚刚接受ui培训的时候,一般会从单色,或者双色结构来授课,就如上图的banana bird图标,如此简易,但也明确体现图标所表达的内容. KZ 然而,许多设计师都认为三种色彩构成的配色是最平衡也是最漂亮的,多一色显得太花,少一色又过于朴素,这也是为什么许多配色方案的构成多为3种色彩.就如小米的包装设计,都是以