• centos7下安装docker(22.docker swarm-----service)


    运行service

    执行以下命令:

    docker service create --name web-server httpd

    通过docker service ls查看swarm中的service

    REPLICAS显示当前副本信息,1/1的意思是web-server这个service期望的容器的副本量是1,目前启动的副本量是1,也就是说web-server这个service已经部署完成了

    通过docker service ps 可以查看每个service的副本的状态

    可以看到web-service唯一的副本被分到docker1上,当前的状态是running,

    如果不放心,可以到docker1上去确认httpd容器已经运行

     当前web-server在swarm中的分布

    service伸缩

    上面我们只有一个副本的service,不过对于web服务,我们通常会运行多个实例。这样可以负载均衡,同时也能提供高可用。

    swarm实现这个目标非常简单,增加service的副本就可以了,在swarm-manager上执行如下命令:

    docker service scale web-server=5

    副本数增加到5,通过docker service ls和docker service ps创建、查看副本的详细信息

    可以看到一共有5个副本,2个处于运行状态,3个处于prepareing状态,由于httpd的镜像没有下载完,所以还处于运行状态

    5个副本已经分布在三个节点上

    默认配置下manager node也是worker node,所以swarm-manager上也运行了副本,如果不希望再manager上运行service,可以执行如下命令:

     docker node update --availability drain docker     docker是swarm-manager的主机名

    通过docker node ls查看各节点现在的状态:

    现在swarm-manager node的状态是Drain状态,Drain表示swarm-manager已经不负责运行service,之前运行的那个service会如何处理呢?

    通过docker service ps 查看一下:

    swarm-manager 上的副本已经被shutdown了,为了达到5个副本数的目标,在docker1上添加了副本web-server.4

     盗图

    上面我们讨论的是scale up,我们还可以scale down,减少副本数,运行下面的命令:

    docker service scale web-server=3

    可以看到web-server.1和web-server.4这两个副本已经被删除了

    Swarm Failover

    故障是在所难免的,容器可能崩溃,Docker host可能宕机,不过幸运的是,swarm 已经内置了failover策略

    创建service的时候,我们没有告诉swarm发生故障的时候该如何处理,只是说明了我们期望的状态(比如运行3个副本),swarm会尽最大的努力达成这个期望状态,无论发生什么状况

    下面我们做swarm failover特性,关闭docker1

    通过docker node ls查看swarm  node 的状态

    swarm会检测到docker1的故障,并标记为Down

    我们通过docker service ps web-server,查看service的状态

    可以看到,web-server.3已经从docker1上迁移到docker2上,之前运行在docker1上的副本已经处于shutdown的状态

    如果将docker1重新启动 ,会发生什么变化呢?

    首先查看一下docker1的状态

    可以看到web-server.3这个副本依然在docker2上,没有迁回docker1上

  • 相关阅读:
    求职准备:大一到大三,做好五件大事!
    研发过程管理导图第一稿(转)
    【推荐收藏】Visual Studio 插件库(转)
    提高C#编程水平的50个要点
    VC++和Matlab
    matlab混合编程向导(vc,vb,.net...)
    Matlab多线程运算的问题
    产生的DLL (VS2005, MATLAB7.5, mwArray)
    matlabsum函数用法
    SWFUpload V2.2.0 说明文档
  • 原文地址:https://www.cnblogs.com/lkun/p/8032607.html
Copyright © 2020-2023  润新知