第 10 章 Knative Eventing
10.1. 在 Knative Eventing 中使用代理
Knative Eventing 使用 default
代理,除非特别指定。
如果您有集群管理员权限,可以使用命名空间注解自动创建 default
代理。
所有其他用户必须按照本指南中描述的手动过程创建一个代理。
10.1.1. 手动创建代理
要创建代理,您必须为每个命名空间创建一个服务账户,并为该服务帐户指定所需的 RBAC 权限。
先决条件
-
安装了 Knative Eventing,其中包括
ClusterRole
。
流程
创建
ServiceAccount
对象。输入以下命令来创建
eventing-broker-ingress
对象:$ oc -n <namespace> create serviceaccount eventing-broker-ingress
输入以下命令来创建
eventing-broker-filter
对象:$ oc -n <namespace> create serviceaccount eventing-broker-filter
授予您创建 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
通过创建并应用包含以下内容的 YAML 文件来创建代理:
apiVersion: eventing.knative.dev/v1beta1 kind: Broker metadata: namespace: default name: default 1
- 1
- 这个示例使用
default
名称,但您可以使用其他有效名称替换它。
10.1.2. 使用命名空间注解自动创建代理
如果您有集群管理员权限,您可以通过注解命名空间来自动创建代理。
先决条件
- 安装了 Knative Eventing。
- 一个具有集群管理员权限的 OpenShift Container Platform 账户。
流程
输入以下命令来标注命名空间:
$ oc label namespace default knative-eventing-injection=enabled 1 $ oc -n default get broker default
- 1
- 使用所需命名空间名替换
default
。
本例中显示的行将在
default
命名空间内自动创建一个名为default
的代理。
如果您删除了注解,则不会删除由注解创建的代理。您必须手动删除它们。
10.1.3. 使用命名空间注解删除创建的代理
从所选命名空间中(在这个示例中,是
default
命名空间)删除注入的代理:$ oc -n default delete broker default