kafka暴露给k8s集群外部访问

背景

<略>

环境

  • Kubernetes: v1.18.x
  • Kafka: 3.5.1
  • kafka副本数: 3

实现方式

下载chart

# wget https://charts.bitnami.com/bitnami/kafka-25.3.5.tgz
# tar axvf kafka-25.3.5.tgz

编辑values.yaml 内容如下:

externalAccess.enabled=true
externalAccess.controller.service.type=NodePort
externalAccess.controller.service.nodeport[0]='19092'
externalAccess.controller.service.nodeport[1]='29092'
externalAccess.controller.service.nodeport[2]='39092'
externalAccess.controller.service.externalIPs[0]='172.16.0.20'
externalAccess.controller.service.externalIPs[1]='172.16.0.21'
externalAccess.controller.service.externalIPs[2]='172.16.0.22'
固定NodePort可能会导致服务(Containerd),建议自动分配。

安装kakfa应用

# helm install kafka kafka

测试

$  kafka-console-producer.sh --broker-list 172.16.0.20:19092,172.16.0.21:29092,172.16.0.22:39092 --topic test

$ kafka-console-consumer.sh --bootstrap-server 172.16.0.20:19092,172.16.0.21:29092,172.16.0.22:39092 \
            --topic test \
            --from-beginning

参考引用