带有GKE内部负载均衡器的Strimzi Kafka设置

gab6jxml  于 2022-10-07  发布在  Kafka
关注(0)|答案(1)|浏览(227)

遵循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后,它并没有起到作用。

vbopmzt1

vbopmzt11#

回答自己的问题。Strimzi似乎为每个代理提供了一个LB,这里是my-cluster-kafka-0。监听器配置可以为每个代理指定这些LB,如下所示https://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"

# ...

相关问题