第 10 章 Knative Eventing

10.1. 在 Knative Eventing 中使用代理

Knative Eventing 使用 default 代理,除非特别指定。

如果您有集群管理员权限,可以使用命名空间注解自动创建 default 代理。

所有其他用户必须按照本指南中描述的手动过程创建一个代理。

10.1.1. 手动创建代理

要创建代理,您必须为每个命名空间创建一个服务账户,并为该服务帐户指定所需的 RBAC 权限。

先决条件

  • 安装了 Knative Eventing,其中包括 ClusterRole

流程

  1. 创建 ServiceAccount 对象。

    1. 输入以下命令来创建 eventing-broker-ingress 对象:

      $ oc -n <namespace> create serviceaccount eventing-broker-ingress
    2. 输入以下命令来创建 eventing-broker-filter 对象:

      $ oc -n <namespace> create serviceaccount eventing-broker-filter
  2. 授予您创建 RBAC 权限的对象:

    $ oc -n default create rolebinding eventing-broker-ingress \
      --clusterrole=eventing-broker-ingress \
      --serviceaccount=default:eventing-broker-ingress
    $ oc -n default create rolebinding eventing-broker-filter \
      --clusterrole=eventing-broker-filter \
      --serviceaccount=default:eventing-broker-filter
  3. 通过创建并应用包含以下内容的 YAML 文件来创建代理:

    apiVersion: eventing.knative.dev/v1beta1
    kind: Broker
    metadata:
      namespace: default
      name: default 1
    1
    这个示例使用 default名称,但您可以使用其他有效名称替换它。

10.1.2. 使用命名空间注解自动创建代理

如果您有集群管理员权限,您可以通过注解命名空间来自动创建代理。

先决条件

  • 安装了 Knative Eventing。
  • 一个具有集群管理员权限的 OpenShift Container Platform 账户。

流程

  1. 输入以下命令来标注命名空间:

    $ oc label namespace default knative-eventing-injection=enabled 1
    $ oc -n default get broker default
    1
    使用所需命名空间名替换 default

    本例中显示的行将在 default 命名空间内自动创建一个名为 default 的代理。

注意

如果您删除了注解,则不会删除由注解创建的代理。您必须手动删除它们。

10.1.3. 使用命名空间注解删除创建的代理

  1. 从所选命名空间中(在这个示例中,是 default 命名空间)删除注入的代理:

    $ oc -n default delete broker default