Kafka Deploy
Deploy
建一個namespace, 名子取kafka, namespace不要設quota, quota繼承workspace的 
本地k8s config的namespace指到kafka
去harbor抓kafka chart, 然後解壓縮 (tar xvf FileName.tar)
https://harbor.arfa.wise-paas.com/harbor/projects/68/helm-charts/kafka/versions/1.1.5
編輯deploy.sh, 下圖圈紅線的地方是已經修改過的

在chart根目錄執行
$ ./deploy.sh kafkatest看到下面這個hint, 代表佈成功

接著一直反覆執行 kubectl get all, statefulset都佈完成代表所有資源已成功運行

如果遇到這個錯誤, 代表FIRST_LISTENER_PORT已經被占用
此時只要去deploy.sh改成其他數字就好
驗證
登入management portal建個topic
平台開的測試環境IP是172.21.92.173, 下kubectl get all找到kafkatest-kafka-manager (NodePort)的port為32556, 接著在瀏覽器訪問172.21.92.173:32556
密碼的話請下指令: helm status kafkatest, 再用提示的指令拿到帳密
登入portal後, 創個topic 
接著開啟Conductor
要先組一個url, 規則為$KFK_BROKER_POD_NAME.$KFK_BROKER_HEADLESS_SVC_NAME.$NAMESPACE.svc.cluster.local
以這篇範例來說, 就是
kafkatest-0.kafkatest-kafka-headless.kafka.svc.cluster.local
接著去你電腦的hosts file加上一行
172.21.92.173 kafkatest-0.kafkatest-kafka-headless.kafka.svc.cluster.local

接著在Conductor設定zk和kfk broker, external ip請下kubectl get all去找, Additional Properties用下面這段

接著就可以測試producer/consumer了

Prometheus Test
要測Prometheus要先請平台的人在站點安裝Prometheus
Prometheus會自動找尋服務, 所以不須其他設定, 就可以看到像下面這張圖
接著可以下查詢語法, 取出各項量測指標, 這裡參考Kenny投影片, 查詢特定topic的每秒訊息量統計
sum(kafka_server_brokertopicmetrics_messagesinpersec_count{job="kafkatest"}) by (topic)
使用Kafka Broker Container內建工具
這裡是補充Kenny投影片裡面/usr/bin/kafka-console-producer 跟 /usr/bin/kafka-console-consumer 操作細節
進去container
把container的kafka-run-class複製到本地
把本地的修改完的kafka-run-class複製回container
把kafka-run-class下面這三行註解掉
把producer.properties複製進container
把consumer.properties複製進container
把kafka_client_jaas.conf複製進container
producer發送
consumer接收
補充 - 壓力測試工具
Last updated
Was this helpful?