Docker群集模式,内部运行多个具有唯一域名的服务,但每个服务都在端口80上

我试图设置一个微服务部署( https://github.com/mojlighetsministeriet/groups/blob/master/docker-compose.example.yml部署文件)与几个服务,将使用HTTP(希望稍后HTTPS)在内部进行通信而不会暴露在networking之外。 我稍后将添加一个代理服务,将公开特定的function。 我想用docker swarm模式做这个,我喜欢在docker-compose.yml中定义部署的可能性,所以我可以使用:

$ docker stack deploy my-platform -c docker-compose.example.yml 

我想要内部的APIurl像GET http:// identity-provider / public-key和GET http:// groups / b0c44674-58e0-4a8a-87e0-e1de35088964 。 我之前已经用Kubernetes设置完成了这个工作,而且工作很好,但是现在我想用docker swarm模式工作。

DNS部分工作没有任何问题,但docker群模式不会让我有每个服务侦听端口80(稍后将443)。 即使每个服务都有唯一的域名,例如身份提供者或组等,它也会不断抱怨端口冲突。

我应该使用特定的networking驱动程序来实现这个function吗? 我目前使用覆盖。

使用没有随机端口的域名将使服务之间的调用比例如http:// identity-provider:1234和http:// groups:1235更加简单,这些端口仅增加了设置的复杂性。

如果有帮助的话,我可以使用任何超级尖端版本的docker-ce。

这应该是可能的吧?

Docker Swarm根据发布的端口路由传入的请求,在一个Swarm中不能有两个具有相同端口号的应用程序。

Interesting Posts