前言
上一篇文章,给大家介绍了常用的三种图形页面管理工具,DockerUI,Portainer,Shipyard。读者反馈最多的是对Potainer很感兴趣,其实我个人对比这三个工具后也是倾向于使用Portainer。
集群部署
前提条件 - 部署Swarm集群
控制节点:
安装并启动docker服务
[ root@controller ]# yum -y install docker
[ root@controller ]# systemctl start docker
创建swarm集群设置主控制节点
[ root@controller ]# docker swarm init --advertise-addr 172.16.2.234
设置防火墙规则,使得集群间通信正常
[ root@controller ]# firewall-cmd --permanent --zone=public --add-port=2377/tcp --add-port=7946/tcp --add-port=7946/udp --add-port=4789/tcp --add-port=4789/udp
[ root@controller ]# firewall-cmd --reload
[ root@controller ]# firewall-cmd --permanent --zone=public --list-ports
查看swarm集群
[ root@controller ]# docker node ls
工作节点:
安装并启动docker服务
[ root@compute1 ]# yum -y install docker
[ root@compute1 ]# systemctl start docker
设置防火墙规则,使得集群间通信正常
[ root@compute1 ]# firewall-cmd --permanent --zone=public --add-port=2377/tcp --add-port=7946/tcp --add-port=7946/udp --add-port=4789/tcp --add-port=4789/udp
[ root@compute1 ]# firewall-cmd --reload
[ root@compute1 ]# firewall-cmd --permanent --zone=public --list-ports
添加compute1到swarm集群中
[ root@compute1 ]# docker swarm join --token SWMTKN-1-3d0h25uee1kgtb16flo374zpfnr2v8ttz2mzy1zbjjjtutsk7g-5lf48tdr8z457ruuqh7bi8m3j 172.16.2.234:2377
安装并启动docker服务
[ root@compute2 ]# yum -y install docker
[ root@compute2 ]# systemctl start docker
设置防火墙规则,使得集群间通信正常
[ root@compute2 ]# firewall-cmd --permanent --zone=public --add-port=2377/tcp --add-port=7946/tcp --add-port=7946/udp --add-port=4789/tcp --add-port=4789/udp
[ root@compute2 ]# firewall-cmd --reload
[ root@compute2 ]# firewall-cmd --permanent --zone=public --list-ports
添加compute2到swarm集群中
[ root@compute2 ]# docker swarm join --token SWMTKN-1-3d0h25uee1kgtb16flo374zpfnr2v8ttz2mzy1zbjjjtutsk7g-5lf48tdr8z457ruuqh7bi8m3j 172.16.2.234:2377
控制节点:
查看swarm集群
[ root@controller ]# docker node ls
部署Portainer集群
在Swarm集群中创建一个新的overlay网络
docker network create --driver overlay --attachable portainer_agent_network
将代理部署为集群中的全局服务
docker service create \
--name portainer_agent \
--network portainer_agent_network \
-e AGENT_CLUSTER_ADDR=tasks.portainer_agent \
--mode global \
--constraint 'node.platform.os == linux' \
--mount type=bind,class="lazy" src="//p2.ttnews.xyz/loading.gif" data-original=//var/run/docker.sock,dst=/var/run/docker.sock \
--mount type=bind,class="lazy" data-original=//var/lib/docker/volumes,dst=/var/lib/docker/volumes \
portainer/agent
将Portainer实例部署为服务
docker service create \
--name portainer \
--network portainer_agent_network \
--publish 9000:9000 \
--replicas=1 \
--constraint 'node.role == manager' \
portainer/portainer -H "tcp://tasks.portainer_agent:9001" --tlsskipverify
浏览器访问 http://172.16.2.234:9000 , 设置一个密码即可。
现在就可以试用了。
我们这次搭建的是集群版,可以看到swarm集群中所有的容器资源。
閱讀更多 崔格拉斯 的文章