搭建swap集群:
管理机:
systemctl start docker #开启docker服务
docker swarm init --advertise-addr 172.25.40.1:2377 --listen-addr 172.25.40.1:2377
#初始化swarm集群节点与端口,生成tocken值
节点机:
systemctl start docker
docker swarm join --token SWMTKN-1-1cnuvqcpow5tkdq3x2liseq4fkwm1y50e0psuh5fktg37zox1s-74vj4wa5v335ui0vx891i9p54 172.25.40.1:2377
#根据生成token值,加入节点集群
建立swarm集群结果:
各主机加载Portainer镜像:
docker load -i portainer.tar
docker load -i portainer-agent.tar ##加载使用镜像
主节点打开portainer工具:
docker service create --name portainer --publish 9000:9000 --replicas=1 --constraint 'node.role == manager' --mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock --mount type=volume,src=portainer_data,dst=/data portainer/portainer -H unix:///var/run/docker.sock
#确定端口
文件方式:
[root@server1 portainer]# vim portainer-agent-stack.yml
[root@server1 portainer]# docker stack deploy -c portainer-agent-stack.yml portainer
vim portainer-agent-stack.yml
version: '3.2'
services:
agent:
image: portainer/agent
environment:
# REQUIRED: Should be equal to the service name prefixed by "tasks." when
# deployed inside an overlay network
AGENT_CLUSTER_ADDR: tasks.agent
# AGENT_PORT: 9001
# LOG_LEVEL: debug
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
networks:
- agent_network
deploy:
mode: global
placement:
constraints: [node.platform.os == linux]
portainer:
image: portainer/portainer
command: -H tcp://tasks.agent:9001 --tlsskipverify
ports:
- "9000:9000"
volumes:
- portainer_data:/data
networks:
- agent_network
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == manager]
networks:
agent_network:
driver: overlay
attachable: true
volumes:
portainer_data:
访问登陆:
http://172.25.40.1:9000
设置密码登陆:
查看swarm集群:
证明集群添加成功。
现在使用Portainer开启nginx服务:
在各主机上加载nginx镜像
docker load -i nginx.tar
添加服务:
服务创建成功,swarm集群中所有nginx服务都已自动开启。
节点主机server2的nginx服务:
对主机加载镜像做删除/添加操作: