要在您的集群上使用事件驱动架构,请安装 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,然后开始创建无服务器应用程序。