zoukankan      html  css  js  c++  java
  • Docker -- resolve "join node timeout" error

    在worker节点机器上通过docker swarm join 到 manger node时,报Timeout错误,如下:

    Error response from daemon: Timeout was reached before node was joined. The attempt to join the swarm will continue in the background. Use the "docker info" command to see the current swarm status of your node.

    在网上搜索了一下,找到了解决方案。我这边是因为 manager 与 worker 时间不同步造成的。

    原文链接: https://my.oschina.net/u/3195712/blog/817314

    解决方向:

    方向一:本地时钟

           查看要组成集群的所有机器的本地时钟是否相同(大概相同即可,  差几秒不影响)

           输入指令:  date

            图中,第三个时间不同步

            修改第三个服务器的本地时钟:

        

         设置系统时间的操作:格式:date 月日时分年.秒

     

    方向二:主机名 (hostname)

                 在所有要组成集群的机器上输入:hostname  查看主机名

                

    如果,主机名都为:localhost.localdomain,或者主机名都相同,则需要把所有的主机名修改的不一样,比如可以使用本机ip作为主机名

                

    快速修改主机名的方法: 

    输入: hostnamectl set-hostname <主机名>

     

    方向三:防火墙

               CentOS7的防火墙为 firewalld

         最主要的是关闭manager机器的防火墙,其他worker机器的最好也关闭

         关闭指令:systemctl stop firewalld.service

         然后重启一下docker daemon: systemctl restart docker

     

       worker机器上测试2377端口是否通:

         1)在manager节点机器上先执行:

               docker swarm init --advertise-addr managerIP

                      (默认占用2377端口)

               用来激活2377端口

         2)在worker节点机器上执行:

               telnet managerIP 2377

           

           如果端口是通的,则可以进行docker swarm join 来将节点加入集群

  • 相关阅读:
    Sql日期时间格式转换
    基于现有数据库的Code First模式迁移更新数据库
    EF Code First Migrations数据库迁移
    IE6 IE7 ‘JSON’ 未定义
    解决iis7只能上传30M文件的限制
    在ASP.NET MVC中使用Juqery实现页面局部刷新
    asp.net mvc3 利用Ajax实现局部刷新
    CS0234: 命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Html、Ajax”(是否缺少程序集引用?)
    陨石坑之webapi使用filter
    Asp.net Mvc 身份验证、异常处理、权限验证(拦截器)实现代码
  • 原文地址:https://www.cnblogs.com/atuotuo/p/6272497.html
Copyright © 2011-2022 走看看