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

时间:2018-10-22 12:01:26

标签: amazon-web-services kubernetes apache-kafka confluent

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

2 个答案:

答案 0 :(得分:0)

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

  

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

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

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

答案 1 :(得分:0)

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中运行的k8s中安装kafka。之间   合流操作员,bitnami-kafka和strimzi,仅配置了strimzi   kafka设置中的EXTERNAL到负载均衡器。

     

bitnami-kafka使用   无头服务,在k8s网络外部无用。   Confluent-operator配置为节点的IP,从而使其可访问   外部k8,但对于那些可以通过私有访问EC2实例的用户   IP。