强制 docker 服务访问托管在同一节点上的另一个服务

Force docker service to access another service that is hosted on same node

在docker集群模式下,我有

具有 Service1 和 Service2 的工作节点 1 运行 具有 Service1 和 Service2 的工作节点 2 运行

工作节点 1 上的服务 1 需要在服务 2

上调用 API

当Service1调用api时,每次在node1和node2的Service2之间进行负载均衡。

如何强制 docker 始终访问 node1 的服务 2,直到它关闭?

这是不可能的。

Docker swarm 没有在其 dns 服务发现中构建任何位置感知逻辑。任何给定服务的服务 vip 将在服务中的所有任务之间以循环方式负载平衡,无论它们位于何处。

有一个开放的功能请求要求此功能:https://github.com/moby/moby/issues/32854