提问者:小点点

从库伯内特斯集群访问外部中央kafka消息代理


我对Kafka和kubernetes世界非常陌生,并试图在上面做一个项目。我的要求可能听起来很愚蠢,但有点像这样:

Kafka生产者和kafka消费者只部署在本地Minikube集群中。Kafka代理是一个中央代理,不存在于minikube集群中。我搜索了谷歌,知道如何连接Minikube和Kafka集群。但是我不知道如何从生产者(部署在kubernetes中)向这个外部Kafka集群发送消息,以及如何使用它,因为消费者也在Minikube中。有人能帮我吗?

编辑:

这是我对应的K8s配置。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: kafka-producer-deployment
  labels:
    app: kafka-producer
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kafka-producer
  template:
    metadata:
      labels:
        app: kafka-producer
    spec:
      containers:
        - name: kafka-producer
          image: chamilaliyanage/keda-demo-kafka-producer
          imagePullPolicy: Never
          ports:
            - containerPort: 8090
          env:
            - name: KAFKA_BOOTSTRAP_SERVER
              value: "localhost:9092"
            - name: KAFKA_ORDERS_TOPIC
              value: "FSMTest"
---
apiVersion: v1
kind: Service
metadata:
  name: kafka-producer-svc
  labels:
    app: kafka-producer
spec:
  type: NodePort
  ports:
    - port: 8090
      targetPort: 8090
      nodePort: 32000
      protocol: TCP
      name: http
  selector:
    app: kafka-producer

共1个答案

匿名用户

我已经做了一个类似的项目,但是Kafka集群在库伯内特斯内部运行,生产者和消费者在外面。

由于可以通过IP地址联系Kafka代理,我只是使用Python库来生成和使用Kafka主题的数据。

然后,您只需将生产者和消费者应用程序容器化:)