我在两台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
的信息贴一下
Docker overlay网络所需4789端口在某些地域的阿里云经典网络可能不同,阿里云容器服务已经修复Docker Engine的问题,可以 通过
https://www.aliyun.com/product/containerservice 来创建 Docker Swarm/Docker Swarm mode集群,
或者使用VPC环境测试
这个不是内网冲突的问题,我在最新docker engine上面试验了,指定了不同于宿主机的网段,还是会碰到楼主所说问题。然后我查询了官网论坛和国外的帖子,发现去年提到这个问题的特别多,后续官方也没有跟进和反馈。我估计swarm mode 到现在为止还是一个不成熟的产品。
这个是因为在 < 3.16 内核上,Docker Engine的Ingress网络设置和阿里云内网冲突导致,Docker 社区会提供更多的设置能力
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。