【问题标题】:How to enable ingress in minikube cluster for kafka-confluent如何在 minikube 集群中为 kafka-confluent 启用入口
【发布时间】: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 调用时,我得到一个响应:

卷曲http://10.108.102.194:8082/topics

但是当我试图打电话时:

卷曲http://kafka.local/topics

我明白了:

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


【解决方案1】:

只有当我在没有驱动程序的情况下启动我的 minikube(在机器的存储上而不是作为 VM 上创建)并指定 9.x 入口网络 ip 时它才有效(为了得到它,我运行了:ip a) :

minikube start --driver=none --apiserver-ips <9.x.x.x>

我做的另一件事是删除:

注释: nginx.ingress.kubernetes.io/rewrite-target: /$1

来自我的资源 yaml。

希望它可以帮助其他人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 2023-04-07
    • 2018-04-20
    • 1970-01-01
    • 2018-07-23
    • 2018-08-29
    • 2019-01-05
    相关资源
    最近更新 更多