首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从码头主机外产生卡夫卡经纪人在集装箱内运行?

如何从码头主机外产生卡夫卡经纪人在集装箱内运行?
EN

Stack Overflow用户
提问于 2018-07-02 12:42:25
回答 1查看 359关注 0票数 2

我正在努力生产卡夫卡经纪人,它正在库伯奈特推出的集装箱内运行。我在和KAFKA_ADVERTISED_LISTENERESKAFKA_LISTERNERS一起玩。

我尝试设置这两个env变量KAFKA_ADVERTISED_LISTENERES = PLAINTEXT://<host-ip>:9092KAFKA_LISTERNERS = PLAINTEXT://0.0.0.0:9092,并使用docker运行。我可以从主机外的一个应用程序中产生。

但是在Kubernetes.yml文件中设置这两个env变量,我会得到No broker list available异常。

我在这里错过了什么?

更新:

kafka-pod.yaml:

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  namespace: casb-deployment
  name: kafkaservice
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: kafkaservice
    spec:
      hostname: kafkaservice
      #hostNetwork: true  # to access docker out side of host container
      containers:
      - name: kafkaservice
        imagePullPolicy: IfNotPresent
        image: wurstmeister/kafka:1.1.0
        env:  # for production 
         - name: KAFKA_ADVERTISED_LISTENERES
           value: "PLAINTEXT://<host-ip>:9092"
         - name: KAFKA_LISTERNERS
           value: "PLAINTEXT://0.0.0.0:9092"
         - name: KAFKA_CREATE_TOPICS
           value: "Topic1:1:1,Topic2:1:1"
         - name: KAFKA_MESSAGE_TIMESTAMP_TYPE
           value: "LogAppendTime"
         - name: KAFKA_LOG_MESSAGE_TIMESTAMP_TYPE
           value: "LogAppendTime"   
         - name: KAFKA_ZOOKEEPER_CONNECT
           value: "zookeeper:2181"
        ports: 
        - name: port9092
          containerPort: 9092

---

apiVersion: v1
kind: Service
metadata:
  namespace: casb-deployment
  name: kafkaservice 
  labels:
    app: kafkaservice
spec:
  selector:
    app: kafkaservice
  ports:
  - name: port9092
    port: 9092
    targetPort: 9092
    protocol: TCP
EN

回答 1

Stack Overflow用户

发布于 2018-07-02 20:04:45

我假设您有一个Kubernetes服务,它的选择器将入口流链接到您的Kafka代理,即公开nodePort (而不是clusterIP)。https://kubernetes.io/docs/concepts/services-networking/service/

因此,库伯奈特舱应该可以通过localhost:<nodePort>到达。

您还可以在Kubernetes集群前面设置一个负载均衡器,然后您只需公开k8s荚,即允许外部入口。

然后,下一步就是利用一些DNS记录,这样基于坞组合的容器产生的出站请求将转到DNS,然后通过负载均衡器返回到Kubernetes集群。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51136526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档