第 6 章 为 Apache Kafka 配置 Knative 代理


Apache Kafka 的 Knative 代理实现提供了集成选项,供您在 OpenShift Serverless 中使用支持的 Apache Kafka 消息流平台版本。Kafka 为事件源、频道、代理和事件 sink 功能提供选项。

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

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

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

  • Kafka 源
  • Kafka 频道
  • Kafka 代理
  • Kafka 接收器

6.1. 为 Apache Kafka 安装 Knative 代理

Apache Kafka 的 Knative 代理实现提供了集成选项,供您在 OpenShift Serverless 中使用支持的 Apache Kafka 消息流平台版本。如果安装了 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. Administrator 视角中,进入 Operators Installed Operators
  2. 检查页面顶部的 Project 下拉菜单是否已设置为 Project: knative-eventing
  3. 在 OpenShift Serverless Operator 的 Provided APIs 列表中,找到 Knative Kafka 复选框并点 Create Instance
  4. Create Knative Kafka 页面中配置 KnativeKafka 对象。

    重要

    要在集群中使用 Kafka 频道、源、代理或 sink,您需要将要使用的属性的 enabled 选项设置为 true。这些交换机默认设置为 false。另外,要使用 Kafka 频道、代理或接收器,您必须指定 bootstrap 服务器。

    • 对于不需要完全控制 KnativeKafka 对象创建的简单配置,请使用表单。
    • 编辑 YAML 以了解更复杂的配置,需要完全控制 KnativeKafka 对象的创建。您可以通过点 Create Knative Kafka 页面中的 Edit 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 集群中的 bootstrap 服务器列表。
      3
      让开发人员在集群中使用 KafkaSource 事件源类型。
      4
      让开发人员在集群中使用 Apache Kafka 的 Knative 代理实现。
      5
      来自 Red Hat AMQ Streams 集群的 bootstrap 服务器的逗号分隔列表。
      6
      定义 Kafka 主题分区的数量,由 Broker 对象支持。默认值为 10
      7
      定义 Kafka 主题的复制因素,由 Broker 对象支持。默认值为 3replicationFactor 值必须小于或等于 Red Hat AMQ Streams 集群的节点数量。
      8
      让开发人员在集群中使用 Kafka sink。
      9
      定义 Kafka 数据平面的日志级别。允许的值有 TRACE,DEBUG,INFO,WARNERROR。默认值为 INFO
      警告

      不要将 DEBUGTRACE 用作生产环境中的日志记录级别。这些日志记录级别的输出非常详细,并可降低性能。

  5. 完成 Kafka 的任何可选配置后,点 Create。您会自动定向到 Knative Kafka 标签页,其中 knative-kafka 在资源列表中。

验证

  1. Knative Kafka 选项卡中的 knative-kafka 资源。您会自动定向到 Knative Kafka Overview 页面。
  2. 查看资源的 Conditions 列表,并确认其状态为 True

    Kafka Knative Overview 页面显示 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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.