$ kn broker create <broker_name>
Knative 提供了一个默认的基于通道的代理实现。此基于通道的代理可用于开发和测试目的,但不提供生产环境中足够的事件传递保证。
如果集群管理员已将您的 OpenShift Serverless 部署配置为使用 Apache Kafka 作为默认代理类型,则使用默认设置创建代理会为 Apache Kafka 创建一个 Knative 代理。
如果您的 OpenShift Serverless 部署未配置为使用 Knative 代理(用于 Apache Kafka)作为默认代理类型,则在以下过程中使用默认设置时会创建基于通道的代理。
代理可以与触发器结合使用,以将事件从事件源传递到事件接收器。使用 Knative (kn
) CLI 创建代理比直接修改 YAML 文件提供了更简化和直观的用户界面。您可以使用 kn broker create
命令创建代理。
您的 OpenShift Container Platform 集群上已安装 OpenShift Serverless 运算符和 Knative Eventing。
您已安装 Knative (kn
) CLI。
您已创建了一个项目,或有权访问具有在 OpenShift Container Platform 中创建应用程序和其他工作负载的相应角色和权限的项目。
创建代理
$ kn broker create <broker_name>
使用 kn
命令列出所有现有代理
$ kn broker list
NAME URL AGE CONDITIONS READY REASON
default http://broker-ingress.knative-eventing.svc.cluster.local/test/default 45s 5 OK / 5 True
可选:如果您使用的是 OpenShift Container Platform Web 控制台,则可以导航到**开发者**视角中的**拓扑**视图,并观察代理是否存在。
代理可以与触发器结合使用,以将事件从事件源传递到事件接收器。您可以通过向Trigger
对象添加eventing.knative.dev/injection: enabled
注释来创建代理。
如果您使用 |
您的 OpenShift Container Platform 集群上已安装 OpenShift Serverless 运算符和 Knative Eventing。
安装 OpenShift CLI (oc
)。
您已创建了一个项目,或有权访问具有在 OpenShift Container Platform 中创建应用程序和其他工作负载的相应角色和权限的项目。
创建一个包含eventing.knative.dev/injection: enabled
注释的Trigger
对象作为 YAML 文件。
apiVersion: eventing.knative.dev/v1
kind: Trigger
metadata:
annotations:
eventing.knative.dev/injection: enabled
name: <trigger_name>
spec:
broker: default
subscriber: (1)
ref:
apiVersion: serving.knative.dev/v1
kind: Service
name: <service_name>
1 | 指定触发器发送事件到的事件接收器(或订阅者)的详细信息。 |
应用Trigger
YAML 文件。
$ oc apply -f <filename>
您可以使用oc
CLI 或通过在 Web 控制台的**拓扑**视图中观察它来验证代理是否已成功创建。
输入以下oc
命令以获取代理。
$ oc -n <namespace> get broker default
NAME READY REASON URL AGE
default True http://broker-ingress.knative-eventing.svc.cluster.local/test/default 3m56s
可选:如果您使用的是 OpenShift Container Platform Web 控制台,则可以导航到**开发者**视角中的**拓扑**视图,并观察代理是否存在。
Broker 可以与触发器结合使用,将事件从事件源传递到事件接收器。您可以通过标记您拥有或具有写入权限的命名空间来自动创建default
Broker。
使用此方法创建的 Broker 不会因为您删除标签而被删除。您必须手动删除它们。 |
您的 OpenShift Container Platform 集群上已安装 OpenShift Serverless 运算符和 Knative Eventing。
安装 OpenShift CLI (oc
)。
您已创建了一个项目,或有权访问具有在 OpenShift Container Platform 中创建应用程序和其他工作负载的相应角色和权限的项目。
如果您使用的是 Red Hat OpenShift Service on AWS 或 OpenShift Dedicated,则您拥有集群或专用管理员权限。
使用eventing.knative.dev/injection=enabled
标签标记命名空间
$ oc label namespace <namespace> eventing.knative.dev/injection=enabled
您可以使用oc
CLI 或通过在 Web 控制台的**拓扑**视图中观察它来验证代理是否已成功创建。
使用oc
命令获取 Broker
$ oc -n <namespace> get broker <broker_name>
$ oc -n default get broker default
NAME READY REASON URL AGE
default True http://broker-ingress.knative-eventing.svc.cluster.local/test/default 3m56s
可选:如果您使用的是 OpenShift Container Platform Web 控制台,则可以导航到**开发者**视角中的**拓扑**视图,并观察代理是否存在。
如果您通过注入创建 Broker,之后想要删除它,则必须手动删除它。使用命名空间标签或触发器注释创建的 Broker,如果您删除标签或注释,不会被永久删除。
安装 OpenShift CLI (oc
)。
从命名空间中删除eventing.knative.dev/injection=enabled
标签
$ oc label namespace <namespace> eventing.knative.dev/injection-
删除注释可以防止 Knative 在您删除 Broker 后重新创建它。
从选定的命名空间删除 Broker
$ oc -n <namespace> delete broker <broker_name>
使用oc
命令获取 Broker
$ oc -n <namespace> get broker <broker_name>
$ oc -n default get broker default
No resources found.
Error from server (NotFound): brokers.eventing.knative.dev "default" not found
在您的集群上安装 Knative Eventing 后,您可以使用 Web 控制台创建 Broker。使用 OpenShift Container Platform Web 控制台提供了一个简化且直观的用户界面来创建 Broker。
您已登录到 OpenShift Container Platform Web 控制台。
OpenShift Serverless Operator、Knative Serving 和 Knative Eventing 已安装在集群上。
您已创建了一个项目,或有权访问具有在 OpenShift Container Platform 中创建应用程序和其他工作负载的相应角色和权限的项目。
在“开发者”视图中,导航到“+添加”→“Broker”。将显示“Broker”页面。
可选。更新 Broker 的名称。如果您不更新名称,则生成的 Broker 将命名为default
。
单击“创建”。
您可以通过查看“拓扑”页面中的 Broker 组件来验证 Broker 是否已创建。
在“开发者”视图中,导航到“拓扑”。
查看mt-broker-ingress
、mt-broker-filter
和mt-broker-controller
组件。
Broker 可以与触发器结合使用,将事件从事件源传递到事件接收器。事件作为 HTTP POST
请求从事件源发送到 Broker。事件进入 Broker 后,可以使用触发器根据CloudEvent 属性进行过滤,并作为 HTTP POST
请求发送到事件接收器。
您的 OpenShift Container Platform 集群上已安装 OpenShift Serverless 运算符和 Knative Eventing。
您已登录到 Web 控制台,并且处于“管理员”视图。
您拥有 OpenShift Container Platform 的集群管理员权限,或者您拥有 Red Hat OpenShift Service on AWS 或 OpenShift Dedicated 的集群或专用管理员权限。
在 OpenShift Container Platform Web 控制台的“管理员”视图中,导航到“无服务器”→“事件”。
在“创建”列表中,选择“Broker”。您将被定向到“创建 Broker”页面。
可选:修改 Broker 的 YAML 配置。
单击“创建”。
配置事件传递参数,这些参数适用于事件未能传递到事件接收器的情况。