3.5. 安装 Knative Eventing
要在集群上使用事件驱动的构架,请安装 Knative Eventing。您可以创建 Knative 组件,如事件源、代理和频道,然后使用它们向应用程序或外部系统发送事件。
安装 OpenShift Serverless Operator 后,您可以使用默认设置安装 Knative Eventing,或者在 KnativeEventing
自定义资源 (CR) 中配置更高级的设置。有关 KnativeEventing
CR 的配置选项的更多信息,请参阅全局配置。
如果要在 OpenShift Serverless 中使用 Red Hat OpenShift distributed tracing,则必须在安装 Knative Eventing 前安装和配置 Red Hat OpenShift distributed tracing。
3.5.1. 使用 Web 控制台安装 Knative Eventing
安装 OpenShift Serverless Operator 后,使用 OpenShift Container Platform Web 控制台安装 Knative Eventing。您可以使用默认设置安装 Knative Eventing,或者在 KnativeEventing
自定义资源 (CR) 中配置更高级的设置。
先决条件
- 您可以访问具有集群管理员权限的 OpenShift Container Platform 帐户。
- 已登陆到 OpenShift Container Platform Web 控制台。
- 已安装 OpenShift Serverless Operator。
流程
-
在 OpenShift Container Platform web 控制台的 Administrator 视角中,进入 Operators
Installed Operators。 - 检查页面顶部的 Project 下拉菜单是否已设置为 Project: knative-eventing。
- 点 OpenShift Serverless Operator 的 Provided APIs 列表中的 Knative Eventing 来进入 Knative Eventing 选项卡。
- 点 Create Knative Eventing。
在 Create Knative Eventing 页面中,您可以选择使用提供的默认表单或编辑 YAML 来配置
KnativeEventing
对象。建议您在不需要完全控制
KnativeEventing
对象创建的简单配置中使用该表单。可选。如果您要使用表单配置
KnativeEventing
对象,请为您的 Knative Eventing 部署进行任何要实现的更改。
点 Create。
对于更复杂的配置,建议编辑 YAML,这可以完全控制
KnativeEventing
对象的创建。您可以通过点 Create Knative Eventing 页右上角的 edit YAML 链接来访问 YAML。可选。如果您要通过编辑 YAML 配置
KnativeEventing
对象,请对您希望用于 Knative Eventing 部署的 YAML 进行更改。
- 点 Create。
-
安装 Knative Eventing 后,会创建
KnativeEventing
对象,并自动定向到 Knative Eventing 选项卡。您可以在资源列表中看到knative-eventing
自定义资源。
验证
-
点 Knative Eventing 选项卡中的
knative-eventing
自定义资源。 您会自动定向到 Knative Eventing Overview 页面。
- 向下滚动查看条件列表。
您应该看到一个状况为 True 的条件列表,如示例镜像所示。
注意创建 Knative Eventing 资源可能需要几秒钟时间。您可以在 Resources 选项卡中查看其状态。
- 如果条件状态为 Unknown 或 False,请等待几分钟,然后在确认已创建资源后再重新检查。
3.5.2. 使用 YAML 安装 Knative Eventing
安装 OpenShift Serverless Operator 后,您可以使用默认设置安装 Knative Eventing,或者在 KnativeEventing
自定义资源 (CR) 中配置更高级的设置。您可以使用 YAML 文件和 oc
CLI 安装 Knative Eventing。
先决条件
- 您可以访问具有集群管理员权限的 OpenShift Container Platform 帐户。
- 已安装 OpenShift Serverless Operator。
-
安装 OpenShift CLI (
oc
) 。
流程
-
创建名为
eventing.yaml
的文件。 将以下示例 YAML 复制到
eventing.yaml
中:apiVersion: operator.knative.dev/v1beta1 kind: KnativeEventing metadata: name: knative-eventing namespace: knative-eventing
- 可选。根据您的 Knative Eventing 部署,对 YAML 进行相应的更改。
输入以下内容来应用
eventing.yaml
文件:$ oc apply -f eventing.yaml
验证
输入以下命令验证安装是否完成,并观察输出结果:
$ oc get knativeeventing.operator.knative.dev/knative-eventing \ -n knative-eventing \ --template='{{range .status.conditions}}{{printf "%s=%s\n" .type .status}}{{end}}'
输出示例
InstallSucceeded=True Ready=True
注意创建 Knative Eventing 资源可能需要几秒钟时间。
-
如果条件状态为
Unknown
或False
,请等待几分钟,然后在确认已创建资源后再重新检查。 使用以下命令检查是否已创建 Knative Eventing 资源:
$ oc get pods -n knative-eventing
输出示例
NAME READY STATUS RESTARTS AGE broker-controller-58765d9d49-g9zp6 1/1 Running 0 7m21s eventing-controller-65fdd66b54-jw7bh 1/1 Running 0 7m31s eventing-webhook-57fd74b5bd-kvhlz 1/1 Running 0 7m31s imc-controller-5b75d458fc-ptvm2 1/1 Running 0 7m19s imc-dispatcher-64f6d5fccb-kkc4c 1/1 Running 0 7m18s
3.5.3. 安装 Knative Kafka
Knative Kafka 提供集成选项,供您在 OpenShift Serverless 中使用支持的 Apache Kafka 消息流平台。如果您已安装 KnativeKafka 自定义资源,则 OpenShift Serverless 安装中提供了 Knative Kafka
功能。
先决条件
- 在集群中安装了 OpenShift Serverless Operator 和 Knative Eventing。
- 您可以访问 Red Hat AMQ Streams 集群。
-
如果要使用验证步骤,请安装 OpenShift CLI (
oc
) 。
- 在 OpenShift Container Platform 上具有集群管理员权限。
- 已登陆到 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
自定义资源示例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
- 让开发人员在集群中使用 Knative Kafka 代理实现。
- 5
- 来自 Red Hat AMQ Streams 集群的 bootstrap 服务器的逗号分隔列表。
- 6
- 定义 Kafka 主题分区的数量,由
Broker
对象支持。默认值为10
。 - 7
- 定义 Kafka 主题的复制因素,由
Broker
对象支持。默认值为3
。 - 8
- 让开发人员在集群中使用 Kafka sink。
注意replicationFactor
值必须小于或等于 Red Hat AMQ Streams 集群的节点数量。- 建议您在不需要完全控制 KnativeKafka 对象创建的简单配置中使用该表单。
- 对于更复杂的配置,建议编辑 YAML,这可以完全控制 KnativeKafka 对象的创建。您可以通过点 Create Knative Kafka 页面右上角的 Edit YAML 链接来访问 YAML。
- 完成 Kafka 的任何可选配置后,点 Create。您会自动定向到 Knative Kafka 标签页,其中 knative-kafka 在资源列表中。
验证
- 点 Knative Kafka 选项卡中的 knative-kafka 资源。您会自动定向到 Knative Kafka Overview 页面。
查看资源的 Conditions 列表,并确认其状态为 True。
如果条件的状态为 Unknown 或 False,请等待几分钟刷新页面。
检查是否已创建 Knative Kafka 资源:
$ 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
3.5.4. 后续步骤
- 如果要使用 Knative 服务,可以安装 Knative Serving。