• 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分钟左右。

     

  • 相关阅读:
    SpringSecurity - 定制登录和注销登录
    如何将多模态数据融入到BERT架构中-多模态BERT的两类预训练任务
    已解决 Bug——SyntaxError: Unexpected token o in JSON at position 1问题
    MapBox GL JS 与OpenLayers,Leaflet,maptalk等前端众多地图框架对比
    python调用git出错:ImportError: Failed to initialize: Bad git executable.
    疫情下更合适的开发模式
    基于vue和nodejs的项目知识信息分享平台
    python自动化测试(二):xpath获取元素
    LeetCode_前缀树_648.单词替换
    pycharm报错提示:无法加载文件\venv\Scripts\activate.ps1,因为在此系统上禁止运行脚本
  • 原文地址:https://blog.csdn.net/ATYtian/article/details/125626560