我正尝试在Azure托管的kubernetes集群上设置多代理kafka。我有一个经纪人设置工作。对于多代理设置,目前我有一个管理kafka服务的zookeeper节点(3)的集合。我将kafka群集部署为复制因子为3的复制控制器。即3个经纪人。我如何使用Zookeeper注册三个经纪人,使他们在Zookeeper中注册不同的IP地址?如何为kubernetes上的Kafka multi broker设置指定公布的侦听器并在集群外公开集群?
在部署服务后启动我的复制控制器,并在我的replication-controller yaml文件中使用群集IP来指定两个advertised.listeners,一个用于SSL,另一个用于PLAINTEXT。但是,在这种情况下,所有代理都使用相同的IP注册并写入副本失败。我不想将每个代理作为单独的复制控制器/ pod和服务部署,因为扩展成为问题。我真的很感激任何想法/想法。
编辑1:
我还试图集群暴露到另一个VPC云。我必须为我使用advertised.listeners的客户端公开SSL和PLAINTEXT端口。如果我使用复制因子为3的statefulset,并让kubernetes将主机名的标准主机名显示为主机名,则无法从外部客户端解析这些主机名。我得到这个工作的唯一方法是使用/公开与每个代理对应的外部服务。但是,这并没有规模。
你是否曾经能够解决这个问题? –
嗨迈克,我还没有解决卡夫卡的“易扩展性”问题。我正在使用statefulset(对于一个perisistent卷)中的每个代理,并将广告主机作为Ingress-IP-address(到我的kubernetes集群):port,为不同的代理提供不同的端口。这很难扩展,因为需要为更多经纪商开放新的端口,并且需要相应地更改broker.yaml中的广告端口。 – Annu