Docker系列(八):Kubernetes横空出世背后的秘密
Docker与CoreOS的恩怨情仇
2013年2月,Docker建立了一个网站发布它的首个演示版本, 3月,美国加州Alex Polvi正在自己的车库开始 他的 第二次创业
有了第一桶金的Alex这次准备干一票大的,他计划开发一个足以颠覆传统的服务器系统的Linux发行版。为了提供能够从任意操作系统版本稳定无缝地升级到最新版系统 的能力,Alex急需解决应用程序与操作系统之间的耦合问题。因此,当时还名不见经传的Docker容器引起了他的注意,凭着敏锐直觉,Alex预见了这个项目的价值,当 仁不让地将Docker做为了这个系统支持的第一套应用程序隔离方案。不久以后,他们成立了以自己的系统发行版命名的组织:CoreOS。事实证明,采用Docker这个决定, 后来很大程度上成就了CoreOS的生态系统。
分手
*真相是利益问题
Docker一开始的时候是作为一个组件来构建平台,一个构建块,可以将它分层置入系统来利用容器…这是支撑 Docker的原始价值,是一个帮助构建东西的简单工具,我认为这是目前它如此成功的原因。
但是,Polvi明显觉得,Docker忽略了自己的核心,期望拥有更多功能——成为一个平台。
他们一直认为 Docker 应该成为一个简单的基础单元,但不幸的是事
情并如他们期望的那样,Docker正在构建一些工具用于发布云服务器、 集群系统以及构建、运行、上传和下载映像等服务,甚至包括底层网
络的功能等,以打造自己的Docker平台或生态圈。
Docker 刚问世就红透半边天,不仅拿了融资,还得到了Google 等巨头的支持。CoreOS此前一直忙于为Docker 提供技术支持服务
彻底分手,找到新女友
Alex Polvi 认为,由于 Docker 貌似已经从原本做"业界标准容器"的初心转变成打造一款以容器为中心的企业服务 平台,CoreOS 才决定开始推出自己的标准化产品。
2014年12
Polvi 表示,Docker 在安全性和可组合性方面是有根本上的缺陷的,而 Rocket 的设计原型就是为了弥补这些
缺陷。
CoreOS 的联合创始人兼 CTO Brandon Philips 是 Dcoker 管理委员会的成员,CoreOS 打算继续支持 Docker 项目,但是当 Rocket 逐渐成熟之后,他们将重新评估是否继续参与贡献。
2015年5月4日举行的CoreOS Fest大会上,CoreOS宣布了它的新合作伙伴:Red Hat、Google、Vmware及 Apcera。Docker对容器的标准控制比较独断,而且目前看上去没有引入其他人一起进行设计的可能。CoreOS的 Rocket自定义程度相对更高,对于Google等公司来说,也是可以制衡Docker的手段。所以Google等公司支持 Rocket
CoreOS CEO Alex Polvi 说:
当开始做 CoreOS 的时候,我们便着手构建并传递给大家 Google 的基础架构。如今,伴随着 Tectonic 的诞生, 这个目标也实现了。企业可以像 Google 运行其基础设施一样,在世界各地安全运行基于容器的分布式应用。
容器技术的标准之争
cgroup最初由google的工程师提出,后来被整合进Linux内核中 而后的Android操作系统也就凭借着这个技术,为每个应用程序分配不同的cgroup,将每个程序进行隔离,达到了
一个应用程序不会影响其他应用程序环境的目的。
Linux容器正是业界一直关注的Google基础设施Borg和Omega的基础之一,基于之前Google开源的cgroup项目。
Borg
这是一个生产环境的经验下的论文,自于Google
高层次的
•任何东西都运行在Borg之中,包含存储系统如CFS和BigTable •中等类型的集群大小有10k左右的节点,尽管有的要大的多
•节点可以是十分的异构 •使用了Linux的进程隔离(本质上来说是容器),因为Borg出现在现在的虚拟机基础设施之前。效率和启动时间 当时十分重要。
•所有的作业都是静态的链接的可执行文件。
•有非常复杂,十分丰富的资源定义语言可用。 •可以滚动升级运行的作业,这意味着配置和执行文件。这有时需要任务重启,因而容错是很重要的。
2013年10月3日 - Google发布了自己所用Linux容器系统的开源版本lmctfy
Docker的负责人之一Solomon Hykes初步探索了代码后认为,lmctfy的一些代码功能非常底层,可以作为独立的 库,有可能与Docker等容器项目配合使用。由于代码很干净,占用小,构建体验优秀,他正在考虑将其作为 Docker的后端。
2015 Docker con大会上,当Polvi和Hykes在台上握手并宣布,启动开放容器基金会,这被认为原有的分裂得到了 修复。Hykes介绍了OCP项目,旨在为容器提供一种通用runtime
Open Container Project,目标是实现容器镜像格式与运行时的标准化。这很有可能实现,项目成员包括Docker、 CoreOS、Redhat、IBM、Google 、微软、IBM、Google、英特尔、Amazon、HP、华为、思科、EMC 等。
我们开发容器APP的经验将为我们合作OCP(开放容器项目)规范起到关键作用。我们期望大多数容器App能直 接集成到OCP规范中,稍微做点调整就可以和现存的Docker生态圈完美兼容。最终目标是致力于形成一份统一的 容器标准格式规范,而且OCP的成功将意味着容器App的大体目标是令人满意的。——Polvi
Kubernetes王者归来
2014年6月:谷歌宣布kubernetes 开源。
2014年7月:Mircrosoft、Red Hat、IBM、 Docker、 CoreOS、 Mesosphere 和Saltstack 加入kubernetes。 2014年8月: 2014年8月 :Mesosphere宣布将kubernetes作为frame整合到mesosphere生态系统中,用于Docker容 器集群的调度、部署和管理
2014年8月:VMware加入kubernetes社区,Google产品经理 Craig Mcluckie公开表示,VMware将会帮助 kubernetes实现利用虚拟化来保证物理主机安全的功能模式。
2014年11月 : HP加入kubernetes 社区。 2014年11月:Google容器引擎Alpha启动,谷歌宣布GCE中支持容器及服务,并以kubernetes为构架。 2015年1月:Google和Mirantis及伙伴将kubernetes引入OpenStack, 开发者可以在openstack上部署运行 kubernetes 应用。
2015年4月:Google和CoreOs联合发布Tectonic, 它将kubernetes和CoreOS软件栈整合在了一起。
2015年5月: Intel加入kubernetes社区,宣布将合作加速Tectonic软件栈的发展进度。 2015年6月:Google容器引擎进入beta版。 2015年7月:Google正式加入OpenStack基金会,Kubernetes的产品经理Craig McLuckie宣布Google将成为 OpenStack基金会的发起人之一,Google将把它容器计算的专家技术带入OpenStack,成一体提高公有云和私有云的 互用性。
2015年7月:Kuberentes v1.0正式发布。
2015年7月22日Google正式对外发布 Kubernetes v 1.0,与此同时,谷歌联合linux基金会及其他合作伙伴共同成立 了CNCF基金会( Cloud Native Computing Foundation),并将kuberentes 作为首个编入CNCF管理体系的开源项目 ,助力容器技术生态的发展进步。
kubernete在github开源社区,经过400多位贡献者一年的努力,多达14000次提交,最终达到了在之前会议中确 定的发布版本v1的功能要求
Google内部积累发展10年的容器及集群管理专家经验,正 式应用于大众云计算生产环节
Docker系列(八):Kubernetes横空出世背后的秘密的更多相关文章
- Docker系列(八)Kubernetes介绍
Kubernetes组件功能图 各组件说明: 节点 节点在Kubernetes由虚拟机或者实体机表示,常称为Minion,即从属主机.当一个节点加入到Kubernetes系统中时,它将会创建一个数 ...
- Docker系列(九)Kubernetes安装
环境: A.B两天机器A机器IP:192.169.0.104,B机器IP:192.168.0.102,其中A为Master节点,B为Slave节点 操作系统:Centos7 Master与Slave节 ...
- Docker系列八: 数据卷
什么是数据卷 生成环境中使用docker的过程中,往往需要对数据进行持久化,或者需要多个容器之间进行数据共享,这个就涉及到了容器数据管理 容器中管理数据主要有两种方式: 数据卷:容器内数据之间映射到本 ...
- Docker系列01—容器的发展历程---Docker的生态圈
本文收录在容器技术学习系列文章总目录 Docker 和容器技术的发展可谓是日新月异,本文试图以全局的视角来梳理一下 docker 目前的生态圈.既然是概览,所以不会涉及具体的技术细节. Docker ...
- Docker学习(十一)Docker系列结束-新的开始K8S
Docker学习(十一)Docker系列结束-新的开始K8S 标签(空格分隔): docke k8s Docker系列结束 上一篇讲到使用docker官方提供的容器编排工具docker-compose ...
- Docker系列之实战:3.安装MariaDB
环境 [root@centos181001 ~]# cat /etc/centos-release CentOS Linux release 7.6.1810 (Core) [root@centos1 ...
- Docker系列——Grafana+Prometheus+Node-exporter服务器监控平台(一)
在最近的博文中,都是介绍监控平台的搭建,其实并不难,主要是需要自己动手操作,实践一番就会了. 有天在想,云上的服务器,是不是也可以搭建一个监控平台,所以就捣鼓了一下,不过遗憾的是,使用阿里云开源的插件 ...
- 微软云平台windows azure入门系列八课程
微软云平台windows azure入门系列八课程: Windows Azure入门教学系列 (一): 创建第一个WebRole程序与部署 Windows Azure入门教学系列 (二): 创建第一个 ...
- SQL Server 2008空间数据应用系列八:基于Bing Maps(Silverlight)的空间数据存储
原文:SQL Server 2008空间数据应用系列八:基于Bing Maps(Silverlight)的空间数据存储 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft S ...
随机推荐
- JAVA Java中@Override的作用
@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处: 1.可以当注释用,方便阅读: 2.编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错.例 ...
- delphi Treeview用法
Treeview用于显示按照树形结构进行组织的数据. Treeview控件中一个树形图由节点(TreeNode)和连接线组成.TtreeNode是TTreeview的基本组成单元. ...
- 使用electron-vue搭建桌面应用程序项目
vue-cli+electron一种新的脚手架(vue-electron)vue-electron主要业务逻辑都放在src下的renderer文件夹内,和之前的vue-cli搭建项目流程没有任何区别 ...
- NX二次开发-NXString转换为char*方法
NX9+VS2012 #include <uf.h> #include <uf_drf.h> #include <NXOpen/Annotations_Note.hxx& ...
- [JZOJ 5697] 农场
题目大意:将 n 个数 ai分成若干连续的段,使得每段的和都相等,求最多可以分成多少段. 思路: 考虑ai的和为sum,那么每一段的和就是约数. 对于每一个d,考虑其是否合法. 1e6之内用桶统计不会 ...
- python从入门到大神---Python的jieba模块简介
python从入门到大神---Python的jieba模块简介 一.总结 一句话总结: jieba包是分词技术,也就是将一句话分成多个词,有多种分词模型可选 1.分词模块包一般有哪些分词模式(比如py ...
- 快速排序--Python实现
快速排序算法:1.选择一个基准数2.小于基准数的放左边,大于基准数的放右边3.利用递归的方法针对左边的数据进行快速排序,再对右边的数据进行快速排序4.递归停止的条件:数组为空或者只有一个元素 时间复杂 ...
- Python 爬虫-爬取京东手机页面的图片
具体代码如下: __author__ = 'Fred Zhao' import requests from bs4 import BeautifulSoup import os from urllib ...
- KiFastCallEntry() 机制分析
1. 概述 从 windows xp 和 windows 2003 开始使用了快速切入内核的方式提供系统服务例程的调用. KiFastCallEntry() 的实现是直接使用汇编语言,C 语言不能直接 ...
- CSS:CSS 总结
ylbtech-CSS:CSS 总结 1.返回顶部 1. 你已经学习了CSS,下一步学习什么呢? CSS 总结 本教程已向你讲解了如何创建样式表来同时控制多重页面的样式和布局. 你已经学会如何使用 C ...