2个具有相同CIDR的服务

问题描述 投票:0回答:1

我有一个问题,我正在尝试将网络流量路由到phpfpm实例。定期,当我重新启动我的aws ec2实例时,我得到502'坏网关'错误,因为phpfpm容器没有响应来自Web服务容器。

我可以跳进php容器没问题,一切看起来都不错,但不知怎的,我不能做telnet phpcontainer 9000 - 它说连接无法建立。它似乎是将服务名称的ip解析为服务网关ok。 php服务只有1个副本,但Web服务有2个副本(全局复制)。

然后我开始检查服务和容器的所有IP地址。

我注意到2个服务具有相同的cidr(问题的服务):

docker service inspect webservice | grep Addr
                    "Addr": "10.255.0.4/16"
                    "Addr": "172.20.0.2/16"
docker service inspect phpservice23 | grep Addr
                    "Addr": "172.20.0.2/16"

这是正常的吗?

所有的IP地址都是独一无二的(注意上面我说的是服务cidrs)

我只是无法弄清楚是什么导致这个特定容器可以从另一个服务访问。

如果我重新启动问题容器,它将在那之后工作。

有任何想法吗?

docker docker-networking
1个回答
1
投票

我实际上已经知道这里的问题是我们通过api创建了一个带有错误规范的服务。可能还有另一个错误,但是如果你创建了一个服务而没有指定EndpointSpec.Mode属性,那么当重启docker守护进程时,我们得到的服务会获得重复的ip地址。

© www.soinside.com 2019 - 2024. All rights reserved.