观点|Opinion
Kubernetes 7周年:它为什么如此受欢迎?
今年6月7日,Kubernetes迎来7周年。七年前,当谷歌宣布Kubernetes项目时,谁也不曾想到它会取得如此大的成功。作为后起之秀,Kubernetes打败了Docker,成为容器编排领域的事实标准,改变了整个容器市场的格局。当今,Kubernetes已经成为广受认可的基础设施领域工业标准,变成云计算平台上的主角。
在Kubernetes七周年之际,Info Q采访了项目创始人Craig Mc Luckie和Joe Beda,与他们聊了聊Kubernetes的过去、现在和未来。
Kubernetes创始人、VMware应用现代化业务部门研发副总裁Craig Mc Luckie说:“我们看到,Kubernetes在过去七年历程中精彩纷呈。它从最初我们两个人非常大胆的想法,到今天已经发展成有很多发行版的技术。这确实是一段不可思议的历程。”
源于Project 7
对Kubernetes来说,七周年很独特,Craig Mc Luckie称“特别强调一下Kubernetes的七岁生日是一个非常特殊的生日”,因为Kubernetes最初在谷歌内部起步时,该项目名称就叫Project 7(七号项目)。
Kubernetes创始人、VMware首席工程师Joe Beda
据Kubernetes创始人、VMware首席工程师Joe Beda解释,这个名字的灵感来自于科幻电影《Star Trek》(中文“星际迷航”)。
但是,在后来发展过程中,由于“谷歌律师提出了不同意见”,所以谷歌无法对外继续使用Project 7这个名称。因此,该项目被改名叫Kubernetes。
据两位创始人介绍,Kubernetes这个名字源于希腊语,意为“舵手”或“飞行员”。他们表示,“说实话,我们之所以选择这个词,很大一部分原因是很难找到另一个可以让谷歌法律团队批准的名字”。同时,Kubernetes有时缩写为K8s,这是因为K和s之间有八个字符的关系。
据悉,Kubernetes建立在谷歌大规模运行生产工作负载十几年的经验基础上。它源自Borg,在谷歌用Go语言对它重写后,最终取名Kubernetes。2014年,谷歌正式开源Kubernetes项目。
为什么选择开源Kubernetes项目?
他们称,“我们希望把Borg的经验分享给谷歌之外的人,因此把它变成一个开源项目是最好的选择。我们想要的是一种共享方式,与社区分享我们在如何开发分布式应用程序方面的专业知识。除了公司在其数据中心运行的物理机外,还可以更有效地跨云服务运行代码。”
之后,CNCF(云原生计算基金会)成立,微软、亚马逊云科技和甲骨文以及Red Hat、英特尔、IBM等纷纷加入,Kubernetes走上快车道。
企业青睐,挑战也随之而来
根据VMware《2021年Kubernetes状态报告》显示,持续转向生产成为Kubernetes乘风破浪的一个重要标志,从2020年报告的59%增长到今年的65%。并且拥有超过500名开发人员的公司更倾向于在生产环境中运行所有或大部分容器化工作负载(78%)。
在两位创始人看来,一旦投入运营,企业组织可能会享受到诸多益处,包括提高资源利用率、简化应用程序升级和维护等,“这两个关键KPI对业务成果都有着重大影响”。
他们说:“不仅如此,Kubernetes确实是一个庞大生态系统的重要支柱,赋能许多公司,许多项目围绕其成立并展开。”
Kubernetes的采用率持续上升,这意味着它已经稳步进入企业生产环境,并逐步成为IT主流。与此同时,企业还要面对Kubernetes带来的挑战。
Kubernetes创始人、VMware应用现代化业务部门研发副总裁Craig Mc Luckie
Craig Mc Luckie指出,Kubernetes的成功是伴随着越来越多人的使用而不断向前发展。它之所以成功的一个重要方面是因为围绕Kubernetes出现了大量创新,这些创新在帮助用户解决实实在在的问题。不过,众多的创新也为企业带来它们必须要梳理清楚的复杂性和挑战。
据他介绍,企业部署Kubernetes的复杂性主要体现在两个方面:
● 一是如何以一种可扩展的方式迅速地运行操作Kubernetes;
● 二是如何让广大的开发人员能轻而易举地用上Kubernetes。
挑战中也蕴藏着机会。Craig Mc Luckie和Joe Beda在2016年11月联合创立Heptio公司,其中,Craig Mc Luckie担任CEO,Joe Beda担任CTO,公司致力于提供专业服务来帮助企业建立和维护由Kubernetes提供支持的大型容器环境。2年后,VMware收购该公司,Craig Mc Luckie和Joe Beda也进入VMware工作。
Craig Mc Luckie在采访中向Info Q解释,整个Kubernetes的使用呈现指数级增长,“我们与之打交道的每一个企业都在以某种方式部署Kubernetes,但很多企业的使用方式与我们最初的想象不一样”,这些企业以一种更加精细粒度的方式部署Kubernetes,比如构建了很多规模较小的Kubernetes集群。
这样一种部署模式带来的最大挑战之一是企业有了自建的Kubernetes集群后,其自身内部能力却未及时跟上,无法对这些集群进行接近实时的升级,即它们的集群无法最快地通过Kubernetes上游项目中的各种创新来进行更新和升级。
这一方面给它们带来了安全上的隐患,另一方面,也让它们部署的Kubernetes系统无法获取整个开源社区生机勃勃的创新来源。
在Craig Mc Luckie看来,Kubernetes和其它基础设施技术的一个缺点是,它往往是应用程序开发的重点,而非推动者。Kubernetes应该成为开发人员畅游的海洋,但实际状况却是它仍未达到期望中易于运行的程度。
VMware的《2021年Kubernetes状态报告》回应了这一观点,超过一半(55%)的受访者表示,在做出选择时,缺乏内部经验和专业知识是最大的挑战。
与此同时,Kubernetes安全性是大多数组织(实际高达97%)面临的一个显著问题,并且需要采用Dev Sec Ops实践来确保在端到端容器生命周期中增强安全性。
Kubernetes成功的核心
某种程度上,Kubernetes的快速发展和壮大与背后的社区息息相关。
据两位创始人介绍,在Kubernetes项目早期,社区有很多来自不同方向的、伟大的创新想法。“我们无法将它们全部融入到项目中并持续提高可靠性,也不希望项目本身阻碍人们使用Kubernetes”。
因此,他们专注于构建可扩展性的机会,这意味着人们可以构建和扩展Kubernetes,无需与Kubernetes项目本身进行协调。这在很大程度上推动了更广泛生态系统的发展。
实际上,他们一开始就把Kubernetes做成一个以社区为中心的项目。在Kubernetes发展过程中,既有谷歌的项目,也有来自VMware、IBM和Red Hat等很多参与者的想法。
Craig Mc Luckie和Joe Beda强调,“Kubernetes今天的成功是后期由整个社区开发者携手努力做到的。社区不仅带来了广泛且深刻的经验和视角,而且帮助释放开源社区的创新”。
“独行快,众行远”,这或许才是Kubernetes成功的关键。
此外,良好的扩展性、Kubernetes新版本引入的新功能让集群运营者在运行各种不同工作负载时有更大的灵活性:这些因素使得Kubernetes越来越受欢迎。
对于Kubernetes的成功,Craig Mc Luckie这样概括:
一是因为Kubernetes诞生在一个云服务供应商的内部,所以一开始就知道它将来会有怎样的发展潜力,应该向什么方向发展。打个比方,就像玩拼图的游戏,我们不光有做这个拼图需要的所有的块,而且我们还有它最后的那张图纸。二是Kubernetes一开始就是一个以社区为中心的项目,除了谷歌,它还吸纳了VMware、IBM、Red Hat等很多参与者的想法,所以Kubernetes在发展过程中具备非常广泛、深刻多样的各种经验和视角。因此,它如今具备非常深刻且强大的力量和价值。
针对Kubernetes目前的成绩,两位创始人表示,“Kubernetes已经走过七年,但我们认为它作为一个社区,仍处于起步阶段”。
他们说:“我们还有大量且非常精彩的工作要去做。不仅仅让Kubernetes从操作运维角度来说更加简单易用,而且还要通过Kubernetes把基于Kubernetes的整个开源社区的创新充分释放出来。”
谈到Kubernetes的未来,他们“想让Kubernetes变得’无聊乏味,‘让它足够可靠,嵌入生态系统中。这样,它就真的像我们以抽象概念所描述的基础设施一样,自然地成为工作的组成部分,如同消失一般融入在框架中,人们无需额外考虑它的存在”。
其次,让Kubernetes变得更具内在弹性、可扩展性和开发人员可访问性。他们指出,Kubernetes旅程的下一阶段是为团队提供更丰富的自助服务体验,即如何使Kubernetes成为开始构建自助服务供应和自助服务消费体验的容器,以补充公有云。
他们表示,“展望未来,我们还认为更激动人心的事取决于围绕Kubernetes形成的更大的生态系统。借助VMware Tanzu,我们帮助用户利用Kubernetes更快速地取得成功,同时为他们敞开大门,利用更广泛的生态系统进一步赋能”。
注:VMware在2019年发布Tanzu,它是用于实现应用程序和基础架构现代化升级的产品和服务组合,目标是持续不断地为生产提供更好的软件。它为开发人员提供一种自由,能将应用交付至任意云端,采用Kubernetes不再有障碍,并帮助IT管理员转换技能,为新一轮的现代化应用提供支持。
开源与工作倦怠
在Craig Mc Luckie和Joe Beda看来,新冠疫情推动了开发人员、企业与开源技术的互动加速。同时,开源被视为创新和创意孵化的重要来源,并且一直是很多企业组织的主要焦点。
Joe Beda说:“就个人而言,我最近在开源上花的时间并不多。我大部分时间在学习并了解Kubernetes生态系统中正在发生的事情(通过我的Youtube频道直播——tgik.io上的TGIK),并支持Tanzu的其他团队与开源社区合作,提供建议。”
在开源行业,项目维护正变得日益艰难。在他们看来,工作倦怠(burn out)是开源世界中一个非常现实的问题,“且时刻出现在我们面前”。
他们说:“我们采取的方法是确保有明确的项目目标,并充分明晰其如何为我们更大的业务目标发挥锦上添花的作用。这使我们能确保为这些项目提供适当的资金,并为该项目与社区设定正确的期望。致力于我们的参与可持续性,有望创造合适的环境来防止维护者精疲力尽。”
最后,在谈到开发者平衡工作和生活上时,Joe Beda表示,真正的10倍效率开发者是那些让周围的人变得更好的人。软件开发(无论是否开源)从根本上说是一项团队活动。
他说:“我认为,在你的开发职业生涯中成长的真正途径是找到与你的同事更巧妙合作的方法,做一些没人能做到的惊人的事情。如果你能将境况调整至合适的状态,它将是可持续的,并创造惊人的结果。”