You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

跨双EKS集群Redpanda数据复制:MirrorMaker配置参数取值疑问

问题描述

我已经在us-east-1和us-east-2区域的两个EKS集群中部署了Redpanda,且Redpanda Broker Pod均正常运行。现在需要实现两个Redpanda集群间的数据复制,计划在其中一个EKS集群部署Kafka MirrorMaker完成该任务,但目前在建立Broker连接时遇到问题。我的MirrorMaker配置文件内容如下:

#Primary and Secondary Kafka Cluster Names
clusters=, 

#Comma Saperated list of bootstrap servers for source kafka cluster
.bootstrap.servers=:9092

#Comma Saperated list of bootstrap servers for target kafka cluster
.bootstrap.servers=:9092

我不确定.bootstrap.servers参数应填写Redpanda Broker的Pod IP还是节点IP?

解决方案

不要填写Pod IP或节点IP,应该使用Redpanda集群对应的Kubernetes服务(Service)地址,原因及具体操作如下:

  • Pod IP不可用的原因:Pod IP是Kubernetes集群内部的临时地址,当Broker Pod重启或被调度到其他节点时,IP会发生变化,直接使用Pod IP会导致MirrorMaker频繁断开连接,无法稳定运行。
  • 节点IP不合适的原因:节点IP虽然相对稳定,但跨区域EKS集群访问节点IP需要额外配置VPC peering或公网访问,且无法利用Redpanda的集群发现机制,只能访问单个Broker,无法实现集群级别的高可用连接。

正确配置步骤

  1. 为每个Redpanda集群创建对应的Kubernetes服务:
    • 若MirrorMaker和源Redpanda在同一个EKS集群,使用ClusterIP服务即可;
    • 若跨区域访问目标Redpanda集群,建议创建LoadBalancer服务,确保跨区域网络能访问到Redpanda集群。
  2. 修改MirrorMaker配置文件,填写服务的DNS名称+端口:
    #Primary and Secondary Kafka Cluster Names
    clusters=source-cluster, target-cluster
    
    #Source Redpanda cluster bootstrap servers
    source-cluster.bootstrap.servers=redpanda-source-service.us-east-1.svc.cluster.local:9092
    
    #Target Redpanda cluster bootstrap servers
    target-cluster.bootstrap.servers=redpanda-target-xxxxxx.us-east-2.elb.amazonaws.com:9092
    
    注:redpanda-source-service是同集群内Redpanda的ClusterIP服务名称,redpanda-target-xxxxxx.us-east-2.elb.amazonaws.com是跨区域Redpanda的LoadBalancer服务的公网DNS地址。

额外注意事项

  • 确保两个EKS集群之间的网络连通:配置VPC peering,或者在安全组中开放9092端口的访问权限;
  • Redpanda完全兼容Kafka协议,MirrorMaker的配置逻辑与对接普通Kafka集群一致,核心是使用稳定的服务地址而非临时的Pod/节点IP。

内容的提问来源于stack exchange,提问作者Dhruvin Soni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 17:05:12