如何在 kafka-confluent 的 minikube 集群中启用入口
How to enable ingress in minikube cluster for kafka-confluent
我搜索了一个让 confluentic-kafka 与入口一起工作的解决方案,我找到了这个 PR 做了这样的实现,但是这个 PR 没有被接受(但是 - 存储库所有者删除并且回购不存在了)。
因此,我尝试使用此 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: /
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) Failed to connect to kafka.local port 80: Connection refused
如何使用主机通过入口调用 kafka-rest 服务?
只有当我启动我的 minikube 时没有驱动程序(在机器的存储上创建而不是作为 VM)并指定 9.x 入口网络 ip(为了得到它我 运行: ip a
):
minikube start --driver=none --apiserver-ips <9.x.x.x>
我做的另一件事是删除:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
来自我的资源 yaml。
希望能帮到别人。
我搜索了一个让 confluentic-kafka 与入口一起工作的解决方案,我找到了这个 PR 做了这样的实现,但是这个 PR 没有被接受(但是 - 存储库所有者删除并且回购不存在了)。
因此,我尝试使用此 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: /
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) Failed to connect to kafka.local port 80: Connection refused
如何使用主机通过入口调用 kafka-rest 服务?
只有当我启动我的 minikube 时没有驱动程序(在机器的存储上创建而不是作为 VM)并指定 9.x 入口网络 ip(为了得到它我 运行: ip a
):
minikube start --driver=none --apiserver-ips <9.x.x.x>
我做的另一件事是删除:
annotations: nginx.ingress.kubernetes.io/rewrite-target: /
来自我的资源 yaml。
希望能帮到别人。