• swarm 配置说明


    manager node  192.168.0.11
    worker node 192.168.0.12
    安装上docker环境
    yum install wget -y
    wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
    yum -y install docker-ce-18.06.1.ce-3.el7
    systemctl enable docker && systemctl start docker
    docker --version



    swarn下的命令集,可以使用--help 逐层查看
    docker swarm --help
        Commands:
            ca          Display and rotate the root CA
            init        Initialize a swarm
            join        Join a swarm as a node and/or manager
            join-token  Manage join tokens
            leave       Leave the swarm
            unlock      Unlock swarm
            unlock-key  Manage the unlock key
            update      Update the swarm



    部署swarm manager
    docker swarm init --advertise-addr 192.168.0.11
        执行后给出worker节点加入当前manager下的命令,也可以通过docker swarm join-token worker 查看下面信息。
        docker swarm join --token SWMTKN-1-3vgownewoyrqequep2a3y6cawjurd27kix8***************-b5iregazi33c107qeivgkdwc0 192.168.0.11:2377
    docker info     #可以查看当前docker的swarm 节下面的信息
         Swarm: active
            NodeID: hjy4pruqeygmtrhktr4t8rmph
            Is Manager: true
            ClusterID: 6tfy8npit0ekv55scx0rwaq40
            Managers: 1
            Nodes: 1
            Default Address Pool: 10.0.0.0/8
            SubnetSize: 24
            Data Path Port: 4789
            Orchestration:
            Task History Retention Limit: 5
    docker node ls 查看当前swarm 下的节点
        AVAILABILITY 三种状态说明:
            active 可被指派task      
            pasue 不可被指派task,但是节点中的已存在task正常运行
            drain 不可被指派task,且节点中的已存在task将调度到其他的worker节点运行
    通过docker swarm join-token woker  查看加入命令,然后在worker执行命令,加入swarm。
    管理swarm manager node
        可以使用haproxy 来做多manage node 的高可用方案,Raft协议用来保证管理节点的数据一致性,容错点数量是(n-1)/2
        常见的管理节点的操作:
            设置managernode 只提供管理,不作为worker 节点使用
            docker node update --availability drain manager节点主机名
            添加标签
            docker node update --label-add 键名称=值
            为节点设置标签标记,一个节点可以多个标签。
            docker node update --label-add foo --label-add bar worker1
            为节点指定类型标签,来标识调度程序如何部署到哪个节点
            docker node update --label-add tyep=queue worker1
            提权到manage组
            docker node promote  worker1
            降权
            docker node demote workre1
            manager节点要退出swarm集群,在manager 机器上操作
            docker swarm node leave
            若集群中存在其他workernode 如果manager要退出swarm 可以强制退出
            docker swarm node leave --force
            worker节点要退出swarm ,在woker机器上操作
            docker swarm node leave
    其他管理命令
    docker node demote     从群集(swarm)管理器中降级一个或多个节点
    docker node inspect    显示一个或多个节点的详细信息
    docker node ls         列出群集(swarm)中的节点
    docker node promote    将一个或多个节点推入到群集管理器中
    docker node ps         列出在一个或多个节点上运行的任务,默认为当前节点
    docker node rm         从群集(swarm)删除一个或多个节点
    docker node update              更新一个节点
        –availability           节点的可用性(有效/暂停/耗尽)
        –label-add              添加或更新节点标签(key = value)
        –label-rm               删除节点标签(如果存在)
        –role                   节点的作用(worker / manager)



    管理服务(在manager node 上完成)
    docker service create --replicas 2 --name myredis redis
     # 创建2个名为myredis 的容器,源镜像为redis
    docker service ls
     # 查看已经部署了的服务
    docker service ps myredis
     # 查看服务的详细信息
    docker service create --name helloworld 
      --env MYVAR=myvalue 
      --workdir /tmp 
      --user my_user 
      alpine ping docker.com
     # enc 设置化境变量,workdir设置工作目录,user设置 用户信息
    扩容缩容服务
    docker service scale 服务名=服务task总数
        例如 docker service scale myredis=3   从之前的2个扩容到3个
            docker service scale myredis=1   扩容到3个以后,再缩容到1个。
    删除服务
    docker service rm myredis
    滚动更新
    docker service create 
        --replicas 3 
        --name redis 
        --update-delay 10s 
        redis:3.0.6
     # 每成功部署一个,间隔十秒后再部署下一个,更新失败则调度器停止
    docker service update --images redis:3.0.7 redis  使用新版本redis 来升级当前版本。
    添加overlay 网络
    docker network create --driver overlay mynetwork
     #创建名字为mynetwork 的网络,在manager 上操作
    docker service create 
        --replicas 4 
        --network mynetwokr 
        --name myweb 
        nginx
     #指定mynetwork 网络下创建4份名字叫myweb的服务,源镜像用nginx





    爬坑问题
    将worker 提权之后,会导致status 为down ,重启只有docker node rm worker1 然后重新加入。  
  • 相关阅读:
    声明、定义本质的区别:有无内存的分配
    typedef 与 define 的区别
    Linux内核中链表的学习
    C语言数据类型的转换
    状态机
    170311php添加留言页面
    170314网络编程之TCP聊天窗口
    php课堂2简单作业+文件上传之案例
    php案例2——用户列表页
    学生管理系统
  • 原文地址:https://www.cnblogs.com/plefan/p/13744866.html
Copyright © 2020-2023  润新知