概念¶
本节中的文档解释了常用的 Knative 概念和抽象,并帮助您更好地了解 Knative 的工作原理。
什么是 Knative?¶
Knative 是一个平台无关的解决方案,用于运行 无服务器 部署。
Knative Serving¶
Knative Serving 定义了一组对象作为 Kubernetes 自定义资源定义 (CRD)。这些资源用于定义和控制您的无服务器工作负载在集群中的行为。
主要的 Knative Serving 资源是服务、路由、配置和修订
-
服务:
service.serving.knative.dev
资源自动管理您的工作负载的整个生命周期。它控制其他对象的创建,以确保您的应用程序具有路由、配置和每个服务更新的新的修订版。服务可以定义为始终将流量路由到最新修订版或固定修订版。 -
路由:
route.serving.knative.dev
资源将网络端点映射到一个或多个修订版。您可以通过多种方式管理流量,包括分数流量和命名路由。 -
配置:
configuration.serving.knative.dev
资源维护您的部署的预期状态。它在代码和配置之间提供清晰的分隔,并遵循十二要素应用程序方法。修改配置会创建一个新的修订版。 -
修订版:
revision.serving.knative.dev
资源是代码和配置的某个时间点的快照,用于对工作负载进行的每次修改。修订版是不可变的对象,可以保留到有用为止。Knative Serving 修订版可以根据传入流量自动缩放。
有关资源及其交互的更多信息,请参阅 serving
Github 存储库中的 资源类型概述。
Knative Eventing - Kubernetes 的事件驱动应用程序平台¶
Knative Eventing 是一组 API,使您能够在您的应用程序中使用 事件驱动架构。您可以使用这些 API 创建组件,这些组件将事件从事件生产者(称为源)路由到接收事件的事件消费者(称为接收器)。接收器还可以配置为通过发送响应事件来响应 HTTP 请求。
Knative Eventing 是一个独立的平台,为各种类型的工作负载提供支持,包括标准 Kubernetes 服务和 Knative Serving 服务。
Knative Eventing 使用标准 HTTP POST 请求在事件生产者和接收器之间发送和接收事件。这些事件符合 CloudEvents 规范,这使得能够使用任何编程语言创建、解析、发送和接收事件。
Knative Eventing 组件是松散耦合的,可以独立于彼此开发和部署。任何生产者都可以在有监听这些事件的活动事件消费者之前生成事件。任何事件消费者都可以在有创建这些事件的生产者之前表示对一类事件的兴趣。