如何解决如何获取当前主机上 Docker swarm 全局服务的地址?
我有一个 docker swarm 在不同地理位置的多个主机上运行。其中一项服务是
services:
apple:
deploy:
mode: global
这意味着它在群中的每个节点上运行。群中的其他服务需要与此服务对话,并且响应必须尽可能快。使用 mode: global
设置它的原因是为了确保 swarm 中的每个其他服务都有一个它可以访问的本地副本。
如果我从另一个服务对 apple
进行 DNS 解析,我会得到 swarm 路由器,我相信它会将我路由到 swarm 中的一个随机节点(不是我想要的)。如果我在 tasks.apple
上进行 DNS 解析,我将获得群中每个节点的 IP 地址,但我不知道哪个是本地节点。
我可以 ping 所有节点以找到“快速节点”,但这是一个非常模糊的解决方案,当您需要在 apple
本地中断期间处理回退时,如果启动,则它变得复杂apple
很慢,并且在您之前退回到远程 apple
时恢复到本地。
是否有“将我路由到最近的 apple
”的 docker 解决方案,通常是本地的?
有什么方法可以让我以某种方式指出 apple
的哪个副本在哪个主机上运行?
注意:apple
是第三方开发的服务,因此在 apple
上像新的 HTTP 端点一样公开新的端点会很困难。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com(将#修改为@)