基于 kubernetes 入口主机的 kafka

问题描述 投票:0回答:1

我正在 kubernetes 上使用 confluence 运算符来执行 confluence kafka。我正在尝试设置基于主机的对融合平台组件的访问,即架构注册表和其余代理。 Confluence 在 github 上有几个示例,但我发现它还不够全面。平台的入口控制器如下

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: ingress-with-sni
  annotations:
    nginx.ingress.kubernetes.io/ssl-passthrough: "true"
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    ingress.kubernetes.io/ssl-passthrough: "true"
    nginx.ingress.kubernetes.io/backend-protocol: HTTPS
spec:
  tls:
    - hosts:
        - kafka.$DOMAIN
        - b0.$DOMAIN
        - b1.$DOMAIN
        - b2.$DOMAIN
        - controlcenter.$DOMAIN
        - ksqldb.$DOMAIN
        - connect.$DOMAIN
  rules:
    - host: kafka.$DOMAIN
      http:
        paths:
          - backend:
              serviceName: kafka-bootstrap
              servicePort: 9092
    - host: b0.$DOMAIN
      http:
        paths:
          - backend:
              serviceName: kafka-0-internal
              servicePort: 9092
    - host: b1.$DOMAIN
      http:
        paths:
          - backend:
              serviceName: kafka-1-internal
              servicePort: 9092
    - host: b2.$DOMAIN
      http:
        paths:
          - backend:
              serviceName: kafka-2-internal
              servicePort: 9092
    - host: controlcenter.$DOMAIN
      http:
        paths:
          - backend:
              serviceName: controlcenter-0-internal
              servicePort: 9021
    - host: ksqldb.$DOMAIN
      http:
        paths:
          - backend:
              serviceName: ksqldb-bootstrap
              servicePort: 8088
    - host: connect.$DOMAIN
      http:
        paths:
          - backend:
              serviceName: connect-bootstrap
              servicePort: 8083

connect、ksqldb 和 kafka 有一个在支持的端点中表示的引导服务,我认为这是因为这些组件有多个副本,我认为如果我有一个架构注册表的副本,我可以添加:

- host: schemaregistry.$DOMAIN
      http:
        paths:
          - backend:
              serviceName: schemaregistry-0-internal
              servicePort: 8081

并将模式注册表添加到主机数组将打开模式注册表的入口。我想如果我想从外部访问它,也应该对其余代理执行相同的操作。我的说法正确吗?尝试了一下,我无法连接,但这可能是 VPN 设置...

让我想知道的一件事是各个代理的协议规范为“http”,我希望这是普通的“TCP”,因为 kafka 线路通过 TCP 运行。这就是我们强制 nginx 路由 TCP 的方式吗?好像不对。

kubernetes apache-kafka kubernetes-ingress nginx-ingress
1个回答
0
投票

剩下的代理问题实际上是一个 VPN 问题,UDP 和 TCP 路由在 https://kubernetes.github.io/ingress-nginx/user-guide/exusing-tcp-udp- 中得到了很好的解释服务/ 如评论中所述。

© www.soinside.com 2019 - 2024. All rights reserved.