第 3 章 使用 Kamelet 连接到 Knative
您可以将 Kamelets 连接到 Knative 目的地(频道或代理)。Red Hat OpenShift Serverless 基于开源 Knative 项目,它通过启用企业级无服务器平台在混合和多云环境之间提供可移植性和一致性。OpenShift Serverless 包括对 Knative Eventing 和 Knative Serving 组件的支持。
Red Hat OpenShift Serverless、Knative Eventing 和 Knative Serving 可让您使用带有无服务器应用程序的事件驱动的架构,使用发布订阅或事件流模型分离事件制作者和消费者之间的关系。Knative Eventing 使用标准 HTTP POST 请求来发送和接收事件创建者和用户之间的事件。这些事件符合 CloudEvents 规范,它允许在任何编程语言中创建、解析、发送和接收事件。
您可以使用 Kamelets 将 CloudEvents 发送到 Knative,并将其从 Knative 发送到事件消费者。kamelets 可将消息转换为 CloudEvents,您可以使用它们应用 CloudEvents 中任何预处理和后处理数据。
3.1. 使用 Kamelets 连接到 Knative 概述 复制链接链接已复制到粘贴板!
如果使用 Knative 流处理框架,您可以使用 Kamelets 将服务和应用程序连接到 Knative 目标(频道或代理)。
图 3.1 演示了将源和接收器 Kamelets 连接到 Knative 目的地的流。
图 3.1:带有 Kamelets 和 Knative 频道的数据流
以下是使用 Kamelets 和 Kamelet Bindings 将应用程序和服务连接到 Knative 目的地的基本步骤概述:
设置 Knative:
- 通过安装 Camel K 和 OpenShift Serverless operator 来准备 OpenShift 集群。
- 安装所需的 Knative Serving 和 Eventing 组件。
- 创建 Knative 频道或代理。
- 决定您要连接到 Knative 频道或代理的服务或应用程序。
- 查看 Kamelet Catalog,以查找您要添加到集成的源和接收器组件的 Kamelets。另外,确定您要使用的每个 Kamelet 所需的配置参数。
创建 Kamelet Bindings:
- 创建一个 Kamelet Binding,将源 Kamelet 连接到 Knative 频道(或代理)。
- 创建一个 Kamelet Binding,将 Knative 频道(或代理)连接到接收器 Kamelet。
- 另外,还可通过将一个或多个 action Kamelets 作为 Kamelet Binding 中的中间步骤,操作在 Knative 频道(或代理)和数据源或接收器间传递的数据。
- (可选)定义如何在 Kamelet Binding 中处理错误。
- 将 Kamelet Bindings 作为资源应用到项目。
Camel K operator 为每个 Kamelet Binding 生成单独的 Camel 集成。
当您将 Kamelet Binding 配置为使用 Knative 频道或代理作为事件源时,Camel K operator 会将对应的集成化为 Knative Serving 服务,以利用 Knative 提供的自动扩展功能。