要在您的集群上使用事件驱动架构,请安装 Knative Eventing。您可以创建 Knative 组件(例如事件源、代理和通道),然后使用它们将事件发送到应用程序或外部系统。
安装 OpenShift Serverless 运算符后,您可以使用默认设置安装 Knative Eventing,或者在KnativeEventing自定义资源 (CR) 中配置更高级的设置。有关KnativeEventing CR 配置选项的更多信息,请参见全局配置。
|
如果您想将 Red Hat OpenShift 分布式追踪与 OpenShift Serverless 配合使用,则必须在安装 Knative Eventing 之前安装和配置 Red Hat OpenShift 分布式追踪。 |
安装 OpenShift Serverless 运算符后,可以使用 OpenShift Container Platform Web 控制台安装 Knative Eventing。您可以使用默认设置安装 Knative Eventing,或者在KnativeEventing自定义资源 (CR) 中配置更高级的设置。
您在 OpenShift Container Platform 上具有集群管理员权限,或者在 Red Hat OpenShift Service on AWS 或 OpenShift Dedicated 上具有集群或专用管理员权限。
您已登录到 OpenShift Container Platform Web 控制台。
您已安装 OpenShift Serverless 运算符。
在 OpenShift Container Platform Web 控制台的**管理员**视角中,导航到**运算符**→**已安装的运算符**。
检查页面顶部的**项目**下拉菜单是否设置为**项目:knative-eventing**。
单击 OpenShift Serverless 运算符的**提供的 API**列表中的**Knative Eventing**以转到**Knative Eventing**选项卡。
单击**创建 Knative Eventing**。
在**创建 Knative Eventing**页面中,您可以使用提供的表单或编辑 YAML 文件来配置KnativeEventing对象。
对于不需要完全控制KnativeEventing对象创建的更简单的配置,请使用表单。
单击**创建**。
对于需要完全控制KnativeEventing对象创建的更复杂的配置,请编辑 YAML 文件。要访问 YAML 编辑器,请在**创建 Knative Eventing**页面上单击**编辑 YAML**。
安装 Knative Eventing 后,将创建KnativeEventing对象,并且您将自动定向到**Knative Eventing**选项卡。您将在资源列表中看到knative-eventing自定义资源。
单击**Knative Eventing**选项卡中的knative-eventing自定义资源。
您将自动定向到**Knative Eventing 概述**页面。
向下滚动以查看**条件**列表。
您应该看到一个状态为**True**的条件列表,如示例图像所示。
|
创建 Knative Eventing 资源可能需要几秒钟。您可以在**资源**选项卡中检查其状态。 |
如果条件的状态为**Unknown**或**False**,请稍等片刻,然后在确认已创建资源后再次检查。
安装 OpenShift Serverless 运算符后,您可以使用默认设置安装 Knative Eventing,或者在KnativeEventing自定义资源 (CR) 中配置更高级的设置。您可以使用以下步骤使用 YAML 文件和oc CLI 安装 Knative Eventing。
您在 OpenShift Container Platform 上具有集群管理员权限,或者在 Red Hat OpenShift Service on AWS 或 OpenShift Dedicated 上具有集群或专用管理员权限。
您已安装 OpenShift Serverless 运算符。
安装 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
用于 Apache Kafka 的 Knative 代理实现为您提供了集成选项,使您可以将受支持版本的 Apache Kafka 消息流平台与 OpenShift Serverless 集成使用。如果您已安装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 控制台。
在**管理员**视角下,导航到**Operators** → **已安装的 Operators**。
检查页面顶部的**项目**下拉菜单是否设置为**项目:knative-eventing**。
在 OpenShift Serverless Operator 的**提供的 API**列表中,找到**Knative Kafka**框并单击**创建实例**。
在**创建 Knative Kafka**页面中配置**KnativeKafka**对象。
|
要在您的集群上使用 Kafka 通道、源、代理或接收器,您必须将要使用的选项的**enabled**开关切换为**true**。默认情况下,这些开关设置为**false**。此外,要使用 Kafka 通道、代理或接收器,您必须指定引导服务器。 |
对于不需要完全控制**KnativeKafka**对象创建的更简单的配置,可以使用此表单。
对于需要完全控制**KnativeKafka**对象创建的更复杂的配置,请编辑 YAML。您可以在**创建 Knative Kafka**页面上单击**编辑 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 集群的以逗号分隔的引导服务器列表。 |
| 3 | 使开发人员能够在集群中使用KafkaSource事件源类型。 |
| 4 | 使开发人员能够在集群中使用用于 Apache Kafka 的 Knative 代理实现。 |
| 5 | 来自您的 Red Hat AMQ Streams 集群的以逗号分隔的引导服务器列表。 |
| 6 | 定义由Broker对象支持的 Kafka 主题的分区数。默认为10。 |
| 7 | 定义由Broker对象支持的 Kafka 主题的复制因子。默认为3。replicationFactor值必须小于或等于 Red Hat AMQ Streams 集群的节点数。 |
| 8 | 使开发人员能够在集群中使用 Kafka 接收器。 |
| 9 | 定义 Kafka 数据平面的日志级别。允许的值为TRACE、DEBUG、INFO、WARN和ERROR。默认值为INFO。 |
|
不要在生产环境中使用 |
完成 Kafka 的任何可选配置后,单击**创建**。您将自动跳转到**Knative Kafka**选项卡,其中**knative-kafka**位于资源列表中。
单击**Knative Kafka**选项卡中的**knative-kafka**资源。您将自动跳转到**Knative Kafka 概述**页面。
查看资源的**条件**列表,并确认它们的状态为**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
了解如何在Knative Eventing中使用 Knative 事件驱动架构。
如果您想将 Knative Eventing 与 Apache Kafka 一起使用,请参阅配置用于 Apache Kafka 的 Knative 代理。
如果您想使用 Knative 服务,请参阅安装 Knative Serving,然后开始创建无服务器应用程序。