Knative Eventing中的Sink的用例主要有Knative service、channel、Broker三种
Knative Eventing支持的事件传递模式
Sources to Sink
Channels and Subscriptions
Brokers and Triggers
最为简单的Event发送示例
步骤
将event_display运行为Kservice。
kn service create event-display --image ikubernetes/event_display --port 8080 --scale-min 1
启动一个client的pod,发起请求测试
kubectl run client --image=ikubernetes/admin-box:v1.2 --restart=Never --rm -it --command -- /bin/bash
发起请求测试命令:
curl -v "http://event-display.default.svc.cluster.local" \
-X POST \
-H "Ce-Id: say-hello" \
-H "Ce-Specversion: 1.0" \
-H "Ce-Type: com.icloud2native.sayhievent" \
-H "Ce-Time: 2023-12-01T11:35:56.7181741Z" \
-H "Ce-Source: sendoff" \
-H "Content-Type: application/json" \
-d '{"msg":"Hello littlyboy Knative!"}'
查看event_display中的log是否收到事件
kubectl logs -f event-display-00001-deployment-5ddb97ff7-mfhhq
Eventing API群组及相应的CRD
sources.knative.dev # 声明式配置Event Source的API,提供了四个开箱即用的Source;
eventing.knative.dev # 声明式配置“事件网格模型”的API
messaging.knative.dev # 声明式配置“事件管道模型”的API
flows.knative.dev # 事件流模型,即事件是以并行还是串行的被多个函数处理