Kubernetes项目已满4岁



上周,Kubernetes庆祝成立4周年:其公共代码库中的第一次提交于2014年6月6日进行。 在这个场合,其创始人之一Joe Beda在他的项目博客中分享了他对一切的回忆。

第一次提交


如您所知,这一切始于更早的时代-“想法已经由Google在Borg进行了10年的测试” –反过来,该系统“应归功于甚至更早在Google及其外部进行的工作”。 这是Joe自己描述第一次提交之前Kubernetes的起源的方式:

具体来说,Kubernetes从Brendan Burns的原型开始,以及我正在进行的Craig McLuckie的工作开始,以使Google的内部体验与Google Cloud保持一致。 我们希望与Brendan和Craig一起能够使人们能够利用我们的工作,因此我们决定以开放源代码项目的形式创建一个原型,该原型将用Borg的最佳创意打开世界。


Kubernetes的原始作者-Joe Beda,Craig McLuckie和Brendan Burns(从左至右)-在关于项目历史的小组讨论中(2018 视频

我们批准了并开始创建系统本身。 以布伦丹(Brendan)的原型(用Java语言)为例,我们在Go上重写了该原型,并仅收集了必要的最小值,这使我们能够展示主要思想。 到这个时候,我们的团队已经成长了-Ville Aikas,Tim Hockin,Brian Grant,Dawn Chen和Daniel Smith对此进行了补充。 收到一些有用的信息后,我们需要一个可以整理事物的人,为公开发布做好一切准备。 我成为这个人。 我没有意识到当下的全部意义,而是创建了一个新的存储库,将开发放在这里并提交。 尽管我拥有该存储库的第一个公共提交文件,但到目前为止,已经完成了许多工作。




乔·贝达(Joe Beda)的职业生涯始于微软(1997),从那里移居至Google(2004),然后是CoreOS的顾问(2015)并创建了自己的公司Heptio(2016)

但是Kubernetes的最初发展非常粗糙:

当时的Kubernetes版本只是该项目发展的阴影。 存在基本概念,但形式很粗糙。 例如,吊舱称为任务。 我们在公众承诺的前一天更改了该设置。 [..]然而,尽管有这种潮湿的气氛,但即使是这样的开始也足以唤起社区的兴趣,社区迅速团结起来,最终变得更加强大。

随之而来的Kubernetes激增的明显原因是,整个行业都遇到了同样的问题,并且没有合适的解决方案。 克雷格重复了乔的话:

我们思考了很长时间,以使在生产中启动应用程序变得更加渐进,“精心策划”。 仅基于我们在Google Compute Engine方面的经验,我们从第一行就看到了公司在将工作负载传输到云时面临的问题。 [..]

如果您回顾历史,我们决定开放Kubernetes代码,并使其比通常的思路所建议的早得多,使其成为面向社区的项目,并且真正专注于创建一个开放且参与的社区。 它的确取得了回报:Kubernetes的开发加速了,并迅速成为容器编排的标准。

首次公告


Kubernetes的公开声明发生在第一次提交后的几天-2014年6月10日,在第一次DockerCon会议上。 这是Google基础架构副总裁埃里克·布鲁尔(Eric Brewer)所做的,作为“稳健容器”报告( 视频演示文稿 )的一部分,内容如下:

今天,我们发布了Kubernetes代码。 这是另一个编排系统... [..]我将不演示它,因为 我只有25分钟要报告。 克雷格(Craig)和布伦丹(Brendan)今天晚些时候会这样做。 [..]之所以我们现在将Kubernetes作为一个开源项目发布是因为[我们想与社区分享的想法]。

...以及有关Kubernetes的基本体系结构和新项目的关键概念的简短故事:炉床的标签 (术语pod已被Google用来指代容器组), 副本集 (“带有相同标签的炉床组”), 服务 (带有负载均衡的副本集) ”), 协调器模型 (“ 协调器模型 ”;此方法的关键思想是声明所需状态,以便将来系统自动监视其符合性)。


Kubernetes在DockerCon'14大会上的公告

项目价值


Kubernetes的下一步工作,我们是第一手了解的。在总结四周年之际,Joe指出:“该项目的成功在很大程度上不仅仅在于代码和技术,还在于一群人如何团结起来共同做某事特别。” 最好的例证是Kubernetes社区的价值,这些价值体现在项目存储库中

  1. 分配要好于集中 。 Kubernetes实现的规模只有通过对管理,决策,体系结构,代码所有权和文档的权力的开放和信任分配才能实现。
  2. 产品或公司之上的社区 。 为项目的所有参与者和用户的利益致力于项目的开发。 旨在实现共同目标的公共联合工作(包括个人爱好者和公司)都体现了这一点。
  3. 自动化高于流程 。 “英雄主义是不可行的”,因此应尽可能地使例行工作自动化,并且在不可能的情况下应予以赞赏。
  4. 吸收比排除好 。 该技术的广泛成功需要在友好和尊重的气氛中必须从不同角度提出看法并掌握大量技能。
  5. 进化胜于停滞 。 Kubernetes项目文化的核心是持续改进,仆人领导(领导-仆人式方法),指导和尊重。 项目负责人的职责包括寻找和赞助应该能够加入的新社区成员,而领导人自己也应该准备离开。

彼得·德鲁克(Peter Drucker)的名言总结了该项目的价值:“文化是早餐的策略。”

聚苯乙烯


另请参阅我们的博客:

Source: https://habr.com/ru/post/zh-CN413827/


All Articles