上周,云原生计算基金会 (CNCF)宣布[1]接受 Knative 作为孵化项目,加入 Cilium、Crossplane、Dapr 和 Flux 等项目。
2021 年 11 月,Knative 的主要创始成员之一谷歌决定将该项目捐赠给 CNCF。这引起了云原生社区的注意,因为谷歌早些时候决定将其一些关键的开源项目,如 Istio 和 Angular,转移到Open Usage Commons[2] (OUC)。新的 OUC 组织管理开源项目的商标,同时继续鼓励社区的协作和贡献。
尽管 Knative 并未正式成为 Open Usage Commons 的一部分,但由 Google 大力贡献的项目Istio[3]已移至 OUC。社区期望谷歌将 Knative 添加到 OUC 项目的组合中。但 Red Hat、IBM、SAP、VMware 和 Knative 的其他贡献者强烈反对这种做法。谷歌决定让 Knative 成为 CNCF 的一部分,这让该项目的贡献者和消费者松了一口气。
CNCF 对 Knative 的接受是项目发展过程中的一个关键里程碑。它将推动云原生生态系统中无服务器技术的开发和采用。
无服务器部署基于事件驱动和归零执行模型。在 Kubernetes 上运行的微服务是响应内部或外部事件而执行的。它们会根据需求自动扩展。当没有客户端使用微服务时,环境会自动将其缩放为零,从而释放所有分配的资源。这导致有效的资源利用。
AWS 是最早在 2014 年以 AWS Lambda 形式引入无服务器平台的公司之一。Knative 带来了在 Kubernetes 上下文中构建和部署无服务器组件的能力。
Knative 有两个组成部分~Serving 和 Eventing。Serving 层为网络、自动缩放和托管微服务的多个修订版提供管道。Eventing 层将发布/订阅模式引入 Kubernetes 以启用事件驱动的执行。Serving 和 Eventing 的结合使强大的场景能够实现复杂的无服务器模式。
Knative 是一个元平台~一个平台的平台。它旨在让平台公司构建一个向开发人员公开的附加应用程序层。虽然 Knative 带有无服务器所需的核心构建块和基础设施,但它缺乏开发人员体验层。
包括 Google、IBM、VMware 和 Red Hat 在内的平台公司在 Knative 之上构建了额外的工具来增强开发者体验。Google Cloud Run for Anthos[4]、IBM Cloud Code Engine[5]、Red Hat OpenShift Serverless[6]、Cloud Native Runtimes for VMware Tanzu[7]都是由 Knative 提供支持的平台示例。
TriggerMesh[8]是一家位于北卡罗来纳州的初创公司,为云和本地环境提供完全托管的 Knative。它使开发人员能够轻松地使用部署在 Kubernetes 集群中的微服务中基于云的资源触发的事件。
随着项目转移到 CNCF,社区将自信地拥抱 Knative,从而加速采用无服务器技术。平台供应商将利用它为他们的软件添加 scale-to-zero 功能。KServe[9]是一个开源的云原生机器学习推理平台,它依靠 Knative 为模型添加自动缩放功能。这是 Knative 将如何推动无服务器实施的示例。
尽管 Kubernetes 存在许多无服务器平台的实现,但 Knative 因其健壮性、成熟性和可扩展性而脱颖而出。它是成为云原生计算基金会一部分的首批无服务器平台之一。
CNCF 对 Knative 的接受为云原生生态系统开辟了一条激动人心的道路。