遵循https://strimzi.io/quickstarts/和https://strimzi.io/blog/2019/05/13/accessing-kafka-part-4/,将GKE内部负载均衡器与Strimzi配合使用。在添加了内部负载均衡器后,Strimzi提供了两个具有外部IP的负载均衡器服务。
Kafka % k get svc -n kafka
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-cluster-kafka-0 LoadBalancer xx.xxx.xx.xxx bb.bb.bbb.bb 9094:30473/TCP 3d1h
my-cluster-kafka-bootstrap ClusterIP xx.xxx.xx.xxx <none> 9091/TCP,9092/TCP,9093/TCP 25d
my-cluster-kafka-brokers ClusterIP None <none> 9090/TCP,9091/TCP,9092/TCP,9093/TCP 25d
my-cluster-kafka-external-bootstrap LoadBalancer xx.xxx.xx.xxx aa.aa.aaa.aa 9094:30002/TCP 3d1h
my-cluster-zookeeper-client ClusterIP xx.xxx.xx.xxx <none> 2181/TCP 25d
my-cluster-zookeeper-nodes ClusterIP None <none> 2181/TCP,2888/TCP,3888/TCP 25d
生产者/消费者流使用my-cluster-kafka-bootstrap
在集群内工作,我还可以从集群外部 curl my-cluster-kafka-external-bootstrap
地址aa.aa.aaa.aa:9094
。但是,在从集群外部生成aa.aa.aaa.aa:9094
之后,我的生产者记录了下面的错误。
Connection to node 0 (bb.bb.bbb.bb:9094) could not be established. Broker may not be available.
这似乎表明my-cluster-kafka-external-bootstrap
正在将业务转发到my-cluster-kafka-0
。并且每个kubectl get svc -o yaml
输出仅将my-cluster-kafka-external-bootstrap
设置为GKE内部LB。由于我们的环境中有各种防火墙规则,我怀疑my-cluster-kafka-0
也需要设置为GKE内部LB,以便生产者能够工作。这似乎就是问题所在吗?我如何更新Strimzi以使这两个LB都成为内部的?谢谢。
Strimzi kafka accessing it privately with in GKE之前的相关问题。但在我关闭TLS后,它并没有起到作用。
1条答案
按热度按时间vbopmzt11#
回答自己的问题。Strimzi似乎为每个代理提供了一个LB,这里是
my-cluster-kafka-0
。监听器配置可以为每个代理指定这些LB,如下所示https://strimzi.io/blog/2019/05/13/accessing-kafka-part-4/