我对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
我已经做了一个类似的项目,但是Kafka集群在库伯内特斯内部运行,生产者和消费者在外面。
由于可以通过IP地址联系Kafka代理,我只是使用Python库来生成和使用Kafka主题的数据。
然后,您只需将生产者和消费者应用程序容器化:)