如何从外面连接到Kubernetes的Kafka?

问题描述 投票:1回答:2

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

amazon-web-services kubernetes apache-kafka confluent
2个回答
0
投票

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

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

根据您的源数据库,您必须配置相应的connectors

如果您不熟悉Kafka Connect,this article可能会非常有用,因为它解释了关键概念。


0
投票

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

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

每个kafka pod都必须是可单独访问的,因此每个pod需要一个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中运行的k8s中安装kafka。在汇合运算符,bitnami-kafka和strimzi之间,只有strimzi在kafka设置中将EXTERNAL配置到负载均衡器。

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

© www.soinside.com 2019 - 2024. All rights reserved.