我有6个微服务包装在码头集装箱中。在每个swarm节点上,我已经安装了consul代理,绑定到主机ip,并且客户端处于0.0.0.0模式。 所有微服务都在Docker-compose文件中,我从Swarm管理器运行。 微服务是用Java编写的,在bootstrap.yml中我必须指定consul代理端点。可能的选择是:Docker swarm,Consul和Spring Boot
- 本地主机
- $ {} HOSTIP环境变量
问题: - 本地主机不是主机的本地主机,但集装箱本地主机,而我没有领事代理人容器localhost但主机。 - 撰写文件中的$ {HOSTIP}我必须提供这个env var。但是,我不知道Swarm MAnager会在哪里安排微服务启动,所以我不知道将使用哪个IP地址。
我试图暴露每个节点上的主机IP地址,但由于我正在运行从管理器撰写,它不会读取此变量。
你有什么建议如何解决这个问题吗?我有领事集群,3个经理和3个节点。在每个经理和节点上,我已经开始领事代理(作为码头集装箱)。无论我使用何种类型的网络,我都无法启动微服务。我开始担任--net = host和--net = bridge,但这不起作用。
有没有人有一些想法? 提前致谢。
[This reading](http://blog.nimbleci.com/2016/08/17/how设置和部署到一个1000节点的码头群/)可能会帮助你。 [这也是](http://stackoverflow.com/questions/34365604/how-to-create-docker-overlay-network-between-multi-hosts/34434948#34434948)。 – Auzias
签出v1.12中的新Docker Engine群集功能。现在内置了服务发现功能,这意味着您可能不再需要使用consul来跟踪容器实例。 https://docs.docker.com/engine/swarm/。我还可以推荐以下详细说明如何将负载平衡器与新群集模式集成:https://technologyconversations.com/2016/08/01/integrating-proxy-with-docker-swarm-tour-around-docker-1 -12-series/ –