1.2.3. 在 Kamelet Binding 中连接源和接收器组件


在 Kamelet Binding 中,您将连接 source 和 sink 组件。

此流程中的示例使用以下 Kamelets,如图 1.2 所示:

  • 示例源 Kamelet 命名为 coffee-source。此简单的 Kamelet 从网站目录检索到有关类型 coffee 的随机生成的数据。它有一个参数(句点 - 整数值 ),可确定检索 coffee 数据的频率(以秒为单位)。不需要 参数,因为默认值(1000 秒)。
  • sink Kamelet 示例命名为 log-sink。它检索数据并将其输出到日志文件。log-sink Kamelet 在 Kamelet Catalog 中提供。
Kamelet Binding 示例

图 1.2: Kamelet Binding 示例

前提条件

  • 了解如何创建和编辑 Camel K 集成。
  • Red Hat Integration - Camel K operator 安装在 OpenShift 命名空间或集群上,并且已下载了 Red Hat Integration Camel K CLI 工具,如 安装 Camel K 所述。
  • 您知道哪个 Kame 可让您添加到 Camel K 集成及其所需的实例参数。
  • Kamelets 您希望使用在 Kamelet Catalog 中提供。

    在本例中,log-sink Kamelet 在 Kamelet Catalog 中提供。如果要在本示例中使用源 Kamelet,请将coffee -source 代码保存到名为 coffee-source.kamelet.yaml 的本地文件中,然后运行以下命令将它添加到您的 Kamelet Catalog 中:

    oc apply -f coffee-source.kamelet.yaml

流程

  1. 登录您的 OpenShift 集群。
  2. 打开安装 Camel K 操作器的工作项目。如果您以 cluster-mode 中安装 Camel K,它可以供集群上的任何项目使用。

    例如,要打开名为 my-camel-k-project 的现有项目:

    oc project my-camel-k-project

  3. 使用以下选项之一创建新的 Kamelet Binding:

    • 使用 kamel bind 命令创建并运行 Kamelet Binding (这个选项对命令行定义比较ducive 的简单 Kamelet Bindings)非常有用。)
    • 创建一个 YAML 文件来定义 Kamelet Binding,然后使用 oc apply 命令运行它(在 Kamelet Binding 配置更复杂时,此选项很有用)。

      使用 kamel bind 命令创建一个新的 Kamelet Binding

      使用以下 kamel bind 语法指定 source 和 sink Kamelets 和任何配置参数:

      kamel bind <kamelet-source> -p “<property>=<property-value>” <kamelet-sink> -p “<property>=<property-value>”

      例如:

      kamel bind coffee-source -p “source.period=5000” log-sink -p "sink.showStreams=true"

      Camel K 运算符生成 KameletBinding 资源,并运行对应的 Camel K 集成。

      使用 YAML 文件创建新的 Kamelet Binding

      1. 在您选择的编辑器中,使用以下结构创建一个 YAML 文件:

        apiVersion: camel.apache.org/v1alpha1
        kind: KameletBinding
        metadata:
          name:
        spec:
          source:
          sink:
      2. 为 Kamelet Binding 添加名称。

        在本例中,名称为 coffee-to-log,因为该绑定将 coffee-source Kamelet 连接到 log-sink Kamelet。

        apiVersion: camel.apache.org/v1alpha1
        kind: KameletBinding
        metadata:
          name: coffee-to-log
        spec:
          source:
          sink:
      3. 指定源 Kamelet (例如,c offee-source),并为 Kamelet 配置任何参数。

        注: 在本例中,参数在 Kamelet Binding 的 YAML 文件中定义。另外,您可以在属性文件、ConfigMap 或 Secret 中配置 Kamelet 参数,如 配置 Kamelet 实例参数 中所述。

        apiVersion: camel.apache.org/v1alpha1
        kind: KameletBinding
        metadata:
          name: coffee-to-log
        spec:
          source:
            ref
              kind: Kamelet
              apiVersion: camel.apache.org/v1alpha1
              name: coffee-source
            properties:
              period: 5000
          sink:
      4. 指定 sink Kamelet (如 log-sink)并为 Kamelet 配置任何参数。使用 log-sink Kamelet 的可选 showStreams 参数显示消息正文。

        apiVersion: camel.apache.org/v1alpha1
        kind: KameletBinding
        metadata:
          name: coffee-to-log
        spec:
          source:
            ref:
              kind: Kamelet
              apiVersion: camel.apache.org/v1alpha1
              name: coffee-source
            properties:
              period: 5000
          sink:
            ref:
              kind: Kamelet
              apiVersion: camel.apache.org/v1alpha1
              name: log-sink
            properties:
              showStreams: true
      5. 保存 YAML 文件(例如,coff ee-to-log.yaml)。
      6. KameletBinding 作为资源添加到 OpenShift 命名空间:

        oc apply -f <kamelet-binding>.yaml

        例如:

        oc apply -f coffee-to-log.yaml

        Camel K 运算符通过使用 KameletBinding 资源生成并运行 Camel K 集成。

  4. 查看 Kamelet Binding 的状态:

    oc get kameletbindings

  5. 要查看对应集成的状态: oc get integrations
  6. 查看输出:

    • 要从命令行查看日志,请打开终端窗口并输入以下命令:

      kamel log <integration-name>

      例如,如果集成名称为 coffee-to-log,使用以下命令:

      kamel log coffee-to-log

    • 查看 OpenShift Web 控制台的日志:

      1. 选择 Workloads > Pods
      2. 单击 Camel K 集成 pod 的名称,然后单击 Logs

        您应该看到类似以下示例的 coffee 事件列表:

        INFO  [log-sink-E80C5C904418150-0000000000000001] (Camel (camel-1) thread #0 - timer://tick) {"id":7259,"uid":"a4ecb7c2-05b8-4a49-b0d2-d1e8db5bc5e2","blend_name":"Postmodern Symphony","origin":"Huila, Colombia","variety":"Kona","notes":"delicate, chewy, black currant, red apple, star fruit","intensifier":"balanced"}
  7. 要停止集成,请删除 Kamelet Binding:

    oc delete kameletbindings/<kameletbinding-name>

    例如:

    oc delete kameletbindings/coffee-to-log

后续步骤

(可选):

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.