阿里云ECS对docker swarm的-p特性支持不完整

我在两台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启动容器。这问题能解决吗?

当前问题共有如下(6)个解决方案
  • 容器服务
    容器服务

    Docker overlay网络所需4789端口在某些地域的阿里云经典网络可能不同,阿里云容器服务已经修复Docker Engine的问题,可以 通过
    https://www.aliyun.com/product/containerservice 来创建 Docker Swarm/Docker Swarm mode集群,

    或者使用VPC环境测试

  • 容器服务
    容器服务

    该问题在配合新的Docker Engine,在CentOS 7.3和Ubuntu14.04.5之后已经解决。

    您把
    uname -a
    docker version
    docker info
    的信息贴一下

  • 1257088662353385
    1257088662353385

    centOS7.3,遇到同样的问题。阿里客服也不提供支持

  • citotem
    citotem

    这个不是内网冲突的问题,我在最新docker engine上面试验了,指定了不同于宿主机的网段,还是会碰到楼主所说问题。然后我查询了官网论坛和国外的帖子,发现去年提到这个问题的特别多,后续官方也没有跟进和反馈。我估计swarm mode 到现在为止还是一个不成熟的产品。

  • terry12345678
    terry12345678

    我也遇到了同样的问题,我用的是centos7.2,有什么好的解决方案吗?

  • 易立
    易立

    这个是因为在 < 3.16 内核上,Docker Engine的Ingress网络设置和阿里云内网冲突导致,Docker 社区会提供更多的设置能力

上一篇:创建e-mapreduce集群后,无法ping通master主机
下一篇:ecs不能上外网嘛?