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