为什么Kubernetes获得了胜利?


【编者的话】本文分析了让Kubernetes成为开发人员最喜欢的容器编排平台的秘诀。Kubernetes在支持混合云/多云部署方式上的灵活性,让用户可以比较自由的选择云服务商而避免被锁定;开放可扩展的理念,又使得其周边社区非常活跃。从既有调研结果看,Kubernetes似乎已成为容器编排领域的标准。

Kubernetes于2017年11月29日得了容器编排领域的战争。当天,AWS宣布了他们面向Kubernetes的弹性容器服务(EKS)。

在亚马逊之前,MesospherePivotalDocker这些提供了容器编排领域大多数关键产品的组织,已经宣布了对Kubernetes的原生支持。相比Google和Azure提供的Kubernetes托管服务和Redhat提供的基于Kubernetes的OpenShift,Kubernetes的原生支持更上一层。

为什么所有这些提供商都选择支持Kubernetes?例如,为什么亚马逊提供EKS服务?

对于亚马逊来说,是为了满足客户需求,当前许多AWS客户已经在AWS上运行Kubernetes,并且自己管理集群。鉴于Google和Azure提供了更易管理的Kubernetes服务,因此AWS有必要让AWS Kubernetes体验更轻松。

也有其他提供商提供了托管服务,为什么用户选择在AWS上运行Kubernetes?许多人可能更喜欢选择AWS作为云提供商,但这是唯一的原因吗?如果是,那为什么多数选择的是Kubernetes而不是AWS ECS呢?

Kubernetes成功的秘密?

根据云原生计算基金会2017年3月的调查结果,截至目前,企业已经非常明确地希望在AWS上而不是其他云上运行Kubernetes:
mostlyaws.png

从上图注意到,Datacenter也有很高的排名。我们可以通过查看CoreOS发布的关于容器编排驱动程序的调查结果来了解这种情况。应用程序的可移植性以及混合/多云解决方案因素非常突出:
hybridclouddriver.jpg

集群联邦Kubernetes成功的一个重要因素,因为它可用于支持多云或混合云用例,使其具有超越AWS ECS的巨大优势。但仅凭这一点并不能解释相对于其他工具为什么Kubernetes变得如此受欢迎。

通过观察一系列因素,我们可以更好地理解这一点——我们将了解企业对Kubernetes在混合云/多云的灵活性及其通用可扩展性方面的期望。下面主要是关于决策者在现有基础设施上试图保持灵活性的主题。

混合云

我们已经看到企业一直热衷于混合云。在RightScale 2018年调查中,这一点更为明显,该调查发现多达51%的大公司使用混合云。
rightscalehybridcloud.png

使用混合云的原因包括利用已有的硬件设施、满足监管或安全限制等要求需将数据保留在内部以及弹性需求并且能够在故障的情况下保持一定程度的服务能力。

多云

根据RightScale的调查,高达81%的大公司正在选择多云战略。 CoreOS表明,很大一部分原因是对商业锁定(指对提供商的强依赖)的谨慎态度,而Stratoscale的一项调查表明,高达80%的企业认为云锁定是一个主要问题。

如果你的软件需要重写以便将其转移到另一个云提供商,但迁移成本很高。因此,当价格上涨,你要么忍痛迁移,要么只能承受上涨的价格。企业可能会被多云模式吸引以降低这种风险。

如果你致力于多云战略,那么即便通常不在单个项目中使用多个云,也可以选择在不同的云上使用相同的编排技术。这允许你在选择云提供商之前为一个特定项目选择编排技术,并确保跨项目时可以重用这些编排技能。

云市场期望可以使用多个提供商并且有独立于云提供商的编排工具。由于AWS的流行,很多人希望能够选择Kubernetes作为编排工具,并在其企业中主要使用AWS。而Kubernetes并非由AWS提供,并且被其他提供商作为托管服务提供,因此使用AWS显然具有额外的好处,这样你选择的编排工具确实独立于选择的云提供商。

AWS可能不仅管理大量的工作节点,而且还用于企业自建设施的主节点。尽管有Kubernetes托管服务,但TNS 2018年分析显示,91%的Kubernetes部署是在内部处理的。此方向存在挑战,但可确保你充分自定义设置并且以后根据需要进行添加。一旦有足够的人走这条路并分享他们的知识,就可以帮助更多人加入他们,这样可以创造一个滚雪球效应。

开放和可扩展

随着市场致力于避免云锁定,相比AWS Elastic Container Service,Kubernetes具有很大的优势。但是市场上的其他参与者呢?Kubernetes如何领先于他们?在这里,Kubernetes的开放和可扩展的精神是重要的。

相对于Mesosphere DC / OS、Docker Swarm或Pivotal Cloud Foundry,Kubernetes的成功在于用户不希望因为选择编排产品而被限定在某些工具或语言中。其中一些可能是关于企业和开源产品之间的界限,以及与编排工具本身的感知锁定,但更重要的是编排层可以保持开放的选项范围。作为容器编排的评估标准,编排工具对各种基础设施、工具和语言堆栈(尤其是企业现有工具)的支持在TNS 2016年的调查结果中占据了很大的比例。

Kubernetes被设计成可扩展,且人们是真正在扩展它(例如OpenShift),为开源项目做出贡献。编排的核心概念被抽象成不被特定语言或工具所限定,其支持的语言没有限制。 即使Docker被广泛用于容器运行时,但这也是可选的。这种方法与CNCF广泛受欢迎的企业合作伙伴关系,一起鼓励人们对Kubernetes作为社区项目的信心(而不是将项目与特定供应商联系起来)。 GitHub的2017年Octoverse报告揭示了Kubernetes周围有充满活力的开源文化
mostdiscussedrepos.png

充满活力的开源文化以及可插拔设计意味着广泛的选择项、插件和工具。

Kubernetes的成功似乎是开源和拥有云提供商选择的消费者两个方面的成功。它还反映了那些希望过渡到云但却谨慎行事的企业,他们利用现有的工具和基础设施作为旅途的一部分。

Kubernetes怎么获得真正的胜利?

“赢”没有明确的定义。但是Kubernetes看起来已经成为一种标准——不是官方意义上,而是基于事实意义上的共识。业界发现自己需要一个编排标准来对齐Docker成为容器标准的方式,而Kubernetes似乎就是这样。

原文链接:Why Did Kubernetes Win?(翻译:辛涛)

1 个评论

这文章只讲了结果,没讲清楚原因。企业选择了K8s,但是原因呢?抛出个“应用程序的可移植性以及混合/多云解决方案因素”这是足够的吗?技术性不够啊!从图表上看到人们选择依据是“效率、速度、部署、可插拔性和对混合云/多云的支持”,这几乎是蜻蜓点水。

要回复文章请先登录注册