【问题标题】:How to reach kafka with a producer situated in minikube如何与位于 minikube 的生产者联系到 kafka
【发布时间】:2019-12-27 14:09:23
【问题描述】:

所以,我没有想法。 我会在我的 localpc 中使用位于 minikube 上的生产者(用 python 和 kafka-python 库编写)到达一个 kafka 集群。

生产者代码是:

byte_log = str.encode(f"many stuff")
try:
    producer = KafkaProducer(bootstrap_servers=['local-ip:9092'])  
    future = producer.send('flask.logs', byte_log)
    record_metadata = future.get(timeout=10)
    print(f"record_metadata.topic {record_metadata.topic}")
    print(f"record_metadata.partition {record_metadata.partition} ")
    print(f"record_metadata.offset {record_metadata.offset}")

except Exception as e:
    print("[KAFKA-P] bad post")
    raise e

我尝试了另一种方法来创建生产者并发送消息:

producer = KafkaProducer(bootstrap_servers=['0.0.0.0:9092'], value_serializer=lambda v: json.dumps(v).encode('utf-8'))

并发送 future = producer.send('flask.logs', json.dumps(log))

两个代码的错误是一样的:

kafka.errors.KafkaTimeoutError: KafkaTimeoutError: Timeout after waiting for 10 secs.

另外生产者挂载的容器时区相同,那么时间戳没有问题(可能)。

为了到达 kafka,我创建了一个端点和一个服务,用于映射 localhost 端口 9092 和 pod 的端口 9092 服务部署是(注意没有选择器标签):

 kind: Service
 apiVersion: v1
 metadata:
 name: local-ip 
 spec:
 ports:
 - protocol: TCP
   port: 9092 
   targetPort: 9092 
 type: ClusterIP

端点是:

kind: Endpoints
apiVersion: v1
metadata:
 name: local-ip
subsets:
  - addresses:
   - ip: 192.168.99.101  
ports:
 - port: 9092    

可能是 Kube-DNS 的问题? 如果是,我怎样才能找到它??

【问题讨论】:

    标签: python apache-kafka minikube


    【解决方案1】:

    据我了解,您使用Virtualbox 作为您的管理程序。我做了一个快速测试,看起来地址 192.168.99.101 只能从 VM 获得。相反,您应该在此处使用主机的 IP 地址。它也应该可以从您的VirtualBox VM 访问,因为它默认有两个网络适配器:NAThost-only。您还可以尝试从 VM 中 ping 以确保它确实可用。

    【讨论】:

      【解决方案2】:

      如果 Kafka 在主机上运行,​​为它创建 k8s 资源不会有任何好处。

      您需要提供主机 IP 作为引导服务器并配置 Kafka server.properties 以通过advertised.listeners 列出该地址;并且0.0.0.0 不是有效的可路由 IP

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-07
        相关资源
        最近更新 更多