在BM站點啟動多個LB Broker並搭配域名
只在BM用這種方式, 公有雲sa, hz不適用本文
Last updated
Was this helpful?
只在BM用這種方式, 公有雲sa, hz不適用本文
Last updated
Was this helpful?
希望讓kafka cluster外的client能用一組固定的host去訪問kafka cluster, 相同host不同port
ex.
且不要像NodePort那樣, 還要在每個client主機上的hosts手動加上resolve record
目前是要找陳磊
要跟他說, 請把這3個要暴露的url
kafka.bm.wise-paas.com.cn:19092
kafka.bm.wise-paas.com.cn:19093
kafka.bm.wise-paas.com.cn:19094
映射到下面這3個LoadBalancer service
roykfk-0-external
roykfk-1-external
roykfk-2-external
要跟他確認LB EXTERNAL-IP/Port的組合為何, 這樣才能在我們的deploy.sh陣列裡配置正確
ex. 是將172.21.92.212:19092映射到kafka.bm.wise-paas.com.cn:19092, 以此類推
注意, 是映射LB svc的EXTERNAL-IP和Port, 不是LB svc的nodePort喔
export SERVICE_TYPE="LoadBalancer"
bm站點是私有雲的關係, 要映射域名只能用LB, 其他站點不一定
export FIRST_LISTENER_PORT=19092
起始的port要跟暴露的第一個port相同, chart裡有邏輯會跑迴圈對每個broker設定
export LB_EXTERNAL_ADVERTISED_LISTENERS={"kafka.bm.wise-paas.com.cn:19092"\,"kafka.bm.wise-paas.com.cn:19093"\,"kafka.bm.wise-paas.com.cn:19094"}
這個值會在內部chart做陣列處理, 將每個url分別帶進broker裡
export EXTERNAL_LOAD_BALANCER_IP={"172.21.92.212"\,"172.21.92.213"\,"172.21.92.214"}
這個是LoadBalancer EXTERNAL-IP, 此順序必須跟平台那邊映射域名的ip:port組合相同
平台的人幫忙做的映射可能是172.21.92.212:19092,172.21.92.213:19093,172.21.92.214:19094
那此陣列第一個元素就不能是172.21.92.213, 否則會組成172.21.92.213:9092
但Conductor就只能測到如此而已, 因為multibroker要收費, 沒辦法測收發訊息
用這段code測負載平衡時, 請配合MP monitor觀察pod networking和disk用量是否有平均分配到多個broker
為了能實現相同host不同port的機制, 有去改原本chart裡的template和values
主要是想辦法讓每個broker的advertised.listener都吃到正確的EXTERNAL URL
原本的chart提供的方法是不同host相同port, 跟我們需求不同 (跟cloud kafka一樣)