我正嘗試在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