Helm部署Bitnami Kafka集群外部访问时Broker返回K8s内部域名问题
问题原因
你遇到的广播内部域名的问题,是因为Bitnami Kafka Helm Chart的外部访问自动配置没有完全开启,同时部分配置项和副本数不匹配,缺失的配置项如下:
- 你的
replicaCount设置为3,但externalAccess.service.loadBalancerIPs仅配置了2个IP,需要和副本数保持一致,每个Broker对应一个独立的外部LB IP - 未开启外部地址自动发现配置,Chart不会自动生成外部广播地址替换默认的内部域名
- 未显式指定外部监听器的广播协议,默认会优先使用内部服务域名作为广播地址
补充后的完整配置示例
replicaCount: 3 service: type: LoadBalancer loadBalancerIP: 192.168.99.110 externalTrafficPolicy: Local # 避免源地址NAT导致访问异常 nodePorts: client: 25100 external: 25101 externalAccess: enabled: true autoDiscovery: enabled: true # 开启外部地址自动发现,自动生成广播地址 service: type: LoadBalancer port: 9094 nodePorts: - 25102 # 3个副本对应3个nodePort,补充第3个 - 25103 - 25104 loadBalancerIPs: - 192.168.99.120 # 3个副本对应3个LB IP,补充第3个 - 192.168.99.121 - 192.168.99.122 kafka: listeners: external: protocol: PLAINTEXT # 明文外部访问配置,启用TLS的话改为SSL name: EXTERNAL
验证方式
升级Helm Release生效后,进入任意Broker Pod执行以下命令,确认advertised.listeners参数已经变为你配置的外部IP+端口:
kafka-configs.sh --describe --entity-type brokers --entity-name 0 --bootstrap-server localhost:9092
外部客户端连接时,bootstrap.servers配置为三个LB IP加9094端口即可正常访问。
内容的提问来源于stack exchange,提问作者rura6502
相关产品推荐
相关产品推荐

