使用 Kubernetes Ingress 公开 Pulsar 代理

Art*_*hur 1 ssl apache-pulsar kubernetes-ingress nginx-ingress

我使用 helm 部署了 pulsar,但没有激活 tls。现在我想使用 nginx 入口来公开它,而不是第一次使用 tls。它不起作用,我在客户端得到这个:

Got exception TooLongFrameException : Adjusted frame length exceeds 5253120: 1213486164 - discarded
Run Code Online (Sandbox Code Playgroud)

是否缺少特定注释?

第二次,我想使用 ssl 证书以安全的方式公开它。Ingress 可以与 pulsar+ssl 协议一起使用吗?我还需要具体注释吗?

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: pulsar
  namespace: default
spec:
  rules:
  - host: pulsar.myurl.com
    http:
      paths:
      - backend:
          serviceName: pulsar-proxy
          servicePort: 6650
  tls:
  - hosts:
    - pulsar.myurl.com
    secretName: pulsar.myurl.com.crt
Run Code Online (Sandbox Code Playgroud)

小智 5

Kubernetes 入口用于 HTTP 流量。Pulsar 协议(端口 6650)是二进制协议,而不是 HTTP。您需要使用 TCP LoadBalancer 服务(例如 AWS 中的网络负载均衡器)公开它。

如果您正在运行多个 Pulsar 代理,则应使用 Pulsar 代理进行外部连接,因为 Pulsar 握手假定客户端可以连接到各个代理。Pulsar 代理会为您处理这种复杂性。有关 Pulsar 代理的更多详细信息,请参阅此页面。您仍然需要使用 TCP LoadBalancer 服务来公开代理。