【问题标题】:NGINX Ingress Controller: Can I terminate TLS and pass non-http traffic?NGINX 入口控制器:我可以终止 TLS 并传递非 http 流量吗?
【发布时间】:2019-01-21 21:53:08
【问题描述】:

我正在尝试在 Kubernetes 中部署 DNP3 服务器(一种工业协议)。 DNP3 使用 TCP 通信,但它是一个有状态协议。我目前正在部署入口控制器配置。

我知道入口控制器是为 http/https 流量而设计的,但我想尽可能使用它们并利用一些固有功能(例如双向 TLS、白名单等)。 NGINX 入口控制器是否要求将传入流量格式化为 http 流量(例如,具有标头等)?如果它接收到随机的 TCP(非 http)流量,它可以简单地将流量传递给后端服务吗?

我尝试使用的注释包括:

ingress.kubernetes.io/auth-tls-secret: default/client-secret
ingress.kubernetes.io/auth-tls-verify-depth: "3"
kubernetes.io/ingress.class: nginx-private
nginx.ingress.kubernetes.io/auth-tls-pass-certificate-to-upstream: "true"
nginx.ingress.kubernetes.io/auth-tls-verify-client: "on"
nginx.org/lb-method: ip_hash

几点说明:

  • 我意识到 auth-tls-pass-certificate 注释会添加一个标题。我希望我可以从标头中读取证书信息,然后从消息中删除标头/其他 https 数据。
  • 我希望 ot 使用 ip_hash lb 方法来允许应用程序是有状态的(具有一致 IP 地址的客户端始终路由到同一个后端服务器)。

【问题讨论】:

    标签: kubernetes load-balancing kubernetes-ingress nginx-ingress


    【解决方案1】:

    不幸的是,根据我发现的信息,没有为 TCP 服务提供 Ingress 的好方法,而且似乎没有计划在最近的功能中添加它。其实这还是 GitHub 上的open issue

    有一些方法可以使用 StackOverflow question. 中描述的 ConfigMaps 将 TCP 或 UDP 流量映射到 Kubernetes 服务

    【讨论】:

      猜你喜欢
      • 2021-09-28
      • 2018-11-15
      • 1970-01-01
      • 2020-06-02
      • 2016-08-01
      • 2021-04-08
      • 2019-09-14
      • 2018-03-25
      • 1970-01-01
      相关资源
      最近更新 更多