10.5. 使用 SinkBinding
SinkBinding 用于将事件和 事件源连接至事件消费者或 事件 sink(如一个 Knative 服务或应用程序)。
以下两个流程都要求您创建 YAML 文件。
如果更改了示例中使用的 YAML 文件的名称,则需要更新对应的 CLI 命令。
10.5.1. 通过 Knative CLI (kn) 使用 SinkBinding 复制链接链接已复制到粘贴板!
本指南描述了使用 kn 命令创建、管理和删除 SinkBinding 实例所需的步骤。
先决条件
- 已安装 Knative Serving 和 Eventing。
-
已安装
knCLI。
流程
要检查 SinkBinding 是否已正确设置,请创建一个 Knative 事件显示服务或事件 sink,在日志中转储传入的信息:
kn service create event-display --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
$ kn service create event-display --image quay.io/openshift-knative/knative-eventing-sources-event-display:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个 SinkBinding 把事件发送到服务:
kn source binding create bind-heartbeat --subject Job:batch/v1:app=heartbeat-cron --sink svc:event-display
$ kn source binding create bind-heartbeat --subject Job:batch/v1:app=heartbeat-cron --sink svc:event-displayCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 CronJob:
创建名为
heartbeats-cronjob.yaml的文件,并将以下示例代码复制到其中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在创建了
heartbeats-cronjob.yaml文件后,请输入:oc apply -f heartbeats-cronjob.yaml
$ oc apply -f heartbeats-cronjob.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
输入以下命令并检查输出,检查是否正确映射了控制器:
kn source binding describe bind-heartbeat
$ kn source binding describe bind-heartbeatCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证步骤
您可以通过查看消息 dumper 功能日志,来验证 Kubernetes 事件是否已发送到 Knative 事件。
您可以输入以下命令来查看消息转储程序功能日志:
oc get pods
$ oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc logs $(oc get pod -o name | grep event-display) -c user-container
$ oc logs $(oc get pod -o name | grep event-display) -c user-containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.5.2. 通过 YAML 的方法使用 SinkBinding 复制链接链接已复制到粘贴板!
本指南描述了使用 YAML 文件创建、管理和删除 SinkBinding 实例所需的步骤。
先决条件
- 已安装 Knative Serving 和 Eventing。
流程
要检查 SinkBinding 是否已正确设置,请创建一个 Knative 事件显示服务或事件挂起,从而在日志中转储传入的信息。
将以下示例 YAML 复制到一个名为
service.yaml的文件中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
service.yaml文件后,输入以下内容应用它:oc apply -f service.yaml
$ oc apply -f service.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
创建将事件定向到该服务的 SinkBinding。
创建名为
sinkbinding.yaml的文件,并将以下示例代码复制到其中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 在本例中,任何具有标签
app: heartbeat-cron的作业都将被绑定到事件 sink。
创建
sinkbinding.yaml文件后,输入以下内容应用它:oc apply -f sinkbinding.yaml
$ oc apply -f sinkbinding.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
创建 CronJob:
创建名为
heartbeats-cronjob.yaml的文件,并将以下示例代码复制到其中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在创建了
heartbeats-cronjob.yaml文件后,请输入:oc apply -f heartbeats-cronjob.yaml
$ oc apply -f heartbeats-cronjob.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
输入以下命令并检查输出,检查是否正确映射了控制器:
oc get sinkbindings.sources.knative.dev bind-heartbeat -oyaml
$ oc get sinkbindings.sources.knative.dev bind-heartbeat -oyamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证步骤
您可以通过查看消息 dumper 功能日志,来验证 Kubernetes 事件是否已发送到 Knative 事件。
输入命令:
oc get pods
$ oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入命令:
oc logs $(oc get pod -o name | grep event-display) -c user-container
$ oc logs $(oc get pod -o name | grep event-display) -c user-containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow