Kubernetes可能是当前开源人群的宠儿,但是Hadoop早已受到人们的尊敬。 Hadoop最终用光了天然气,因为它难以使用。 正如Capital One的Bernard Golden所说 , Kubernetes尽管取得了长足进步,但仍然“没有野餐的余地 ”。 就像其他人一样 ,这是一种非常外交的说法,即Kubernetes的经历“可能会让人感到痛苦”。
Kubernetes是否正在走向Hadoop风格的出口?
可能不是。 尽管Hadoop随着年龄的增长而变得越来越复杂,但Kubernetes却变得越来越容易。 虽然Kubernetes可能永远不会“轻松”,但其复杂性在关键方面与Hadoop有所不同,这为Kubernetes保持未来几年的行业标准铺平了道路。
Hadoop,持续不断的复杂礼物
首先让我们了解Hadoop。 视情况而定还是不清楚。 当将Apache Hadoop大致翻译为“ MapReduce”时,它已经足够复杂。 但是,随着时间的流逝,它不断发展,尽管这种发展导致了更强大的选择,但这些选择激增了。 他们也不一定容易在一起工作。 正如汤姆·巴伯(Tom Barber)所说 :“ Hadoop实际上是做什么的? MapReduce被Spark取代了,其他的东西等等。 当然,您可以插入很多东西,但是它仍然很笨拙。”
为什么笨拙? VMware的Jared Rosoff很好地解决了这个问题 :“ Hadoop的复杂性来自这样一个事实,一个典型的Hadoop设置基本上由数十个独立且复杂的系统组成,这些系统具有不同的生命周期和管理模型。” Flume,Chukwa,Hive,Pig,ZooKeeper等。 聪明的名字不过是一场噩梦,无法使所有东西协同工作。 主机分析公司首席执行官Dave Kellogg 认为 Hadoop是“解决方案的复杂堆栈”,而所有这些复杂性都是由用户承担的。
但是,也许与Kubernetes最不同的是用于扩展Hadoop的模型。 正如Rosoff指出的那样 :“ Hadoop没有考虑人们如何扩展它,结果是形成了不兼容的扩展生态系统。” 相比之下,他继续说道:“ Kubernetes非常正确的一件事就是构造它的扩展方式。 运营商CRI / CSI / CNI确保随着更多供应商的涌现,他们以明智的方式这样做。” 换句话说,与Hadoop及其不兼容的扩展不同,“具有数十个运算符的Kubernetes仍然是Kubernetes。”
Kubernetes,您可以依靠的复杂性
这并不是说Kubernetes很简单。 作为Kubernetes的创建者之一,Heptio(VMware)的Joe Beda可以很好地宣称 :“ Kubernetes 是一个复杂的系统。” 他继续说,这种复杂性在某种程度上是必要的,因为“它做了很多,带来了新的抽象。” 每个人是否一直都需要所有这些抽象(以及铃声和口哨声)? 不。“我相信有很多人在使用Kubernetes可以通过一些简单的事情来解决。”
Beda强调,但是对于那些需要Kubernetes的人来说,它不一定比人们已经熟悉的其他系统复杂。 它可能只是“新的”复合体与“老旧的”复合体:
[A]的工程师,我们倾向于轻视自己构建的复杂性与需要学习的复杂性。 当你创建一个复杂的部署系统詹金斯,猛砸,木偶/厨师/盐/ Ansible,AWS,Terraform,等你结束了一个独特的品牌复杂的, 你是舒服。 它是有机增长的,因此不会感到复杂。
但是,要招募新人来帮助像这样的有机增长的系统很难。 他们可能知道一些工具,但是将它们组合在一起的方式是独特的。 这是IMO,Kubernetes增值的地方。 Kubernetes提供了一组解决常见问题的抽象。 当人们围绕这些问题建立理解和技能时,他们在更多情况下的工作效率更高。 仍然有陡峭的学习曲线! 但是,这种技能现在很有价值,并且可以在环境,项目和工作之间移植。
抓住那个? 与您可能在X公司建立的特定部署系统中存在的复杂性不同(对于该公司而言这是唯一的),使用Kubernetes掌握的复杂性可以随公司而变化。 这样,由于知识是可移植的,因此与其他系统相比,它变得不那么复杂。 换句话说,“学习一次,到处应用”。
相关视频:什么是Kubernetes?
在这段90秒的视频中,您可以从技术的发明者之一Heptio的创始人兼首席技术官Joe Beda了解Kubernetes,这是一种用于自动化容器化应用程序的开源系统。
学习一次,到处申请
反过来,这种学习比Hadoop容易得多。 与Hadoop不同,Kubernetes是一个易于使用的系统,部分原因是它可以在何处运行。 正如Gareth Rushgrove所写 :“与其他类似示例相比,您可以在本地运行Kubernetes得多得多,非常容易(Docker桌面,Kind,MicroK8s)。 降低进入门槛使人们更容易熟悉,从而消除了人们所感觉到的复杂性。”
正如Cloud Native Computing Foundation执行官Chris Aniszczyk强调的那样 ,这也有帮助:“尽管分布式系统本来就很复杂,但Kubernetes的好处在于,全球每个主要的云提供商和多家供应商都提供托管的一致性/认证版本(无分支)。这可以帮助大多数用户实现大规模管理的复杂性。” 即便如此,塔玛尔· 萨哈 ( Tamal Saha)指出 ,也许正确的问题是“考虑到要解决的问题,Kubernetes是否很复杂”。 对于他来说,答案是否定的。
这就是“ Kubernetes会被Hadoop覆盖吗?”这个问题的答案相同。 Kubernetes已经远远超过了那个阶段。 是的,正如一位评论员所断定的那样,Kubernetes是“一种复杂的编排工具,并不适合所有用例。 像我们这个领域中的许多工具一样,它也需要时间来学习,使用和理解。 “几个小时”是不够的。” 这是解决复杂问题的复杂工具。 但是正如Beda所说,存在“故意的复杂性和偶然的复杂性”。 Hadoop遭受后者的困扰,而Kubernetes涉及后者。
由于这些和其他原因,我们应该看到Kubernetes继续蓬勃发展,成为容器编排的行业标准。
-
赶上Kubernetes:
- 抱歉,Linux。 Kubernetes现在是重要的操作系统
- Kubernetes很难,但值得付出痛苦
- 您应该使用Kubernetes的4个理由
- AWS,Azure和Google Cloud上的Kubernetes
- 如何开始使用Kubernetes
- 什么是Kubernetes? 容器编排说明
From: https://www.infoworld.com/article/3409980/will-complexity-kill-kubernetes.html