Menu Close

6.3. Knative Kafka

除了作为 OpenShift Serverless 核心安装一部分的 Knative Eventing 组件外,集群管理员还可安装 KnativeKafka 自定义资源(CR)。

注意

IBM Z 和 IBM Power Systems 目前不支持 Knative Kafka。

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

  • Kafka 源
  • Kafka 频道
  • Kafka 代理
重要

Kafka 代理只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的详情,请参考 https://access.redhat.com/support/offerings/techpreview/

6.3.1. 安装 Knative Kafka

OpenShift Serverless Operator 提供了 Knative Kafka API,可用于创建 KnativeKafka 自定义资源:

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

1
让开发人员在集群中使用 KafkaChannel 频道类型。
2
以逗号分隔的 AMQ Streams 集群中的 bootstrap 服务器列表。
3
让开发人员在集群中使用 KafkaSource 事件源类型。
4
让开发人员在集群中使用 Knative Kafka 代理实现。
5
来自 Red Hat AMQ Streams 集群的 bootstrap 服务器的逗号分隔列表。
6
定义 Kafka 主题分区的数量,由 Broker 对象支持。默认值为 10
7
定义 Kafka 主题的复制因素,由 Broker 对象支持。默认值为 3
注意

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

先决条件

  • 已在 OpenShift Container Platform 集群中安装了 OpenShift Serverless(包括 Knative Eventing)。
  • 您可以访问 Red Hat AMQ Streams 集群。
  • 在 OpenShift Container Platform 上具有集群管理员权限。
  • 已登陆到 OpenShift Container Platform Web 控制台。

步骤

  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 频道、源或代理,您必须切换要使用的选项的 启用 切换。这些交换机默认设置为 false。另外,要使用 Kafka 频道或代理,您必须指定 bootstrap 服务器。

    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. 检查是否已创建 Knative Kafka 资源:

    $ oc get pods -n knative-eventing

    输出示例

    NAME                                            READY   STATUS    RESTARTS   AGE
    kafka-ch-controller-85f879d577-xcbjh            1/1     Running   0          44s
    kafka-ch-dispatcher-55d76d7db8-ggqjl            1/1     Running   0          44s
    kafka-controller-manager-bc994c465-pt7qd        1/1     Running   0          40s
    kafka-webhook-54646f474f-wr7bb                  1/1     Running   0          42s