供应商正在其 Kubernetes 平台上进行着大量的工作,以满足企业日益增长的需求,越来越多的企业将它们的 Kubernetes 成果投入生产应用。此外,企业的另一个关键需求是将这些 Kubernetes 平台的简化版本带到快速扩张的边缘环境,使企业无论是在数据中心、分支机构和其他远程场所还是在边缘都有一致的 IT 体验。
本文最初发布于 The Next Platform 博客。
在短短几年的时间里,Kubernetes 已经击败了包括 Docker Swarm 和 Mesosphere 等在内的竞争者,成为管理软件容器事实上的编排平台。自从 8 年前从谷歌拆分出来后,Kubernetes 的发展速度非常快,新版本的推出频率高达每年四次。
Kubernetes 还催生了一系列的平台,如红帽有 OpenShift(这是IBM在2019年以340亿美元收购红帽的主要原因)、VMware 有Tanzu、SUSE 有 Rancher。现在,亚马逊云科技、微软 Azure 和谷歌云等顶级公有云公司都将其作为一项服务提供。
也就是说,在云原生计算基金会(CNCF)的支持下,Kubernetes 变得日益成熟和稳定。首先,发布速度开始放缓,从一年四次发布变为大约三次。据红帽公司 OpenShift 产品战略高级总监 Brian Gracely 说,现在,Kubernetes 项目内部有人在谈论可能推出长期支持版本。
“Kubernetes 项目核心有一定的稳定性,”Gracely 告诉 The Next Platform,“纯从 Kubernetes 的角度来看,如果你看看社区,看看社区所处的位置——社区的发展速度——有很多人可能会告诉你,在大多数情况下,真正的 Kubernetes——API、调度系统、允许嵌入存储和网络等资源的框架——是相当完整的,虽然我从来不想说它已百分之百完成。”
然而,供应商正在其 Kubernetes 平台上进行着大量的工作,以满足企业日益增长的需求,越来越多的企业将它们的 Kubernetes 成果投入生产应用。正如我们去年写的那样,Pure Storage 看到,Kubernetes 在管理数据和基础设施方面开始变得日益重要。此外,企业的另一个关键需求是将这些 Kubernetes 平台的简化版本带到快速扩张的边缘环境,使企业无论是在数据中心、分支机构和其他远程场所还是在边缘都有一致的 IT 体验。
这就得说下 K3s 了。这是一个轻量级的 Kubernetes 发行版,它更容易安装,面向边缘,并针对低功耗的 Arm 芯片架构进行了优化。红帽还推出了 MicroShift,这是 OpenShift 的一个版本,旨在与针对边缘端做过优化的 Linux 版本搭配使用,包括 Red Hat Enterprise Linux (RHEL) for Edge 和 Fedora IoT。
“我们已经看到人们采用 Kubernetes,从根本上讲,它是为数据中心和云计算设计的,然后,我们也已经看到了一个小型化的趋势,”Gracely 说,“技术是一样的,但我们可以把什么东西小型化?我们可以减少什么,是控制平面还是什么?我们发现,人们已经意识到,Kubernetes 中这个非常结构化的控制平面有点大。……然后我们看到,像 Cluster API(一个围绕声明式 API 和多 Kubernetes 集群管理工具的项目)这样的东西,我们看到了各种说法,‘我想有一个更轻量化的控制平面’,这些最终会成为实现细节。”
他指出,这是“Kubernetes 使用方式的一种变化。公司不一定想要一个多租户的大集群了。也许他们想要更轻量化的东西,可能是一个或一组应用程序。我们也看到,为了匹配这种需求和工作负载,出现了不少这样的 Kubernetes 变种。”
使已相当成熟的 Kubernetes 适应更特殊的工作负载和需求,这一趋势的出现部分是因为 Kubernetes 开发者推进项目的方式。Kubernetes 开发者没有将无数的元素加入项目——如服务网格或操作系统——而是让这些元素成为 Kubernetes 核心开发工作之外的辅助性工作。它们与 Kubernetes 紧密联系,但不是 Kubernetes 的组成部分。
“那些东西呈爆炸式增长,”Gracely 说,“我们看到,Service Mesh、Istio 这些东西真的成熟了。我们看到,像 KubeVirt 这样的项目为它带来了虚拟化。现在看,可能有十几家供应商支持这个项目。我们看到 Knative(用于无服务器、云原生应用程序)成熟了。我们看到了一整个的安全生态系统,如 OPA 和其他东西的出现。Kubernetes 有点是......你在云上所做工作的新核心,然后其他的东西都将以它为基础。”
Kubernetes 已经变得相当稳定,每个人都在本地或云中消费相同的 API,相关工作的成果成为用户空间及立于其上的应用程序。让人感到一些安慰的是,可以保证用户在 Kubernetes 上的工作不会以不可预测的方式偏离轨道。它将继续以一种稳定的方式适应新变化。
他用OpenStack项目作了对比。这个开源、免费的云计算平台是 Rackspace 和 Anso 实验室的联合项目,于 2010 年推出,可以在公有和私有云中运行。其中,Anso 实验室是美国国家航空航天局的承包商,同时也是基于 Python 的 Nova 云计算结构控制器的创建者。它一开始是一个基础设施即服务(IaaS)平台,但最终开始增加其他组件,如平台即服务(PaaS)和人工智能(AI)及机器学习能力,所有这些都将成为OpenStack的组成部分。
“他们最后做的那些事情——可能给他们带来一些挑战——人们不想要所有这些东西,每一种用例,”Gracely 说,“他们并不需要所有这些东西。但是,这个项目却说,‘我们必须拥有所有这些东西。’Kubernetes 所做的事情之一——我想他们可能从 Linux 和 OpenStack 那里吸取了教训——是打下一个非常好的基础,为该项目构建某种内核,而且承认无法在 2015 年或 2014 年就知道所有的项目在 2022 年是什么样子,并接受这一点。有时候,这是一件困难的事。有些人可能会主张向项目添加更多内容”。
正是这种想法导致红帽在 2017 年前后采用了模块化方法,继续开发OpenShift。当时,看到围绕 Kubernetes 开展的相关工作——从服务网格到无服务器——工程师们意识到,要在 OpenShift 上提供这些功能,就意味着必须转向模块化架构。这也为红帽提供了更大的灵活性,可以根据企业需求在 OpenShift 上添加和删除组件。
最近,该公司在其 OpenShift Platform Plus 产品中增加了 OpenShift Data Foundation——本质上是容器的软件定义存储——这是一个综合性的多云Kubernetes栈,不仅包括容器平台,还包括 Kubernetes 集群安全和集群管理以及红帽的 Quay(一个可扩展的容器注册中心)。加入存储技术,使 OpenShift Platform Plus 成为一个更完整的产品。
“但同时,这种模块化也让我们现在可以说,当我们想在边缘做单节点 OpenShift 时,我们可以将其拆分,”Gracely 说,“我们可以去掉很多在边缘不需要的东西。我们认为,我们的架构足够灵活,如果我们想添加一些新组件,用已知的方法来插入就很好,它不会毁掉系统。它不是单体的,它给我们的客户提供了足够的灵活性,允许他们选择自己需要的东西。”
领取专属 10元无门槛券
私享最新 技术干货