×

Apache Kafka 的 Knative 代理实现提供了集成选项,您可以将受支持版本的 Apache Kafka 消息流平台与 OpenShift Serverless 配合使用。Kafka 提供了事件源、通道、代理和事件接收器的功能选项。

除了作为核心 OpenShift Serverless 安装的一部分提供的 Knative Eventing 组件外,还可以通过以下方式安装KnativeKafka自定义资源 (CR):

  • 集群管理员,适用于 OpenShift Container Platform

  • 集群或专用管理员,适用于 Red Hat OpenShift Service on AWS 或 OpenShift Dedicated。

KnativeKafka CR 为用户提供了其他选项,例如:

  • Kafka 源

  • Kafka 通道

  • Kafka 代理

  • Kafka 接收器

安装 Apache Kafka 的 Knative 代理

Apache Kafka 的 Knative 代理实现提供了集成选项,您可以将受支持版本的 Apache Kafka 消息流平台与 OpenShift Serverless 配合使用。如果您已安装KnativeKafka自定义资源,则可以在 OpenShift Serverless 安装中使用 Apache Kafka 的 Knative 代理功能。

先决条件
  • 您已在集群上安装了 OpenShift Serverless Operator 和 Knative Eventing。

  • 您可以访问 Red Hat AMQ Streams 集群。

  • 如果您想使用验证步骤,请安装 OpenShift CLI (oc)。

  • 您在 OpenShift Container Platform 上具有集群管理员权限,或者您在 Red Hat OpenShift Service on AWS 或 OpenShift Dedicated 上具有集群或专用管理员权限。

  • 您已登录到 OpenShift Container Platform Web 控制台。

步骤
  1. 在**管理员**视角中,导航到**运算符** → **已安装的运算符**。

  2. 检查页面顶部的**项目**下拉菜单是否设置为**项目:knative-eventing**。

  3. 在 OpenShift Serverless Operator 的**提供的 API**列表中,找到**Knative Kafka**框并单击**创建实例**。

  4. 创建 Knative Kafka 页面配置KnativeKafka 对象。

    要在您的集群中使用 Kafka 通道、源、代理或接收器,您必须将要使用的选项的启用开关切换为true。这些开关默认设置为false。此外,要使用 Kafka 通道、代理或接收器,您必须指定引导服务器。

    • 对于不需要完全控制KnativeKafka 对象创建的简单配置,请使用此表单。

    • 对于需要完全控制KnativeKafka 对象创建的复杂配置,请编辑 YAML。您可以通过单击创建 Knative Kafka 页面上的编辑 YAML链接来访问 YAML。

      示例 KnativeKafka 自定义资源
      apiVersion: operator.serverless.openshift.io/v1alpha1
      kind: KnativeKafka
      metadata:
          name: knative-kafka
          namespace: knative-eventing
      spec:
          channel:
              enabled: true (1)
              bootstrapServers: <bootstrap_servers> (2)
          source:
              enabled: true (3)
          broker:
              enabled: true (4)
              defaultConfig:
                  bootstrapServers: <bootstrap_servers> (5)
                  numPartitions: <num_partitions> (6)
                  replicationFactor: <replication_factor> (7)
          sink:
              enabled: true (8)
          logging:
              level: INFO (9)
      1 允许开发者在集群中使用KafkaChannel 通道类型。
      2 来自您的 AMQ Streams 集群的引导服务器的逗号分隔列表。
      3 允许开发者在集群中使用KafkaSource 事件源类型。
      4 允许开发者在集群中使用 Apache Kafka 的 Knative 代理实现。
      5 来自您的 Red Hat AMQ Streams 集群的引导服务器的逗号分隔列表。
      6 定义由Broker 对象支持的 Kafka 主题的分区数。默认为10
      7 定义由Broker 对象支持的 Kafka 主题的副本因子。默认为3replicationFactor 值必须小于或等于 Red Hat AMQ Streams 集群的节点数。
      8 允许开发者在集群中使用 Kafka 接收器。
      9 定义 Kafka 数据平面的日志级别。允许的值为TRACEDEBUGINFOWARNERROR。默认值为INFO

      在生产环境中不要使用DEBUGTRACE 作为日志级别。这些日志级别的输出非常冗长,可能会降低性能。

  5. 完成任何 Kafka 可选配置后,单击创建。您将自动跳转到Knative Kafka 选项卡,其中knative-kafka 位于资源列表中。

验证
  1. 单击Knative Kafka 选项卡中的knative-kafka 资源。您将自动跳转到Knative Kafka 概述页面。

  2. 查看资源的条件列表,并确认其状态为True

    Kafka Knative Overview page showing Conditions

    如果条件状态为UnknownFalse,请稍候片刻刷新页面。

  3. 检查是否已创建 Apache Kafka 的 Knative 代理资源。

    $ oc get pods -n knative-eventing
    示例输出
    NAME                                        READY   STATUS    RESTARTS   AGE
    kafka-broker-dispatcher-7769fbbcbb-xgffn    2/2     Running   0          44s
    kafka-broker-receiver-5fb56f7656-fhq8d      2/2     Running   0          44s
    kafka-channel-dispatcher-84fd6cb7f9-k2tjv   2/2     Running   0          44s
    kafka-channel-receiver-9b7f795d5-c76xr      2/2     Running   0          44s
    kafka-controller-6f95659bf6-trd6r           2/2     Running   0          44s
    kafka-source-dispatcher-6bf98bdfff-8bcsn    2/2     Running   0          44s
    kafka-webhook-eventing-68dc95d54b-825xs     2/2     Running   0          44s