在Knative中创建一个cronjob,向Kafka发布消息



我想通过Knative创建一个cronjob,每10分钟向我的Kafka主题发送健康检查消息。
然后我们将创建一个单独的端点,它将接收这些消息并将一些响应传递给接收者(healthcheck)。
尝试使用KafkaBinding,这似乎是合适的,但不能应用此模板(TLS): https://github.com/knative/docs/tree/main/code-samples/eventing/kafka/binding
我也发现它很奇怪,常规KafkaBinding模板包含apiVersion: bindings. knativedev/v1beta1,而TLS:sources. knative.com dev/v1beta1.
还没有找到关于如何在Kafka上创建一个发送消息的Cronjob的文档,然后使用KafkaSource抓取并使用broker+trigger传递到k8上的服务。
有人实现了吗?还是找到了另一种方法?
这个想法是测试包括KafkaSource在内的整个流程,这看起来有点不稳定。

无需编写任何自定义代码即可完成此操作的方法是创建PingSource + KafkaSink,它将定期向Kafka主题发送固定事件。

配置事件源对象:

# See reference API for more details https://knative.dev/docs/eventing/sources/ping-source/reference/
apiVersion: sources.knative.dev/v1
kind: PingSource
metadata:
name: ping-name-kafka-sink
spec:
schedule: "*/10 * * * *" # Every 10 minutes
contentType: "text/plain"
data: 'healthcheck' # whatever you'd like to send
# Send event to KafkaSink
sink:
ref:
apiVersion: eventing.knative.dev/v1alpha1
kind: KafkaSink
name: my-kafka-sink

配置事件接收对象:

# See docs for more details https://knative.dev/docs/eventing/sinks/kafka-sink/
apiVersion: eventing.knative.dev/v1alpha1
kind: KafkaSink
metadata:
name: my-kafka-sink
spec:
topic: mytopic
bootstrapServers: # Kafka cluster URL
- my-cluster-kafka-bootstrap.kafka:9092

相关内容

  • 没有找到相关文章

最新更新