如何使用 OpenStack 在 kubernetes 中的同一端口上公开多个服务



我在基于 OpenStack 的私有云上有一个 Kubernetes 集群。我的服务需要在特定端口上公开。我能够使用NodePort来做到这一点。但是,如果我尝试创建另一个类似于第一个的服务,我无法公开它,因为我必须使用相同的端口并且它已经被第一个端口占用。

我注意到我可以在公共云中使用负载均衡器,但我认为这在 OpenStack 中是不可能的? 我也尝试使用Kubernetes的Ingress Controller,但它没有奏效。但是,我不确定我是否采取了正确的方法。 除了负载均衡器或入口之外,还有其他方法可以做到这一点吗?(我的第一个假设是,如果我将我的 pod 专用于特定节点,那么我应该能够在不同节点上的同一端口上公开每个服务,但这种方法也不起作用。

如果您对此有任何想法,请告诉我。

您必须设置 OpenStack 云提供商:基本上,此部署将监视负载均衡器服务,并提供可用于与应用程序交互的{internal,external}IP 地址,即使在 L4 上,而不仅仅是像许多入口控制器资源那样的 L7。

如果您只想公开一个端口,那么据我所知,唯一的答案是入口控制器。最著名的两个是Nginx和Traefik。我同意设置入口控制器可能很困难,我以前遇到过问题,但您必须一一解决它们。

您可以做的另一件事是您可以构建自己的入口控制器。我的意思是使用反向代理(例如 Nginx(,将其配置为根据您的拓扑重新路由流量,然后仅公开此反向代理,以便所有流量都通过此自定义反向代理,但只有在您需要非常自定义的东西时,才应该这样做。

最新更新