第 3 章 使用 Kamelets 连接到 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 目标(channel 或 broker)。

图 3.1 演示了将源和 sink Kamelets 连接到 Knative 目的地的流。

带有 Kamelets 和 Knative 目的地的数据流

图 3.1:带有 Kamelets 和 Knative 频道的数据流

以下是使用 Kamelets 和 Kamelet Bindings 将应用程序和服务连接到 Knative 目的地的基本步骤概述:

  1. 设置 Knative:

    1. 通过安装 Camel K 和 OpenShift Serverless operator 准备 OpenShift 集群。
    2. 安装所需的 Knative Serving 和 Eventing 组件。
    3. 创建 Knative 频道或代理。
  2. 确定您要连接到 Knative 频道或代理的服务或应用程序。
  3. 查看 Kamelet Catalog 以查找您要添加到集成的源和接收器组件的 Kamelet。另外,请确定您要使用的每个 Kamelet 所需的配置参数。
  4. 创建 Kamelet Bindings:

    • 创建一个 Kamelet Binding,将源 Kamelet 连接到 Knative 频道(或代理)。
    • 创建一个 Kamelet Binding,将 Knative 频道(或代理)连接到 sink Kamelet。
  5. (可选)通过在 Kamelet Binding 中添加一个或多个 action Kamelets 来操作在 Knative 频道(或代理)和数据源或 sink 间传递的数据。
  6. (可选)定义如何在 Kamelet Binding 内处理错误。
  7. 将 Kamelet Bindings 作为资源应用到项目。

Camel K operator 为每个 Kamelet Binding 生成单独的 Camel 集成。

当您将 Kamelet Binding 配置为使用 Knative 频道或代理作为事件源时,Camel K operator 会将对应的集成内容化为 Knative 提供的自动扩展功能。