swarm 集群环境下如何实现服务间调用

在swarm 中假设有2个服务,服务A,服务B,每个服务都有3个实例。 docker service create --name A--replicas 3 -p 8080:8080 image。。 此时访只要访问宿主机的8080 端口,就可以负载均衡到A的三个实例中 如果A服务需要访问B 服务协调工作,那么如何访问?如果是单实例就好办,但是现在A和B 都有三个实例。 有没有什么办法将服务B的三个实例抽象为一个固定的地址(服务A 的三个实例就抽象为了一个固定地址,即宿主机的IP:8080) 我有两个想法 1 启动一个nginx 做负载均衡,将服务B 的三个地址配置到nginx里,服务A 访问nginx 再负载均衡到服务B的三个实例 2 模仿服务A,将服务B 的端口也映射到宿主机,然后服务A 去访问宿主机的端口然后负载均衡到B的三个实例 想法1 当B的实例挂了重启,那配置就没用了 想法2 配置貌似也挺麻烦的,容器还要访问宿主机然后再从宿主机路由到容器,,, 如果是用Kubernetes 定义一个service ,访问service ip 就可以负载均衡给三个实例 那么swarm 有类似的什么方案嘛? 求大牛支招!
已邀请:

田浩浩 - wizmacau developer

赞同来自: justinmjc

放在同一个network里面, 实例间用 service name 访问 (已测试 可以ping到)

要回复问题请先登录注册