docker swarm搭建本地微服务群+Portainer可视化管理微服务群


1. 本地服务器集群搭建

  • 集群节点
    • 管理节点
        10.10.10.69
      
    • 工作节点
        10.10.10.197
        10.10.10.65(docker未安装)
        10.10.10.235(同上)
        10.10.10.66(docker版本太低)
        10.10.10.10
        10.10.10.42
        10.10.10.120
        10.10.10.67
      
  • 搭建集群
      * 若主机为centos操作系统需要配置防火墙规则开放2377/tcp、7946/tcp、7946/udp和4789/udp端口
      * 在管理节点创建集群
              docker swarm init --advertise-addr 10.10.10.69
      * 将其余工作节点加入集群
              docker swarm join \
                  --token SWMTKN-1-5s0knkfql8epkrhtr3df7tszs3p0dcxqwyjjpanrvht63g6o28-dnhysji487xlfcd7o1lql5jtz \
                  10.10.10.69:2377
    

2. Portainer可视化管理集群

  • 开放2375端口(2375端口有安全风险,若公网主机配置了-H tcp://0.0.0.0:2375,那么任何人都可以管理这台主机上的容器和镜像)
      centos: 
              vim /lib/systemd/system/docker.service
              # 修改ExecStart所在的这一行为如下内容
              ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375  -H unix:///var/run/docker.sock 
              # 重新启动服务
              systemctl daemon-reload && systemctl restart docker
      ubuntu: 
              vim /etc/default/docker
              #在docker_opts中添加如下内容
              -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"
              #重启服务
              service docker restart
    
  • 拉取portainter镜像
      docker pull portainer/portainer
    
  • 连接到集群(以集群服务模式部署)
      docker service create \
              --name portainer \
              --replicas 1
              --publish 9000:9000 \
              --constraint 'node.role == manager' \
              --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
              portainer/portainer \
              -H unix:///var/run/docker.sock
    

3. 部署服务

  • 部署MySQL数据库
      docker service create 
              --replicas 1 \
              --name mysql-t \
              --constraint 'node.id == 0wg1zg3m30vu5d6dueuwux8sl' \ (约束。将服务部署到指定的节点。但是当主机故障时将不能在其他节点拉起)
              --publish 3307:3306 \
              --mount type=volume,source=mysql-t,destination=/var/lib/mysql \
               114.215.149.118:5000/signit/cloudsign-server-mysql:latest
    

4.使用flocker实现在多节点之间容器集群的数据管理、共享和迁移

  • flocker安装
      sudo apt-get update
      sudo apt-get -y install apt-transport-https software-properties-common
      sudo add-apt-repository -y "deb https://clusterhq-archive.s3.amazonaws.com/ubuntu/$(lsb_release --release --short)/\$(ARCH) /"
      cat <<EOF > /tmp/apt-pref
              >Package: *
              >Pin: origin clusterhq-archive.s3.amazonaws.com
              >Pin-Priority: 700
              >EOF
      sudo mv /tmp/apt-pref /etc/apt/preferences.d/buildbot-700
      sudo apt-get update
      sudo apt-get -y install --force-yes clusterhq-flocker-cli
    

results matching ""

    No results matching ""