Kubernetes 的阿喀琉斯之踵

Kubernetes 的阿喀琉斯之踵

上期的「Kubernetes 发家史」系列之一“Kubernetes 是 google 的礼物吗?”,已经站在假想的未来回溯了于茫茫互联网棋盘上落下 Kubernetes 这一棋子的重要意义。今天的故事将带你回到现在,从多方面了解 Kubernetes 。


01


“Kubernetes ,既不是对容器的管理,也不是对应用的管理。而是对人的管理。 ” 老谈泯了一泯,仿佛从茶中感受到了茶叶光合作用时的芬芳。


“谈总,您说的有点深奥,能不能详谈一下?”莫须有银行信息部主任小王一脸疑惑。


“Kubernetes 不是单独的东西,每个开源软件问世前,对应的概念和故事早已经成群结队的过来了。


这帮 IT 老油条!Hadoop 问世时,我听他们编啤酒和尿布的故事,说万物之间都有关联。


Tensorflow 出来时,他们又开始说机器人让大部分人失业的事。


所以,你知道 Kubernetes 出来时,他们讲些啥?”老谈眉间露出轻蔑的一笑。


“有微服务,云原生,DevOps...”小王一边思索一边数。


“没错,IT 人经常发明些词汇,来弥补不够自信的缺陷。微服务更像是一种分工。


比如亚当斯密讲如何制作针头呢,


‘第一个工人抽丝,第二个拉直,第三个切断,第四个削尖,第五个将顶端磨光以便安装针头’ 。


微服务使每个人是可替代的,也是可扩展的。但不可避免的是系统的复杂性上来了。


我见过不少创业公司,一个人搞了十几个微服务,结果部署起来像开飞机似的,当他把操作杆往前移,结果发现飞机往上飞。


这种忽略团队自身规模 搞微服务架构,就是削足适履了。”


02


“那 Kubernetes 有什么使用场景嘛?”


“举个例子,这几天温度比较高,很多人的空调坏了,但是空调维修的师傅又不可能一夜之间冒出来。你觉得为了夏天一小会儿的时间,空调厂商需要找更多的空调师傅吗?” 老谈问。


“假如空调厂商因为夏天招了更多的师傅,那其他时候就得承受更大的成本。”小王思索着。


“这就是资源的供需与时空耦合的问题。在金融业给了投机者发家致富的机会,在 IT 界则给了云计算机会。


这种问题在互联网是一种常态。比如说双十一。互联网的流量不是均匀的,而是带有雪球效应的。大部分时候毛毛细雨,忽如一夜就是洪流。Kubernetes 则在一定程度上抹平了这股洪流。这也是一些电商,比如京东选择 Kubernetes 的原因。云计算的本质就是利用集群效应使用最少的资源服务更多的人嘛。我们去过餐馆点菜,1 个人去吃肯定不划算,但 10 个人一起吃,每个人吃得更好,但每个人成本却降低了。”


“您觉得我们应该追这股潮流?” 小王试探性的问着。


“潮流来了,得道者,鸡犬可升天。你作为信息部主任,又是而立之年。正是做事的好时候,需不需要,你心里有数” 老谈朝小王笑了笑,“当然,其中的风险和阻力也是有的。必要时,我可以拉你一把。”


03


“谢谢谈总支持!


我最近调研了 五角场附近有家专门做容器相关的厂商,搞了个什么应用云平台的。他们老板人还不错,不过据说他们一开始底层用的是 Swarm, 现在正在准备支持 Kubernetes 了。这是为什么道理?” 小王似乎仍有些疑惑。


“不管 Swarm 还是 Kubernetes, 对银行 IT 来说,真实使用场景是没有区别的。正如开车的时候,你不大会关心轮子是哪家的,发动机是哪家的。


但是,如果车坏了,你就要开始担心这些东西了。那家容器厂商就如同整车厂一样。他们明白客户不想被 Swarm 绑定,自然会推出支持 Kubernetes 的版本。另外一方面,你想想,我们信息部为啥招的都是 Java 程序员呢? ”


“市场上 Java 工程师比较多,所以企业招 Java 工程师多,又正因为企业招 Java 的多,学 Java 的人也更多。这是一个反馈循环。 ”


“你看到了这个循环,很不错。不过,这个循环是怎么开始的?为什么能持续运行呢?Kubernetes 的循环能持续吗?” 老谈反问着,燃起了一只烟。


“这我还真没细想过这个问题。”小王抓耳挠腮。


“Java 的兴起有其互联网基因,从’一次编译,到处运行’ 这句口号也可看出来。另外,Java 也很简单,门槛低。使得足够多的人成为 Java 程序员金字塔的底层。Java 虽年近不惑,不过已经积累了 IT 行业的许多最佳实践,它现在已经是个生态了。


从 PC 到移动客户端,从传统架构到如今的微服务,都有 Java 的身影。作为一个生态系统,有其自愈和更新能力。我敢说,没有大的新技术发现,Java 10 年之内仍然会居编程语言排行榜上。


而 Kubernetes 的兴起是赶上了容器的潮流,有其云计算基因。然而...”


04


老谈话锋一转,


“开源的 Kubernetes,玩家不只 Google。其未来的发展,必然是大厂利益之间博弈的结果,也许分布式系统本身自带的脑裂属性是其致命的弱点。”




未完待续...


下期精彩:Kubernetes 会走 OpenStack 的老路吗?



作者简介




Taoge

DaoCloud 软件工程师


一名程序员,一个集自私自利,愚蠢,胆小,呆萌 等反义词于一身的人。他的梦想是放浪形骸于海洋之上,肆意遨游于天地之间。他是这么形容自己的:


插科打诨于前端,后端,产品工程师之间。

在现实中分层抽象,在Bug的坟头上蹦迪。

常于 Github 海岸边拾捡贝壳,沾沾自喜。

用Python可倚天屠龙,用Shell则庖丁解牛。

常修程序员之道,常读Man文档。


相关补充


Swarm & Kubernetes


Swarm 是 Docker 开发的原生集群工具,Swarm 使用标准的 Docker API,意味着你之前一直在使用的任何与 Docker 沟通的工具,都可以无缝的在 Swarm 上使用。


Kubernetes 是一个由 Google 基于他们上个世纪容器产品化的经验而推出的容器编排工具,具备容器的高可用性,集群的精细管理,复杂的网络场景,功能强大且全面。


当需要在 Docker Swarm 和 Kubernetes 做出选择时,可以考虑如下几点。对内使用,当作私有云来使用场景,或者对容器的可靠性要求不高,你可以选择 Swarm;对外服务,或者需要提供高可靠服务的场景,Kubernetes 将是不错的选择。


不过,如果“鱼”和“熊掌”可兼得,岂不是更好的选项?


脑裂属性


脑裂,指在一个高可用系统中,当联系着的两个节点断开联系时,本来为一个整体的系统,分裂为两个独立节点,这时两个节点开始争抢共享资源,结果会导致系统混乱,数据损坏。


了解 DaoCloud

编辑于 2017-07-28