如何获取当前主机上 Docker swarm 全局服务的地址?

如何解决如何获取当前主机上 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(将#修改为@)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?