我一直在考虑为裸机 Kubernetes 集群设置 Ingress 控制器。我开始研究 Ingress 控制器,但这些似乎只适用于可通过端口 80 或 443 访问的 HTTP 服务。如果您需要在任意端口上公开 TCP 或 UDP 服务,似乎可以使用 Nginx 或HAProxy 入口控制器,但您的集群最终共享一个端口范围。如果我误解了这一点,请告诉我。
如果您需要在任意端口上公开和负载平衡 TCP 或 UDP 服务,您会怎么做?我正在考虑使用 ClientIP 以便服务获得自己的 VIP 并可以使用他们想要的任何端口,但问题是,如何将流量路由到这些 VIP 并为他们提供友好的 DNS 名称?是否已经有解决方案,还是您必须自己构建一个?使用 NodePort 或任何意味着命名空间必须共享单个端口范围的解决方案并不是真正可扩展或不可取的。特别是如果命名空间 1 中的 Bob 绝对需要在端口 8000 上访问他的服务,但命名空间 2 中的 Linda 已经在使用该端口。
任何澄清,潜在的解决方案或一般帮助将不胜感激。