36 | 从Omega到Kubernetes:哺育云原生的开源项目
徐文浩
你好,我是徐文浩。
在前面两节课里,我们一起看过在 2015 年发表的 Borg 的论文。不过,Borg 这个系统的开发与使用,其实要远远早于 2015 年。事实上,在 2004 年 Google 发表的 MapReduce 的论文里,我们就已经隐隐约约可以看到 Borg 的存在了。
而在 2015 年,Borg 也早就已经进行了很多次的进化。在 2013 年,Google 就发表了一篇叫做《Omega: Flexiable, Scalable Schedulers for large compute clusters》的论文,向整个工业界介绍了 Omega 这个调度系统。而在不久之后的 2014 年 7 月,Google 更是首次发布了开源的 Kubernetes 系统。
在 2016 年,Google 更是发表了一篇叫做《Borg, Omega, and Kubernetes: Lessons Learned From Three Container-Management Systems Over A Decade》的文章。这篇文章总结了十多年来,Google 从开发 Borg,到优化调度系统变成 Omega,以及最后重起炉灶开源 Kubernetes 中的经验与教训。
那么,今天我们就一起来了解下,在 2013 和 2016 年发表的这两篇论文到底讲了什么。虽然 Google 并没有开源 Borg 和 Omega,但是从开源的 Kubernetes 和发表的论文中,我们也多少能够一窥这些系统是如何一路走来的。我在这个课程的一开始就说过,我们学习这些论文和知识,重要的并不只是“是什么”“怎么做”的,更重要的是“为什么”。了解系统是如何逐渐演变过来的,你才能真的体会到如何在不断地迭代优化中设计系统。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了从Borg到Omega再到Kubernetes的开源项目演进过程,重点关注了Google在十多年间的调度系统设计和优化。文章首先介绍了Omega调度系统的设计理念和解决方案,包括采用多调度器设计以满足在线服务和批处理任务的不同需求,以及动态分区的调度系统优化方案。接着,文章提到了Kubernetes系统面临的实际问题,如容器环境隔离、任务管理、服务依赖和负载均衡等方面的挑战,以及Kubernetes通过统一API解决这些问题的方式。总结指出,Kubernetes不仅仅是一个调度器,而是一个被称为容器“编排”系统的全功能集群服务管理系统。最后,文章提到Kubernetes仍在快速进化,需要不断改进以满足服务依赖等方面的需求。整体而言,本文通过对Borg、Omega和Kubernetes的演进过程进行分析,展示了调度系统在面对不同任务类型和资源管理方面的挑战,以及相应的解决方案。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《大数据经典论文解读》,新⼈⾸单¥59
《大数据经典论文解读》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(2)
- 最新
- 精选
- 核桃把大数据系统部署在k8s上面,我们以前曾经尝试过,但是这里有一个问题,到底什么类型的大数据项目适合放在k8s上面呐?其实应该是计算型的工具,如spark,flink和storm这些,而存储型的工具,像hdfs,hbase则不适合,原因是spark这些运行的job任务,其实可以不断重试和调度的,目前spark也已经不断适配k8s系统了。 而存储型的工具,目前云原生有一个叫openEBS的项目出现,这个项目的核心是资源隔离,向spanner架构那样,一个服务对应一个存储管理单元一个存储池,互不干扰,当然对资源肯定会消耗多一些,但是这恰恰就和云原生的思想匹配的。2022-03-231
- 在路上徐老师好,批处理能够高吞吐地处理历史数据,但是对即席查询而言有点慢。流式处理能够低延迟地处理实时数据,但是需要先写逻辑再消费数据。Dremel查询性能好,但是它的数据文件采用列式存储,不可修改,数据难以以分钟级别的延迟落到数据库中。我认为实时数据湖是一个方向,数据以低成本、低延迟的方式落入湖中,支持快速查询、快速分析。2022-01-17
收起评论