我有一个有2个节点的docker swarm,运行4个服务。 问题是我想通过端口80上的公共IP公开这4个服务。我知道我可以使用子域和代理服务器来为每个服务路由流量,但还有其他解决方案吗?
答案 0 :(得分:1)
除非您引入代理服务器,否则您的服务需要侦听不同的端口。你不能让他们都听80.
如果您的服务侦听不同的端口,则无论服务容器在哪个节点上,它们都可以通过node1或node2的ip地址获得。 Swarm会在任一节点上解析你的容器。
例如,假设您有serviceA正在侦听端口82,并且它只在node2上运行了1个容器(1个任务)。对node1:82或node2:82的任何请求都将被重定向到该容器。