Kubernetes是Google公司早在2014年就发布开源的一个容器基础设施编排框架,和其他拍脑袋想出来的技术不同,Kubernetes的技术是有理论依据的,即:Borg。Borg是Google公司整个基础设施体系中的一部分,Borg是Google公司整个基础设施体系中的一部分,Google也发布了多篇关于Borg的论文作为其理论支持。其上承载了比如MapReduce、BigTable等诸多业界的头部技术。因此Borg系统一直以来都被誉为Google公司内部最强大的“秘密武器”,也是Google公司最不可能开源的项目,而Kubernetes就是在这样的理论基础上开发的。下图是Google Omega论文所描述的Google已公开的基础设施栈。
开源vs闭源面对k8s的出现,一场Docker和k8s之间的容器之战就此打响。
在这场对抗之初,由于Kubernetes开发灵感和设计思想来源于Borg,Kubernetes项目在刚发布时就被称为曲高和寡。太过超前的思想让开发者无法理解,同时由于Kubernetes项目一直由Google的工程师自行维护,所以在发布之初并没有获得太多的关注和成长。
然而,CNCF的成立改变了这一切,RedHat的长处就是有着成熟的社区管理体系,并且也有足够多的工程能力,这使得Kubernetes项目在交由社区维护开始迅速发展,并且逐渐开始和Docker分庭抗礼。并且和Docker的封闭商业模式不同,Kubernetes反其道而行之主打开源和民主化,每一个重要功能都给用户提供了可定制化的接口,并且普通用户也可以无权限拉取修改Kubernetes的代码,社区有专门的reviewer以及approver,只要你写的代码通过PR通过了代码审核和批准,就会成为Kubernetes的主干代码,这也大大的增加了Kubernetes的活力。并且,依托于开放性接口,基于Kubernetes的开源项目和插件比比皆是,并且依托于优秀的架构设计,微服务等新兴的技术理念也迅速落地,最终形成了一个百花齐放的稳定庞大的生态。
而Docker只能通过自己的工程师修改,在这一点上与Kubernetes相比就与远落下风。
总结起来:
面对Kubernetes社区的崛起和壮大,Docker公司不得不承认自己的豪赌以失败告终,从2017年开始,Docker将Docker项目的容器运行时部分Containerd捐赠给了CNCF社区,并且在当年10月宣布将在自己的Docker企业版中内置Kubernetes项目,这也标志着持续了近两年的容器编排之战落下帷幕。2018年1月,RedHat公司宣布斥资2.5亿美元收购CoreOS,2018年3月,这一切纷争的始作俑者Docker公司的CTO Solomon Hykes宣布辞职,至此,纷扰的容器技术圈尘埃落定,天下归一。
总结本文为大家介绍了Docker是如何在PaaS平台中成为焦点,又如何一步步被Kubernetes替代。下一节我们将继续为大家介绍Kubernetes除了社区之外,在本身的容器编排技术上是如何降维打击Docker公司的,敬请期待。