Kafka无法对外暴露端口的相关解决方案

背景:客户的kafka组件部署时没有对外暴露端口,导致客户不能通过Kafka消费数据。
解决办法
1.检查是否kafka对外有端口露出

[root@k8s-master-01 ~]# kubectl get  svc  -A | grep kafka
default               kafka                                                NodePort       10.107.226.247          9092:30092/TCP                                              125d
default               kafka-exporter-prometheus-kafka-exporter             ClusterIP      10.111.246.55            9308/TCP                                                    125d
default               kafka-headless                                       ClusterIP      None                    9092/TCP,9093/TCP                                           125d

2.修改镜像仓库
vim install/servers/kafka/kafka/values.yaml

 image:
      registry: docker.io
      repository: bitnami/kubectl
      tag: 1.19.15-debian-10-r39

3.添加如下kafka脚本配置

此段需覆盖原有配置项

      helm $status -n ${KAFKA_NAMESPACE} \
    --set zookeeper.enabled=false \
    --set replicaCount=${KAFKA_REPLICA} \
    --set persistence.storageClass="kafka-storage" \
    --set service.type=NodePort \
    --set service.nodePorts.client="30092" \
    --set externalAccess.enabled=true \
    --set externalAccess.service.type=NodePort \
    --set externalAccess.autoDiscovery.enabled=true \
    --set rbac.create=true \
    --set externalAccess.service.nodePorts[0]="30190" \
    --set externalAccess.service.nodePorts[1]="30191" \
    --set externalAccess.service.nodePorts[2]="30192" \
    --set externalZookeeper.servers=zookeeper.${KAFKA_NAMESPACE}.svc.cluster.local \
    --set ${helm_set_string} \
    -f $CMD/servers/kafka/kafka/values.yaml kafka $CMD/servers/kafka/kafka/
}

注:此段需覆盖原有配置项
4.执行kafka更新
bash install/main_install.sh update kafka
5.检查

[root@k8s-master-01 ~]# kubectl get svc -A | grep kafka
default               kafka                                                NodePort    10.109.166.120          9092:30092/TCP,9094:31243/TCP                                8h
default               kafka-0-external                                     NodePort    10.103.113.68            9094:30190/TCP                                               150m
default               kafka-1-external                                     NodePort    10.111.216.115          9094:30191/TCP                                               150m
default               kafka-2-external                                     NodePort    10.108.65.222            9094:30192/TCP                                               150m
default               kafka-headless                                       ClusterIP   None                    9092/TCP,9093/TCP                                            8h

Kafka无法对外暴露端口的相关解决方案_第1张图片


备注:
经过本地测试,此方法仅可保留kafka历史存量数据,对于新进入的数据无法存留,所以,请选择数据流量少的时间进行更新,更新的时间大概约2分钟左右。

 

你可能感兴趣的:(Kafka,Kubernetes,大数据)