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 ...
随机推荐
- pandas的read_csv踩到的坑
read_csv要注意,如果没有设置index_col时,读出来的会在索引上方加上Unnamed:0.可以通过设置index_col来解决这个问题. import pandas as pd impor ...
- 原生js如何获取某一元素的高度
三种方法: 1.document.getElementById("id").style.height,这种方法的前提是必须之前已经显示的在css中声明过height,才能取得正确的 ...
- ArrayList集合二
集合的遍历 通过集合遍历,得到集合中每个元素,这是集合中最常见的操作.集合的遍历与数组的遍历很像,都是通过索引的方式,集合遍历方式如下 13 import java.util.ArrayList; 1 ...
- jQuery 遍历 - eq() 方法
<!DOCTYPE html> <html> <head> <style> div { width:60px; height:60px; margin: ...
- jQuery-介绍 加载 选择器 样式操作 属性操作 绑定click事件
jQuery - 介绍 加载 选择器 样式操作 属性操作 绑定click事件 注意:以下部分问题不能实现效果,因该是单词拼写错误(少个t)或者没有加引号(“swing”)... jquery介绍 jQ ...
- spring-helloworld (1)
目录 一.eclipse安装springsource-tools插件 二.新建maven工程,引入spring配置 三.添加helloworld类 四.使用springsource-tools插件 创 ...
- 剑指offer——23调整数组顺序使奇数位于偶数前面
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 题解: 一种是数 ...
- 【ARC072E】Alice in linear land
题目 瑟瑟发抖,这竟然只是个蓝题 题意大概就是初始在\(0\),要到坐标为\(D\)的地方去,有\(n\)条指令,第\(i\)条为\(d_i\).当收到一条指令\(x\)后,如果向\(D\)方向走\( ...
- jquery与zend framework编写的联动选项效果
html部分: <pre name="code" class="html"><!DOCTYPE html PUBLIC "-//W3 ...
- **JLink Warning: Mis-aligned memory write: Address: 0x20000000, NumBytes: 2, Alignment: 2 (Halfword-aligned)
网上也有同学遇到这个问题,http://www.openedv.com/thread-113049-1-3.html 根据他的经验我也重新安装了Jlink驱动: 顺便注意Dialog DLL:TARM ...