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


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

    [root@k8s-master-01 ~]# kubectl get  svc  -A | grep kafka
    default               kafka                                                NodePort       10.107.226.247   <none>        9092:30092/TCP                                              125d
    default               kafka-exporter-prometheus-kafka-exporter             ClusterIP      10.111.246.55    <none>        9308/TCP                                                    125d
    default               kafka-headless                                       ClusterIP      None             <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   <none>        9092:30092/TCP,9094:31243/TCP                                8h
    default               kafka-0-external                                     NodePort    10.103.113.68    <none>        9094:30190/TCP                                               150m
    default               kafka-1-external                                     NodePort    10.111.216.115   <none>        9094:30191/TCP                                               150m
    default               kafka-2-external                                     NodePort    10.108.65.222    <none>        9094:30192/TCP                                               150m
    default               kafka-headless                                       ClusterIP   None             <none>        9092/TCP,9093/TCP                                            8h


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

     

  • 相关阅读:
    【深度学习实验】前馈神经网络(final):自定义鸢尾花分类前馈神经网络模型并进行训练及评价
    刷爆力扣之构建乘积数组
    SQL Injection
    2022-09-14 C++并发编程(二十二)
    一篇文章搞懂:词法作用域、动态作用域、回调函数及闭包
    阿里内部 Java 面试题泄露:分布式 + 高并发 +Spring boot,扛住 HR 拷问
    30分钟使用百度EasyDL完成车辆分类识别
    Metabase学习教程:数据分析-1
    4. 3 配置Mysql与注册登录模块(下)
    MySQL 备份和恢复
  • 原文地址:https://blog.csdn.net/ATYtian/article/details/125626560