Strimzi Kafka设置与GKE内部负载均衡器



关注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在集群内工作,我也可以从集群外卷曲my-cluster-kafka-external-bootstrapaddessaa.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.

其似乎指示CCD_ 5正在将业务转发到CCD_。根据kubectl get svc -o yaml的输出,只有my-cluster-kafka-external-bootstrap被设置为GKE内部LB。由于我们的环境中有各种防火墙规则,我怀疑my-cluster-kafka-0也需要被设置为GKE内部LB,以便生产者工作。这似乎是问题所在吗?如何更新Strimzi以使两个LB都是内部的?谢谢

斯特里姆齐·卡夫卡在GKE私下访问它之前的一个相关问题。但在我关闭tls后,它并没有起到任何作用。

回答自己的问题。斯特里姆齐似乎为每个经纪人提供了一个LB,这就是这里的my-cluster-kafka-0。侦听器配置可以像这样指定每个代理LBhttps://strimzi.io/blog/2019/05/13/accessing-kafka-part-4/

# ...
listeners:
# ...
- name: external
port: 9094
type: loadbalancer
tls: true
authentication:
type: tls
configuration:
bootstrap:
annotations:
service.beta.kubernetes.io/openstack-internal-load-balancer: "true"
brokers:
- broker: 0
annotations:
service.beta.kubernetes.io/openstack-internal-load-balancer: "true"
- broker: 1
annotations:
service.beta.kubernetes.io/openstack-internal-load-balancer: "true"
- broker: 2
annotations:
service.beta.kubernetes.io/openstack-internal-load-balancer: "true"
# ...

最新更新