zoukankan      html  css  js  c++  java
  • Docker Swarm删除节点

     

    节点上的主机如果想离开的话,可以自己直接执行docker swarm leave

    然后你可以发现,原本跑在自己上面的容器被转移到别的容器上了。此时如果在manager节点上docker node ls看的话,这个节点已经Down了。

     

    然后访问下这个节点的服务,也是理所当然的失败

     

    想加入回来就重新JOIN一下

     

    但此时注意两点,第一。对于manager来说之前的退出是Down状态,此时并没有从节点里把这个退出的节点删除,而我们有重新在节点上执行JOIN。这个时候是新建立了一个node,所以上图里面标注的两个,上面那个Down是自己的Leave,下面的Ready是这次自己新加入的身份。并且此时直接访问这个节点ip是没有服务的。

     

    分别登陆每个节点

     

    可以看到,一共5个容器,manager跑2,work1节点跑3个,新加入的节点work2没有跑。之后的新任务会被自动分给他的。如果着急测试,可以直接扩容类似这样 docker service scale nginx=8 从5个直接扩到8个,新node马上就会有活干了。

     

    还有对于node节点自己leave之后,manager节点上看到的Down状态的节点,如果不要了,可以直接

    docker node rm xxxx 删除

     

    这样就干净了。

     

    还有如果是manager节点想直接T某个节点出局怎么操作呢?

    直接rm肯定会失败(此时强行-f也行,不过不建议)

     

    先docker node update --availability drain hxss1xiw0dh9ii6x1che9f3qk 让这个node歇着去吧,此时再看下其他容器,会发现他的活都已经被分配给别人了。

     

    上面是剩下干活的两个节点,一人四个活。而刚刚被歇着这个容器空了。

     

    然后可以尝试删除docker node rm xxxx删除,但是还是失败,因为虽然不分配任务给他,但是他的状态不是Down所以不让删除,此时其实可以登录到node上,直接自己主动leave。此时manager会看到是Down状态,不过也可以直接强行-f,因为此时任务已经被排空了。

    如果强行-f了,此时要注意,就是现在对于节点node来说,自己还是在Join状态,如果此时你在node上执行Join,她会说正在加入一个swarm,所以要先leave一下,再加入就OK了。

    最后整理个小东西

     

     

  • 相关阅读:
    剑指offer 51.构建乘积数组
    剑指offer 50.数组中重复的数字
    股票价格涨跌预测—基于KNN分类器
    R语言-神经网络包RSNNS
    基于客户保持率的人口特性分析
    车辆碰撞位置间的关联性分析
    统计学的七大支柱[转载@谢益辉]
    AutoDesK演示项目部署
    自定义数字键盘组件化方案
    2020年大前端发展趋势
  • 原文地址:https://www.cnblogs.com/csnd/p/12061828.html
Copyright © 2011-2022 走看看