第 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 控制台。
流程
-
在 Administrator 视角中,进入 Operators
Installed Operators。 - 检查页面顶部的 Project 下拉菜单是否已设置为 Project: knative-eventing。
- 在 OpenShift Serverless Operator 的 Provided APIs 列表中,找到 Knative Kafka 复选框并点 Create Instance。
在 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
对象支持。默认值为3
。replicationFactor
值必须小于或等于 Red Hat AMQ Streams 集群的节点数量。 - 8
- 让开发人员在集群中使用 Kafka sink。
- 9
- 定义 Kafka 数据平面的日志级别。允许的值有
TRACE
,DEBUG
,INFO
,WARN
和ERROR
。默认值为INFO
。
警告不要将
DEBUG
或TRACE
用作生产环境中的日志记录级别。这些日志记录级别的输出非常详细,并可降低性能。
- 完成 Kafka 的任何可选配置后,点 Create。您会自动定向到 Knative Kafka 标签页,其中 knative-kafka 在资源列表中。
验证
- 点 Knative Kafka 选项卡中的 knative-kafka 资源。您会自动定向到 Knative Kafka Overview 页面。
查看资源的 Conditions 列表,并确认其状态为 True。
如果条件的状态为 Unknown 或 False,请等待几分钟刷新页面。
检查是否已创建 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