helm kafka集群外访问

本文主要记录了如何用helm安装incubator/kafka,配置集群外访问。

下载包

1
helm fetch incubator/kafka

修改配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# vim templates/statefulset.yaml 
在env:下添加:
- name: NODE_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
status.hostIP表示获取到的是宿主机IP

# vim values.yaml
configurationOverrides:
"confluent.support.metrics.enable": false
"offsets.topic.replication.factor": 3
"auto.leader.rebalance.enable": true
"advertised.listeners": EXTERNAL://${NODE_IP}:$((31190 + ${KAFKA_BROKER_ID}))
"listener.security.protocol.map": PLAINTEXT:PLAINTEXT,EXTERNAL:PLAINTEXT
${NODE_IP}:原本写死为宿主机的IP,改成${NODE_IP}会自动获取宿主机IP。

启动kafka

1
helm install -n kafka --namespace devops ./kafka

查看启动状况

1
2
# kubectl get pod -n devops
# kubectl get svc -n devops

登录容器测试

1
2
3
4
5
6
# kubectl exec -ti kafka-0 -n devops -- bash
# cd /usr/bin
生产数据
# kafka-console-producer --broker-list kafka:9092 --topic test
消费数据
# kafka-console-consumer --bootstrap-server kafka:9092 --topic test

集群外连接测试

1
2
3
4
5
6
生产数据
# bin/kafka-console-producer.sh --broker-list xxx.xxx.xxx.xxx:31090 --topic test
消费数据
# bin/kafka-console-consumer.sh --bootstrap-server xxx.xxx.xxx.xxx:31090 --from-beginning --topic test

这里的xxx.xxx.xxx.xxx换成宿主机的IP
ulysses wechat
订阅+