【发布时间】:2021-05-11 10:44:41
【问题描述】:
我搜索了一个让 confluentic-kafka 与 ingress 一起工作的解决方案,我找到了这个 PR 进行了这样的实现,但是这个 PR 不被接受(但是 - 存储库所有者已删除并且 repo 不存在更多)。
因此,我尝试使用 manual 作为参考来实现一些非常简单的概念验证。
目前我已启用入口:
$ kubectl get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
kafka-ingress <none> kafka.local 80 40m
使用此应用的 yaml 文件:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kafka-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- host: kafka.local
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kafka-cp-kafka-rest
port:
number: 8082
kafka 是从helm-charts 安装的,我的 minikube 集群(在 linux 机器上)中的服务如下所示:
kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kafka-cp-control-center ClusterIP 10.111.250.7 <none> 9021/TCP 63m
kafka-cp-kafka ClusterIP 10.100.60.8 <none> 9092/TCP,5556/TCP 63m
kafka-cp-kafka-connect ClusterIP 10.99.105.18 <none> 8083/TCP,5556/TCP 63m
kafka-cp-kafka-headless ClusterIP None <none> 9092/TCP 63m
kafka-cp-kafka-rest ClusterIP 10.108.102.194 <none> 8082/TCP,5556/TCP 63m
kafka-cp-ksql-server ClusterIP 10.104.173.97 <none> 8088/TCP,5556/TCP 63m
kafka-cp-schema-registry ClusterIP 10.110.6.112 <none> 8081/TCP,5556/TCP 63m
kafka-cp-zookeeper ClusterIP 10.109.42.247 <none> 2181/TCP,5556/TCP 63m
kafka-cp-zookeeper-headless ClusterIP None <none> 2888/TCP,3888/TCP 63m
minio
ClusterIP 10.98.39.90 <none> 9000/TCP 63m
我已经在我的 /etc/hosts 中添加了一个从我的 minikube 地址到 kafka.local 主机的映射:
192.168.49.2 kafka.local
当使用这个 curl 调用时,我得到一个响应:
但是当我试图打电话时:
我明白了:
curl: (7) 连接kafka.local 80端口失败:连接被拒绝
如何使用主机通过入口调用 kafka-rest 服务?
【问题讨论】:
-
当你
curl http://10.108.102.194:8082时会发生什么? -
curl http://10.108.102.194:8082工作,没有检索到任何东西,但没有得到连接被拒绝或类似的东西...... -
能否在
Ingress定义中设置/topics而不是/路径,然后使用curl http://kafka.local/topics重试? -
不,这不是问题。但我想出了并发布了一个解决方案。无论如何感谢您的帮助
标签: apache-kafka kubernetes-helm kubernetes-ingress confluent-platform nginx-ingress