• docker swarm集群搭建


    • 简介

      Swarm:作用于运行docker engine(引擎)的多个主机组成的集群。
      node:每一个docker engine都是一个node(节点),分为manager和worker。
      manager node:负责执行容器的编排和集群的管理工作,保持并维护swarm处于期望的状态。swarm可以有多个manager node,它们会自动协调并选举出一个Leader执行编排任务。但相反,不能没有manager node。
      worker node:接受并执行由manager node派发的任务,并且默认manager node也是一个work node,不过可以将它设置为manager-only node,让它只负责编排和管理工作。
      service:用来定义worker上执行的命令。
      
    • 部署准备

      head			      c1				c2
      192.168.196.130		192.168.196.132		192.168.196.131
      
    • 关闭防火墙

      # firewalld
      systemctl stop firewalld.service
      systemctl disable firewalld.service
      # selinux
      vi /etc/selinux/config
      改为 SELINUX=disabled
      
    • 时间同步

      与head时间同步即可
      ntpdate 192.168.196.130
      
    • head节点

      docker swarm init --advertise-addr 192.168.196.130
      
      # 成功执行后会生成下面的代码
      docker swarm join --token SWMTKN-1-2jk3nhq8rz7eukh1rk66w197xfnbgvgull2zoq9fvge26et302-25s1k7n303gi19pksw2gqve7p 192.168.196.130:2377
      
    • c1和c2节点分别执行下面的代码,意思是让c1和c2加入到集群中

      docker swarm join --token SWMTKN-1-2jk3nhq8rz7eukh1rk66w197xfnbgvgull2zoq9fvge26et302-25s1k7n303gi19pksw2gqve7p 192.168.196.130:2377
      
    • 在head主机上查看节点状态

      ID                            HOSTNAME   STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
      jkgnbzwo1jakkhaive404mi78     c1         Ready     Active                          20.10.6
      cgehjyv4hf8fu0voe648oxw0w     c2         Ready     Active                          20.10.6
      k6cgvrxx2t0t3wjr4666xy9cw *   head       Ready     Active         Leader           20.10.6
      # 说明目前head是领导者
      
    • 部署docker swarm集群网络

      docker network create -d overlay --attachable docker  # overlay覆盖型网络
      
    • 部署一个图形化webui界面

      docker pull dockersamples/visualizer
      
    • 运行镜像

      docker run -d -p 8080:8080 -e HOST=192.168.196.130 -e PORT=8080 -v /var/run/docker.sock:/var/run/docker.sock --name visualizer dockersamples/visualizer
      
    • 网页访问

      192.168.196.130:8080
      
    • 让所有节点执行命令任务

      docker service create --replicas 5 --network docker --name web01 -p 80 nginx:latest
      # docker service create 创建服务
      # --name  表示服务的名称
      # --replicas 表示指定5个正在运行的实例(可以理解为1个实例等于1个容器)
      # 上面的意思是让所有worker节点共执行5个实例,任务为开启nginx
      
      
    • 让leader节点不参加工作

      docker node update head --availability drain
      
    • 查看service任务信息

      docker service ps web01
      
    • 增加和减少容器数量

      docker service scale web01=0  # 减少
      docker service sacle web01=8  # 增加
      
    • 常用命令

      离开集群:
      docker swarm leave
      
      删除节点:
      docker node rm node02			#这里注意,只有申请离开集群的node才可以删除。
      
      生成令牌,可以是manager身份或worker身份:
      docker swarm join-token [manager | worker]
      
      降级为work与升级为manager:
      docker node demote(降级):将swarm节点的manager降级为work
      docker node promote(升级):将swarm节点的work升级为manager
      
      
      查看service列表:
      docker service ls
      
      查看service信息:
      docker service ps xxx
      
      增加容器与减少容器:
      docker service scale web1=8
      docker service scale web1=3			#等号后接容器的数量。
      
      删除服务
      docker service rm web01(启动时指定的name名称)
      
      docker node update node01 --availability drain 
      可以设置三个参数:
      active"|"pause"|"drain		#活跃”|“暂停”|“不工作
      

    -------------------------------------------

    个性签名:代码过万,键盘敲烂!!!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

  • 相关阅读:
    经典小程序源码及其下载地址
    关闭ios虚拟键盘的几种方法
    从零开始学ios开发(十八):Storyboards(下)
    iOS应用程序生命周期(前后台切换,应用的各种状态)详解
    从零开始学ios开发(十九):Application Settings and User Defaults(上)
    关于IOS中的delegate必须知道的事情
    ios多线程和进程的区别(转载)
    ios各种手势,很有意思
    IOS中GPS定位偏移纠正(适用于Google地图)
    [iOS]深入浅出 iOS 之多线程 NSThread
  • 原文地址:https://www.cnblogs.com/weiweivip666/p/14869746.html
Copyright © 2020-2023  润新知