繁体   English   中英

如何从外部连接到Kubernetes中的Kafka?

[英]How to connect to Kafka in Kubernetes from outside?

面临的挑战是要创建一个Kafka生产者,该生产者要从该集群外部连接到位于Kubernetes集群中的Kafka集群。 我们有几个RDBMS数据库位于内部,我们想直接将数据流传输到AWS上位于Kubernetes中的Kafka。 我们已经尝试了一些方法并部署了Confluent开源平台,但是到目前为止没有任何效果。 有没有人对这个问题有明确的答案?

您可以看看在Kubernetes内部部署Kafka Connect 由于您要从各种RDMBS数据库复制数据,因此需要设置源连接器

源连接器提取整个数据库,并将流表更新更新到Kafka主题。 它还可以将所有应用程序服务器中的指标收集到Kafka主题中,使数据可用于低延迟的流处理。

根据您的源数据库,您必须配置相应的连接器

如果您不熟悉Kafka Connect,那么这篇文章可能会非常有帮助,因为它解释了关键概念。

Kafka客户端需要连接到特定节点才能生成或使用消息。

kafka协议可以连接到任何节点以获取元数据。 然后,客户端连接到一个特定的节点,该节点已被选为该客户端要生产/使用的分区的领导者。

每个kafka吊舱必须可单独访问,因此每个吊舱需要一个L4负载平衡器。 可以在kafka配置中设置播发的侦听器配置,以为内部和外部客户端播发不同的IP /主机名。 配置ADVERTISED_LISTENERS EXTERNAL以使用负载平衡器,并配置INTERNAL以使用Pod IP。 内部和外部端口必须不同。

结帐https://strimzi.io/https://bitnami.com/stack/kafkahttps://github.com/confluentinc/cp-helm-charts

更新:

尝试在运行于AWS EC2的k8中安装kafka。 在合流操作员,bitnami-kafka和strimzi之间,只有strimzi在kafka设置中将EXTERNAL配置为负载均衡器。

bitnami-kafka使用了无头服务,这在k8s网络之外没有用。 Confluent-operator配置为节点的IP,这使得它可以在k8s外部访问,但是可以通过私有IP到达EC2实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM