我在两台aliyun ECS上安装了docker 1.12 并创建了一个swarm集群,一个是manager一个是worker,我创建一个nginx service 并通过-p 80:80 暴露出80端口,这是都是OK的,并且两台ECS都运行了一个nginx容器,但是访问service时,会失败,准确的说是swarm的负载均衡不能正常工作,一共启动了两个容器,我访问service时,docker会自动将请求转发到不同的节点,但是出现的一种情况就是,第一次访问成功,第二次访问失败,第三次访问成功,第四次访问失败,以此类推,可以断定,应该是负载均衡到非本机的worker上出问题了,我的ecs是ubuntu 14.04,内核升级过了,没升级无法使用-p启动容器。这问题能解决吗?
- 容器服务
该问题在配合新的Docker Engine,在CentOS 7.3和Ubuntu14.04.5之后已经解决。
您把
uname -a
docker version
docker info
的信息贴一下 - 1257088662353385
centOS7.3,遇到同样的问题。阿里客服也不提供支持
- citotem
这个不是内网冲突的问题,我在最新docker engine上面试验了,指定了不同于宿主机的网段,还是会碰到楼主所说问题。然后我查询了官网论坛和国外的帖子,发现去年提到这个问题的特别多,后续官方也没有跟进和反馈。我估计swarm mode 到现在为止还是一个不成熟的产品。
- terry12345678
我也遇到了同样的问题,我用的是centos7.2,有什么好的解决方案吗?
- 易立
这个是因为在 < 3.16 内核上,Docker Engine的Ingress网络设置和阿里云内网冲突导致,Docker 社区会提供更多的设置能力
Docker overlay网络所需4789端口在某些地域的阿里云经典网络可能不同,阿里云容器服务已经修复Docker Engine的问题,可以 通过
https://www.aliyun.com/product/containerservice 来创建 Docker Swarm/Docker Swarm mode集群,
或者使用VPC环境测试