Kubernetes是解药还是毒药?

三年前Docker的诞生,给IT行业带来了巨大的革新,云计算模式有了新的尝试方式,应用交付变得异常便捷。也是借助这样的优势,不论在开发者市场、还是在运维人员心中,Docker均占据了一个无法撼动的位置。

除了Docker,在容器世界中,另一个明星项目当属Kubernetes。Kubernetes和Docker有相似,也存在不小的差异,它的主要目的是完成分布式容器化应用的管理。Kubernetes诞生之初,掐住Docker编排弱的七寸,一举也赢得不小的容器编排市场。然而,在Docker原生支持编排,Kubernetes快速发展的今天,不妨听下对Kubernetes的一些冷思考。

Borg 和 Kubernetes

说到Kubenetes的源头,相信所有人第一个想到的,一定会是那家屹立于当今全球互联网技术巅峰的公司——Google。如果追究地更久,那一定会发现,Google这十几年间内部的一个分布式管理平台,出镜率高得离奇,那就是“Borg”。

业界对于Borg的敬意,犹如一江春水,笔者亦如此。说到这种敬意的源头,不得不承认出自两个方面,第一是来源于Google公布的论文,第二则来源于Google出走员工对其的赞美之词。至今,我依然记得,有一次饭间,人工智能领域某位从Google出走的业界权威,兴叹:没有强大的分布式操作系统,人工智能几乎肯定会遇到瓶颈,而出走后,始终怀念当年Google内部的Borg。

开源的意图

有Google在背后背书,在容器生态刚起步的时候,哪怕Kubernetes仍然存在诸多问题,但是质疑它依然需要一定的勇气。当Docker依然处于完善容器runtime之时,Kubernetes完全成为容器化分布式应用编排领域的一面旗帜。Docker作为一家商业化公司,染指商业化似乎天经地义,然而反观Google,开源 Kubernetes 究竟意欲如何呢?

20161014203434

这是一个充满想象空间的话题。不过反观20年的软件发展史,或许我们可以有所头绪。Microsoft从操作系统起家,Google在搜索领域一家独大,而近来另一家名为Amazon的公司却依靠云计算业务迅速后来居上,并似乎依然有不小的潜力。在这里,相信细心的朋友一定会注意到近年来发展迅猛的“云计算”。谈及云计算,如果为Google粗略一想,不难得出矛盾:Google坐拥内部如此强大的Borg系统,却依然在公有云业务上和AWS相差甚远。

Docker的诞生与盛行,相信也为Google带来了契机。这三年来,Gartner以及IT界巨头纷纷对容器技术持乐观态度,甚至预言未来的云计算,将会全部运行在容器之上,容器将成为云计算的基石。Google的云计算业务拥有GAE、GCE等,然而谈及效果,外界对其肯定的声音甚是微弱。那么问题来了,未来五年、甚至十年的容器公有云,Google会坐视不管吗?

我相信,“公有云”战略上,Google会是屡败屡战!借着Docker的兴起,借着容器这阵东风,借着Borg的积淀,“卷土重来”未可知!

Google 的公有云战略

看公有云市场,头把交椅被Amazon稳稳坐定。不过,幸运的是,扯上容器,AWS似乎并不占有优势,甚至还会与其自身的EC2等产品冲突。而Google则是号称多年前,即将内部业务全部通过容器封装,在技术与运营经验存在得天独厚的优势,即 Borg,如今的关键在于如何培育生态,以及如何从Docker这家公司手中抢占用户。

开源Kubernetes是第一步,就在今年,另一件大事应该是Kubernetes成为CNCF基金会项目,看似更加开放,发展将会更健康。然而,其背后仿佛也透露着Google并不关心Kubernetes是否绝对掌握在自己手中,反倒是适当的放权,会更易于建立一个好的开发者生态,原因很简单,因为Google有Borg。需要清楚的是:虽然对Kubernetes的掌控权力弱化,但是Google在项目中从事的主要工作一直很清晰——定义Kubernetes的API。API是大多数项目的生命力,可开放也可封闭,也有可能成为领域的标准。十年前Borg那套无法在外界落地的API,如果Google趁着这一波容器风波,通过几年的时间,统一Kubernetes与Borg的API,一旦外界用户逐渐习惯Google通过Kubernetes对外开源的这一套容器管理API,那么Google是否会在未来的云计算领域与AWS分庭抗礼,绝对是一个充满想象空间的话题。

回到公有云,既然未来有可能统一容器管理的API,那么Google有必要维护Borg以及Kubernetes两套容器管理平台吗?统一的API,没人关心底层平台的实现具体如何,那成熟的自然会成为首选,毫无疑问是Borg,也就是未来Google的公有云很有可能是通过Borg来支撑。毕竟,Borg是久经检验,其软硬件结合能力足够强大,不过是个闭源的产品。既然涉及公有云,涉及商业,我们换个角度来看,倘若开源的Kubernetes足够成熟,足够支撑大规模用户场景,那么未来Google的公有云问世,又怎么会有企业愿意将业务从稳定成熟的Kubernetes环境中,迁移到Google的公有云上呢?这样,Kubernetes的稳定成熟势必会成为一个悖论。 基于这样的原因,笔者也了解过类似BAT、eBay级别的大公司,然而在这些技术性公司强大专业运维团队维护的同时,依然无法很好的帮助现有业务适应Kubernetes,另外其分布式系统规模带来的复杂度和欠佳的稳定性,同样印证了以上观点。

Kubernetes 阵营

Kubernetes upstream社区这一年来一直有这样的一个说法:如今的Kubernetes越来越像当年的OpenStack,群雄并起。Kubernetes项目的创始人Brendan Burns出走微软时,也对Kubernetes当前运营的复杂以及混乱颇有微词。既然Google逐渐放权Kubernetes,生态阵营中,Google精力专注于API的规范制定上,那么Kubernetes阵营中还有哪些成员,都在做些什么呢?

20161014203447

排除Google,其他的知名组织还包括:开源老兵红帽(RedHat),创业新锐CoreOS,以及像华为这样国内优秀企业。

说到RedHat,这一自始至终投身企业级市场做服务的巨头,看其近年来云业务的发展,不难发现其第二代PaaS时代,OpenShift栽过不小的跟头。后来索性宣布抛弃原有的老路,新版本OpenShift全面拥抱Kubernetes,几乎可以断定,其初衷偏离其擅长的私有市场领域,可能性不大,毕竟成熟的容器公有云问世之前,企业市场依然诱人。另外,在Kubernetes中容器runtime这一众厂商政治斗争最为激烈的领域,RedHat没有理由回避。不管是Docker,还是runC,还是rkt,还是runV,都没有RedHat巨大的操作系统发行版市场份额的优势,同时在Kubernete内部controller的丰富性方面,RedHat同样是不遗余力地在贡献,很容易联想到其在未来企业级市场上的技术布局。因此RedHat在Kubernetes中的影响,一直将偏向其自身既有优势,当然这也无可厚非。

CoreOS是一家极具创新精神的创业公司,其etcd、CoreOS发行版、flannel以及fleet等开源项目均被业界津津乐道,目前他们也把绝大部分的精力投入Kubernetes,甚至对类似于rkt,CoreOS等开源项目都很少维护。记得etcd的作者曾经说过,etcd将会在未来更好的服务Kubernetes,同时CoreOS也在容器runtime的支持上投入大量的精力,还包括Kubernetes的性能优化等。毕竟,如果看到OpenStack领域,存在Mirantis这样体量的创业公司,谁都会遐想容器生态中是否会有复制。

当然,除了以上三大阵营之外,参与的组织还有很多。不过不可否认的是:开放意味着参与,参与即存在各自立场,立场难免涉及“政治”。不过话又说回来,如何从Docker公司手中,抢得足够的用户群体,都会是Kubernetes阵营面对商业化时,需要思考的严峻话题。何况,容器编排目前已经以一种超乎想象的简单方式,集成进入docker自身。

总结

Kubernetes项目在容器生态中依然扮演着举足轻重的角色,其起源、发展、开放的历程,都值得容器生态的每一个参与者玩味。如果Kubernetes是google走向容器公有云的一颗棋子的话,那么在企业级市场中,是毒药还是解药,同样会是一个值得深思的话题。不过,不可否认的是,容器生态中,虽然没有Google,红帽等公司这样大的体量,Docker公司作为新锐,依然是容器世界的翘楚。当然,如果要上升到云计算的高度,也许行业还得征求一下Amazon以及Microsoft的态度,他们可从未说过,未来容器世界他们会作壁上观。

K8S中文社区微信公众号

评论 抢沙发

登录后评论

立即登录