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

如何使用OpenStack在kubernetes的同一端口上公开多个服务,kubernetes,openstack,kubernetes-ingress,Kubernetes,Openstack,Kubernetes Ingress,我有一个基于OpenStack的私有云上的Kubernetes集群。我的服务需要在特定端口上公开。我可以使用NodePort完成这项工作。但是,如果我尝试创建与第一个类似的另一个服务,我将无法公开它,因为我必须使用相同的端口,并且它已经被第一个端口占用 我注意到我可以在公共云中使用LoadBalancer来实现这一点,但我假设这在OpenStack中是不可能的? 我还尝试使用Kubernetes的入口控制器,但没有成功。然而,我不确定我是否采取了正确的方法。 除了LoadBalancer或Ing

我有一个基于OpenStack的私有云上的Kubernetes集群。我的服务需要在特定端口上公开。我可以使用NodePort完成这项工作。但是,如果我尝试创建与第一个类似的另一个服务,我将无法公开它,因为我必须使用相同的端口,并且它已经被第一个端口占用

我注意到我可以在公共云中使用LoadBalancer来实现这一点,但我假设这在OpenStack中是不可能的? 我还尝试使用Kubernetes的入口控制器,但没有成功。然而,我不确定我是否采取了正确的方法。 除了LoadBalancer或Ingress之外,还有其他方法可以做到这一点吗?(我的第一个假设是,如果我将我的POD专用于特定节点,那么我应该能够在不同节点的同一端口上公开每个服务,但这种方法也不起作用。)


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

您必须设置:基本上,此部署将监视LoadBalancer服务,并将提供一个
{internal,external}
IP地址,您可以使用该地址与应用程序交互,即使是在L4,而不仅仅是(sic)L7就像许多入口控制器资源一样。

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


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

谢谢你的回答。我以前看过这个页面,但是使用这些方法,OpenStack没有为我的服务分配任何外部IP(它是空的)。有什么原因吗?您必须调试OpenStack云提供程序部署:请查看日志以收集更多信息以了解根本原因您是指我的部署日志吗?我在那里什么也找不到!externalIP说:“待定”不,是OpenStack云提供商的日志OK,我更仔细地阅读了你的答案,可能你错过了云提供商的设置!请遵循这篇有用的帖子,并确保正确配置了群集: