Kubernetes 的阿喀琉斯之踵

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

0727

01

“古话泯了一泯,仿佛从茶中感受到了茶叶光合作时的芬芳。

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

“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将是不错的选择。

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

 

脑裂属性

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

Leave a Reply

Your email address will not be published. Required fields are marked *