Knative

基于 Kubernetes 的平台,用于构建、部署和管理现代无服务器工作负载。

全能的必备基本组件

Knative 最初由 Google 打造,现在有 50 多家不同公司向其贡献过代码。它提供了一组必备组件,用于在 Kubernetes 上构建和运行无服务器应用。Knative 为 Kubernetes 上的云原生应用提供缩容到零、自动扩缩、集群内构建以及事件框架等功能。无论是在本地、云端还是第三方数据中心,Knative 都可以对实践中基于 Kubernetes 的成功框架采取的通行最佳做法进行标准化。最重要的是,Knative 使开发者能够专注于编写代码,而无需担心构建、部署和管理应用等“单调而棘手”的工作。

对开发者友好的软件

Knative 提供了一组可重用的组件,专用于解决许多单调而棘手的任务,例如构建应用(从源代码到容器映像)、在部署期间进行流量路由和管理、自动扩缩工作负载,或者将正在运行的服务绑定到不断扩大的事件来源生态系统等工作流。Knative 将容器映像视为部署单元。因此,开发者可以使用他们熟悉的任何语言、框架或手法。

支持流行的开发模式

Knative 遵循开发者习惯。它支持常见的开发模式,如 GitOps、DockerOps、ManualOps,以及 Django、Ruby on Rails、Spring 等各种工具和框架。

两全其美:灵活性和可控性

Knative 旨在供您轻松嵌入现有构建工具链和持续集成/持续交付工具链。利用以 Kubernetes 为基石且可在任何位置、任何云和任何基础架构上运行的开源优先技术,企业可以自由地将工作负载转移到最适合的地方。这为客户提供了调整系统以适应其独特需求的灵活性和可控性。

按自己的方式运行无服务器工作负载

Knative 提供了一种开放式 API 和运行时环境,可让您选择在以下任何位置运行无服务器工作负载:Google Cloud 上的全托管式环境中、Google Kubernetes Engine (GKE) 上的 Anthos 中或者您自己的 Kubernetes 集群中。Knative 可让您先从 Cloud Run 轻松起步,然后迁移到 Cloud Run for Anthos;或者先在您自己的 Kubernetes 集群中运行,并在将来迁移到 Cloud Run。通过将 Knative 用作底层平台,您可以跨平台自由移动工作负载,同时显著降低转换费用。

Knative 组件

构建

  • 通过灵活的可配置方法将源代码构建为容器

  • 利用 Dockerfile 或构建模板实现的可插入式方法

  • 无需交叉编译,也无需使用本地构建工具

  • 可利用缓存工件来加快构建速度

  • 让您的组织可更好地利用空闲容量,提高资源效率

服务

  • 更高级层的抽象化,对象模型更易于理解

  • 基于 HTTP 请求的无缝自动扩缩

  • 逐步推出新版本

  • 自动集成网络和服务网格

  • 可插入:连接您自己的日志记录和监控平台

事件

  • 事件的全局订阅、传递和管理

  • 使用高级层对象构建松散耦合的事件驱动系统

  • 事件生成方和使用方之间采用声明式绑定

  • 从寥寥几个事件扩容到实时事件流

  • 自定义事件流水线,与您自己的现有系统连接

Knative 能够帮助我们的开发者专注于构建业务逻辑,而无需耗费精力来构建底层平台功能,如构建、部署、自动扩缩、监控和可观察性。例如,我们用 Java/Vert.x 开发的 T-Mobile 店铺定位应用可以轻松借助 Knative 迁移到 GCP。我们很轻松便完成了这项迁移任务,因为 Knative 提供了许多平台级层的功能,而无需我们的开发者再构建这些功能。

— Ram Gopinathan,T-Mobile 主技术架构师

资源

社区资源

Google Cloud

开始使用

使用 Knative 构建、部署和管理无服务器工作负载

按照 Cloud Run 快速入门中的说明轻松上手使用 Knative。对于想要提供 Knative 环境的运营人员,GitHub 上提供了安装指南。