×

要在您的集群上使用事件驱动架构,请安装 Knative Eventing。您可以创建 Knative 组件(例如事件源、代理和通道),然后使用它们将事件发送到应用程序或外部系统。

安装 OpenShift Serverless 运算符后,您可以使用默认设置安装 Knative Eventing,或者在KnativeEventing自定义资源 (CR) 中配置更高级的设置。有关KnativeEventing CR 配置选项的更多信息,请参见全局配置

如果您想将 Red Hat OpenShift 分布式追踪与 OpenShift Serverless 配合使用,则必须在安装 Knative Eventing 之前安装和配置 Red Hat OpenShift 分布式追踪。

使用 Web 控制台安装 Knative Eventing

安装 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 运算符。

步骤
  1. 在 OpenShift Container Platform Web 控制台的**管理员**视角中,导航到**运算符**→**已安装的运算符**。

  2. 检查页面顶部的**项目**下拉菜单是否设置为**项目:knative-eventing**。

  3. 单击 OpenShift Serverless 运算符的**提供的 API**列表中的**Knative Eventing**以转到**Knative Eventing**选项卡。

  4. 单击**创建 Knative Eventing**。

  5. 在**创建 Knative Eventing**页面中,您可以使用提供的表单或编辑 YAML 文件来配置KnativeEventing对象。

    • 对于不需要完全控制KnativeEventing对象创建的更简单的配置,请使用表单。

  6. 单击**创建**。

    • 对于需要完全控制KnativeEventing对象创建的更复杂的配置,请编辑 YAML 文件。要访问 YAML 编辑器,请在**创建 Knative Eventing**页面上单击**编辑 YAML**。

  7. 安装 Knative Eventing 后,将创建KnativeEventing对象,并且您将自动定向到**Knative Eventing**选项卡。您将在资源列表中看到knative-eventing自定义资源。

验证
  1. 单击**Knative Eventing**选项卡中的knative-eventing自定义资源。

  2. 您将自动定向到**Knative Eventing 概述**页面。

    Knative Eventing Overview page
  3. 向下滚动以查看**条件**列表。

  4. 您应该看到一个状态为**True**的条件列表,如示例图像所示。

    Conditions

    创建 Knative Eventing 资源可能需要几秒钟。您可以在**资源**选项卡中检查其状态。

  5. 如果条件的状态为**Unknown**或**False**,请稍等片刻,然后在确认已创建资源后再次检查。

使用 YAML 安装 Knative Eventing

安装 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)。

步骤
  1. 创建一个名为eventing.yaml的文件。

  2. 将以下示例 YAML 复制到eventing.yaml

    apiVersion: operator.knative.dev/v1beta1
    kind: KnativeEventing
    metadata:
        name: knative-eventing
        namespace: knative-eventing
  3. 可选。对您要为 Knative Eventing 部署实施的 YAML 进行任何更改。

  4. 通过输入以下命令应用eventing.yaml文件:

    $ oc apply -f eventing.yaml
验证
  1. 输入以下命令并观察输出结果,以验证安装是否完成:

    $ 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 资源的创建可能需要几秒钟。

  2. 如果条件的状态为UnknownFalse,请等待片刻,然后在确认资源已创建后再次检查。

  3. 输入以下命令,检查 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 的 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 控制台。

步骤
  1. 在**管理员**视角下,导航到**Operators** → **已安装的 Operators**。

  2. 检查页面顶部的**项目**下拉菜单是否设置为**项目:knative-eventing**。

  3. 在 OpenShift Serverless Operator 的**提供的 API**列表中,找到**Knative Kafka**框并单击**创建实例**。

  4. 在**创建 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 主题的复制因子。默认为3replicationFactor值必须小于或等于 Red Hat AMQ Streams 集群的节点数。
      8 使开发人员能够在集群中使用 Kafka 接收器。
      9 定义 Kafka 数据平面的日志级别。允许的值为TRACEDEBUGINFOWARNERROR。默认值为INFO

      不要在生产环境中使用DEBUGTRACE作为日志级别。这些日志级别的输出非常冗长,可能会降低性能。

  5. 完成 Kafka 的任何可选配置后,单击**创建**。您将自动跳转到**Knative Kafka**选项卡,其中**knative-kafka**位于资源列表中。

验证
  1. 单击**Knative Kafka**选项卡中的**knative-kafka**资源。您将自动跳转到**Knative Kafka 概述**页面。

  2. 查看资源的**条件**列表,并确认它们的状态为**True**。

    Kafka Knative Overview page showing Conditions

    如果条件的状态为**Unknown**或**False**,请等待片刻以刷新页面。

  3. 检查用于 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

后续步骤