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. 使用 PingSource
PingSource 用于定期向事件消费者发送带有恒定有效负载的 ping 事件,并可用于调度发送事件,类似于计时器。
PingSource YAML 示例
11.4.1. 通过 kn CLI 使用 PingSource 复制链接链接已复制到粘贴板!
以下小节介绍了如何使用 kn
CLI 创建、验证和移除基本 PingSource。
先决条件
- 已安装 Knative Serving 和 Eventing。
-
已安装
kn
CLI。
流程
要验证 PingSource 是否可以工作,请创建一个简单的 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:latest
Copy 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-display
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令并检查输出,检查是否正确映射了控制器:
kn source ping describe test-ping-source
$ kn source ping describe test-ping-source
Copy 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 pods
Copy 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-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.4.1.1. 删除 PingSource 复制链接链接已复制到粘贴板!
删除 PingSource:
kn delete pingsources.sources.knative.dev test-ping-source
$ kn delete pingsources.sources.knative.dev test-ping-source
Copy 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-display
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.4.2. 通过 YAML 使用 PingSource 复制链接链接已复制到粘贴板!
以下小节介绍了如何使用 YAML 文件创建、验证和移除基本 PingSource。
先决条件
- 已安装 Knative Serving 和 Eventing。
以下操作过程要求您创建 YAML 文件。
如果更改了示例中使用的 YAML 文件的名称,则需要更新对应的 CLI 命令。
流程
要验证 PingSource 是否可以工作,请创建一个简单的 Knative 服务,用于在服务日志中转储传入的信息:
将 YAML 示例复制到名为
service.yaml
的文件中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建服务:
oc apply --filename service.yaml
$ oc apply --filename service.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
对于您要请求的每一组 ping 事件,请在与事件消费者相同的命名空间中创建一个 PingSource:
将 YAML 示例复制到名为
ping-source.yaml
的文件中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 PingSource:
oc apply --filename ping-source.yaml
$ oc apply --filename ping-source.yaml
Copy 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 -oyaml
Copy 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 pods
Copy 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-container
Copy 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.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来删除 PingSource:
oc delete --filename ping-source.yaml
$ oc delete --filename ping-source.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow