• 如何设置docker swarm中的manager节点,不执行任何的task?


    在刚创建好的一个docker swarm集群中,manager节点虽然具备管理的角色,但是,还是允许task在上面运行的,那么如果就让manager节点,干一个活,就是管理,调度的任务,不让其执行任何的具体任务,不干活,该如何设置?

    下面,先来看下,swarm中集群的节点信息:

    [root@nccztsjb-node-07 ~]# docker node ls
    ID                            HOSTNAME           STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
    mjktd9is5xd8d4el2awrqby5k *   nccztsjb-node-07   Ready     Active         Leader           20.10.17
    u87i9artgcnyki0osp9gvylu3     nccztsjb-node-08   Ready     Active                          20.10.17
    z1x3ufsdxekrt6w5n37m7azfe     nccztsjb-node-09   Ready     Active                          20.10.17
    zbsfhbwjlit8f650bqvcbtkhl     nccztsjb-node-10   Ready     Active                          20.10.17
    [root@nccztsjb-node-07 ~]# 

    标记起来的,就是manger节点:

    在这个管理节点上,运行着service的一个服务:

    [root@nccztsjb-node-07 ~]# docker service ps nginx
    ID             NAME                              IMAGE                                   NODE               DESIRED STATE   CURRENT STATE          ERROR     PORTS
    n9hpnz1djx1f   nginx.mjktd9is5xd8d4el2awrqby5k   172.20.58.152/middleware/nginx:1.21.4   nccztsjb-node-07   Running         Running 20 hours ago             *:8080->80/tcp,*:8080->80/tcp
    z26ktqqsbj6x   nginx.u87i9artgcnyki0osp9gvylu3   172.20.58.152/middleware/nginx:1.21.4   nccztsjb-node-08   Running         Running 20 hours ago             *:8080->80/tcp,*:8080->80/tcp
    m77cm6zvkq82   nginx.z1x3ufsdxekrt6w5n37m7azfe   172.20.58.152/middleware/nginx:1.21.4   nccztsjb-node-09   Running         Running 20 hours ago             *:8080->80/tcp,*:8080->80/tcp
    3o0s4dekfl2v   nginx.zbsfhbwjlit8f650bqvcbtkhl   172.20.58.152/middleware/nginx:1.21.4   nccztsjb-node-10   Running         Running 20 hours ago             *:8080->80/tcp,*:8080->80/tcp
    [root@nccztsjb-node-07 ~]# 

    下面,就是关键了,让这个manager节点,不再执行任何的具体的task······

    将manager节点,驱逐 (drain)

    [root@nccztsjb-node-07 ~]# docker node update --availability drain mjktd9is5xd8d4el2awrqby5k
    mjktd9is5xd8d4el2awrqby5k
    [root@nccztsjb-node-07 ~]# 

    节点的可用性(AVAILABILITY)更新为Drain状态,上面的task也被终止了

    新建service

    OK,上面的过程显示,已有的task已经终止了,新建的service是否还会在这个节点上调度呢?

    docker service create \
      --replicas 6 \
      --name redis \
      --update-delay 10s \
      --update-parallelism 2 \
      172.20.58.152/middleware/redis:3.0.6

    新部署的service,其中的task是没有在这个节点上运行的:

    更为重要的是,不知道你注意了没有,当在manager上执行docker service命令的时候,依然可以进行任务的创建、调度等工作,也就是说,manager角色的作用还是在的!

    只是,不执行具体的task了。

    读到这里,你明白了没有?

    1. 如果有你任何的问题,欢迎留言······
  • 相关阅读:
    ERROR 1045 (28000): Access denied for user root@localhost (using password:
    MySQL: InnoDB 还是 MyISAM?
    PHP系统函数
    为什么分离数据库软件和数据库服务?
    C#索引器的作用及使用
    asp.net 中Session的运用,及抛出错误“未将对象引用设置到对象的实例”
    C#父类对象和子类对象之间的转化
    C#中属性简写原理
    c# 中Intern的作用
    C# 中ref和out的区别
  • 原文地址:https://www.cnblogs.com/chuanzhang053/p/16660824.html
Copyright © 2020-2023  润新知