5.3. 为 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 控制台。Procedure

    1. Administrator 视角中,进入 OperatorsInstalled 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 自定义资源示例

      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

      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 对象支持。默认值为 3
      8
      让开发人员在集群中使用 Kafka sink。
      注意

      replicationFactor 值必须小于或等于 Red Hat AMQ Streams 集群的节点数量。

      1. 建议您在不需要完全控制 KnativeKafka 对象创建的简单配置中使用该表单。
      2. 对于更复杂的配置,建议编辑 YAML,这可以完全控制 KnativeKafka 对象的创建。您可以通过点 Create Knative Kafka 页面右上角的 Edit YAML 链接来访问 YAML。
    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