This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.11.4. 使用 ping 源
ping 源用于定期向事件消费者发送带有恒定有效负载的 ping 事件。ping 源可以用来调度发送事件,类似于计时器,如下例所示:
ping 源示例
11.4.1. 使用 Knative CLI 创建 ping 源 复制链接链接已复制到粘贴板!
以下小节介绍了如何使用 kn CLI 创建、验证和移除基本 PingSource 对象。
先决条件
- 已安装 Knative Serving 和 Eventing。
-
已安装
knCLI。
流程
要验证 ping 源是否可以工作,请创建一个简单的 Knative 服务,在服务日志中转储传入的信息:
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 对于您要请求的每一组 ping 事件,请在与事件消费者相同的命名空间中创建一个
PingSource对象:kn source ping create test-ping-source \ --schedule "*/2 * * * *" \ --data '{"message": "Hello world!"}' \ --sink svc:event-display$ kn source ping create test-ping-source \ --schedule "*/2 * * * *" \ --data '{"message": "Hello world!"}' \ --sink svc:event-displayCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令并检查输出,检查是否正确映射了控制器:
kn source ping describe test-ping-source
$ kn source ping describe test-ping-sourceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证步骤
您可以通过查看 sink pod 的日志来验证 Kubernetes 事件是否已发送到 Knative 事件。
默认情况下,如果在 60 秒内都没有流量,Knative 服务会终止其 Pod。本指南中演示的示例创建了一个 PingSource 对象,每 2 分钟发送一条消息,因此每个消息都应该在新创建的 pod 中观察到。
查看新创建的 pod:
watch oc get pods
$ watch oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
Ctrl+C取消查看 pod,然后查看所创建 pod 的日志: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
11.4.1.1. 删除 ping 源 复制链接链接已复制到粘贴板!
删除
PingSource对象:kn delete pingsources.sources.knative.dev test-ping-source
$ kn delete pingsources.sources.knative.dev test-ping-sourceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 删除
event-display服务:kn delete service.serving.knative.dev event-display
$ kn delete service.serving.knative.dev event-displayCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.4.2. 使用 YAML 文件创建 ping 源 复制链接链接已复制到粘贴板!
以下小节介绍了如何使用 YAML 文件创建、验证和移除基本 ping 源。
先决条件
- 已安装 Knative Serving 和 Eventing。
以下操作过程要求您创建 YAML 文件。
如果更改了示例中使用的 YAML 文件的名称,则需要更新对应的 CLI 命令。
流程
要验证 ping 源是否可以工作,请创建一个简单的 Knative 服务,在服务日志中转储传入的信息。
将 YAML 示例复制到名为
service.yaml的文件中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用
service.yaml文件:oc apply --filename service.yaml
$ oc apply --filename service.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
对于您要请求的每一组 ping 事件,请在与事件消费者相同的命名空间中创建一个
PingSource对象。将 YAML 示例复制到名为
ping-source.yaml的文件中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用
ping-source.yaml文件:oc apply --filename ping-source.yaml
$ oc apply --filename ping-source.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
输入以下命令并查看输出来检查是否正确映射了控制器:
oc get pingsource.sources.knative.dev test-ping-source -oyaml
$ oc get pingsource.sources.knative.dev test-ping-source -oyamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证步骤
您可以通过查看 sink pod 的日志来验证 Kubernetes 事件是否已发送到 Knative 事件。
默认情况下,如果在 60 秒内都没有流量,Knative 服务会终止其 Pod。本指南中演示的示例创建了一个 PingSource 对象,每 2 分钟发送一条消息,因此每个消息都应该在新创建的 pod 中观察到。
查看新创建的 pod:
watch oc get pods
$ watch oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
Ctrl+C取消查看 pod,然后查看所创建 pod 的日志: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
11.4.2.1. 删除 PingSource 复制链接链接已复制到粘贴板!
输入以下命令删除该服务:
oc delete --filename service.yaml
$ oc delete --filename service.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令来删除
PingSource对象:oc delete --filename ping-source.yaml
$ oc delete --filename ping-source.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow