1、net-master作为manager节点,net-salve作为worker节点。
cat >>/etc/hosts<<EOF 47.96.65.70 yundai-net-master 47.98.248.154 yundai-net-salve EOF
2、配置SSH免密登陆
ssh-keygen -t rsa -P '' ssh-copy-id -i .ssh/id_rsa.pub root@yundai-net-master ssh-copy-id -i .ssh/id_rsa.pub root@yundai-net-salve
二、安装docker和ansible
1、安装配置ansible
yum -y install ansible
2、ansible增加节点,vi /etc/ansible/hosts
[node] 192.168.139.175 192.168.139.176
3、关闭SELINUX
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
4、关闭节点的SELINUX
ansible node -m copy -a 'src=/etc/selinux/config dest=/etc/selinux/'
得到返回成功结果
192.168.139.175 | SUCCESS => { "changed": false, "checksum": "3b6d402cb16ca0cc84ba749c9f7874b077ac091a", "dest": "/etc/selinux/config", "gid": 0, "group": "root", "mode": "0644", "owner": "root", "path": "/etc/selinux/config", "size": 545, "state": "file", "uid": 0 } 192.168.139.176 | SUCCESS => { "changed": false, "checksum": "3b6d402cb16ca0cc84ba749c9f7874b077ac091a", "dest": "/etc/selinux/config", "gid": 0, "group": "root", "mode": "0644", "owner": "root", "path": "/etc/selinux/config", "size": 545, "state": "file", "uid": 0 }
5、关闭防火墙
systemctl stop firewalld systemctl disable firewalld
6、关闭节点防火墙
ansible node -a 'systemctl stop firewalld' ansible node -a 'systemctl disable firewalld'
注:这里选择关闭防火墙,实际环境中可自行开放端口。
7、安装docker
在manager节点安装docker
#安装相关依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #列出所有的docker源 yum list docker-ce --showduplicates | sort -r #安装docker yum -y install docker-ce #查看docker版本 docker --version #启动docker systemctl start docker systemctl status docker systemctl enable docker
使用ansible在worker节点安装docker
#安装相关依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #节点安装docker ansible node -m copy -a 'src=/etc/yum.repos.d/docker-ce.repo dest=/etc/yum.repos.d/' ansible node -m yum -a "state=present name=docker-ce" #查看节点docker版本 ansible node -a 'docker --version' 192.168.139.173 | SUCCESS | rc=0 >> Docker version 17.06.0-ce, build 02c1d87 192.168.139.174 | SUCCESS | rc=0 >> Docker version 17.06.0-ce, build 02c1d87 #启动节点docker ansible node -a 'systemctl start docker' ansible node -a 'systemctl status docker' ansible node -a 'systemctl enable docker'
三、配置docker swarm集群
1、创建docker swarm集群docker swarm init --listen-addr 0.0.0.0
Swarm initialized: current node (a1tno675d14sm6bqlc512vf10) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-3sp9uxzokgr252u1jauoowv74930s7f8f5tsmm5mlk5oim359e-dk52k5uul50w49gbq4j1y7zzb 192.168.139.175:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
2、查看节点docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS a1tno675d14sm6bqlc512vf10 * swarm01 Ready Active Leader
3、查看加入集群manager管理节点的命令-docker swarm join-token manager
To add a manager to this swarm, run the following command: docker swarm join --token SWMTKN-1-3sp9uxzokgr252u1jauoowv74930s7f8f5tsmm5mlk5oim359e-7tdlpdnkyfl1bnq34ftik9wxw 192.168.139.175:2377
4、查看加入集群worker节点的命令-docker swarm join-token worker
To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-3sp9uxzokgr252u1jauoowv74930s7f8f5tsmm5mlk5oim359e-dk52k5uul50w49gbq4j1y7zzb 192.168.139.175:2377
5、将前面规划的两个worker节点加入集群
docker swarm join --token SWMTKN-1-3sp9uxzokgr252u1jauoowv74930s7f8f5tsmm5mlk5oim359e-dk52k5uul50w49gbq4j1y7zzb 192.168.139.175:2377 #结果 This node joined a swarm as a worker.
6、查看worker节点是否已加入集群docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 7zkbqgrjlsn8c09l3fagtfwre swarm02 Ready Active a1tno675d14sm6bqlc512vf10 * swarm01 Ready Active Leader apy9zys2ch4dlwbmgdqwc0pn3 swarm03 Ready Active
7、查看docker swarm的管理网络docker network ls
NETWORK ID NAME DRIVER SCOPE 05efca714d2f bridge bridge local c9cd9c37edd7 docker_gwbridge bridge local 10ac9e48d81b host host local n60tdenc5jy7 ingress overlay swarm a9284277dc18 none null local
这里,一个docker swarm集群就搭建好了
四、添加docker加速器
访问https://www.daocloud.io,并进行注册申请,点击加速器拷贝下面的链接
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://e3233689bd.m.daocloud.io
五、搭建docker swarm的UI—Portainer
1、使用该命令部署Portainer
docker service create \ --name portainer \ --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
2、查看镜像docker images |grep portainer
portainer/portainer latest 07cde96d4789 2 weeks ago 10.4MB
3、查看集群列表docker service ls
ID NAME MODE REPLICAS IMAGE PORTS oycej77lmc4u portainer replicated 1/1 portainer/portainer:latest *:9000->9000/tcp=
4、浏览器输入http://localhost:9000进入该UI界面,如下所示,第一次进入Portainer,配置8位数的admin密码