docker技术快速实现前后端项目的集群化12swarm集群方案

docker技术快速实现前后端项目的集群化12swarm集群方案

服务器列表

docker技术快速实现前后端项目的集群化12swarm集群方案

统一设置系统时间

timedatectl set-ntp no

timedatectl set-time '2020-08-05 11:58:08'

 

规划:4个docker宿主机,两个manager节点互备,manager节点同时承担worker的角色

Server01节点以管理者身份加入集群

Server01节点执行docker swarm join-token manager

 

server01初始化swarm集群,并作为管理节点

[[email protected] ~]# docker swarm init

[[email protected] ~]# docker swarm join-token manager

docker技术快速实现前后端项目的集群化12swarm集群方案

将server02作为管理节点加入到集群

 [[email protected] ~]# docker swarm join \

>     --token SWMTKN-1-1zy6ohcpwcrx13q7op2i9xrov15svtm2bnh27dm2ymk1i1cvz2-7agtaopdgqs5twuk4rd4eyt8n \

>     10.11.0.206:2377

This node joined a swarm as a manager.

 

Server03节点以worker工作节点身份加入集群

docker技术快速实现前后端项目的集群化12swarm集群方案

Server04执行worker节点身份加入集群

[[email protected] ~]# docker swarm join \

>     --token SWMTKN-1-1zy6ohcpwcrx13q7op2i9xrov15svtm2bnh27dm2ymk1i1cvz2-97zmvw30gjx4xk7a6dlre7azn \

>     10.11.0.206:2377

This node joined a swarm as a worker.

docker技术快速实现前后端项目的集群化12swarm集群方案

查看节点状态(只有管理节点才有权限)

[[email protected] ~]# docker node ls

ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS

5m33dn60nvti1suex3iemv0hq    server04  Ready   Active       

h6a8jpyo72a9sua8q5eziouve *  server01  Ready   Active        Leader

hw53awop6gqvdz27thxo86h3l    server03  Ready   Active       

n58zy5ga54ge03hzqqgeparjt    server02  Ready   Active        Reachable

 

创建swarm集群网络

Overlay这个swarm是管理网络,如果要集群之间的共享网络需要单独创建

docker技术快速实现前后端项目的集群化12swarm集群方案

*号代表是正在使用的管理节点

docker技术快速实现前后端项目的集群化12swarm集群方案

创建swarm集群网络,名称为swarm_renren_fast

[[email protected] ~]# docker network create -d overylay --attachable swarm_renren_fast

docker技术快速实现前后端项目的集群化12swarm集群方案

在集群各节点中拉取pxc镜像

[[email protected] ~]# docker pull percona/percona-xtradb-cluster:5.7

修改镜像名称

# docker tag docker.io/percona/percona-xtradb-cluster:5.7 pxc

docker技术快速实现前后端项目的集群化12swarm集群方案

在swarm集群网络中创建第一个pxc节点

Server01中创建两个pxc节点

[[email protected] ~]# docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root123456 -e CLUSTER_NAME=pxc01 -e XTRABACKUP_PASSWORD=root123456 -v v1:/var/lib/mysql -v backup:/data --privileged --name=pxcnode01 --net=swarm_renren_fast pxc

               

创建第二个节点

[[email protected] ~]# docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root123456 -e CLUSTER_NAME=pxc01 -e XTRABACKUP_PASSWORD=root123456 -e CLUSTER_JOIN=pxcnode01 -v v2:/var/lib/mysql -v backup:/data --privileged --name=pxcnode02 --net=swarm_renren_fast pxc

docker技术快速实现前后端项目的集群化12swarm集群方案

在第二个宿主机server02中创建第3个节点

# pxcnode03

[[email protected] ~]# docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root123456 -e CLUSTER_NAME=pxc01 -e XTRABACKUP_PASSWORD=root123456 -e CLUSTER_JOIN=pxcnode01 -v v3:/var/lib/mysql -v backup:/data --privileged --name=pxcnode03 --net=swarm_renren_fast pxc

docker技术快速实现前后端项目的集群化12swarm集群方案

在第3个宿主机server03中创建第4个节点

[[email protected] ~]# docker volume create v4

[[email protected] ~]# docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root123456 -e CLUSTER_NAME=pxc01 -e XTRABACKUP_PASSWORD=root123456 -e CLUSTER_JOIN=pxcnode01 -v v4:/var/lib/mysql -v backup:/data --privileged --name=pxcnode03 --net=swarm_renren_fast pxc

docker技术快速实现前后端项目的集群化12swarm集群方案

在第4个宿主机中创建第5个节点

[[email protected] ~]# docker volume create v5

 [[email protected] ~]# docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root123456 -e CLUSTER_NAME=pxc01 -e XTRABACKUP_PASSWORD=root123456 -e CLUSTER_JOIN=pxcnode01 -v v5:/var/lib/mysql -v backup:/data --privileged --name=pxcnode05 --net=swarm_renren_fast pxc

docker技术快速实现前后端项目的集群化12swarm集群方案

测试集群连接

docker技术快速实现前后端项目的集群化12swarm集群方案

测试集群是否能同步

docker技术快速实现前后端项目的集群化12swarm集群方案

查看节点ip信息

[[email protected] ~]# docker inspect pxcnode01

docker技术快速实现前后端项目的集群化12swarm集群方案

Swarm只是提供了容器的管理,并不能实现负载均衡的作用,如果容器启动一个a程序在2个节点,如果只剩一个节点,swarm就会在别的节点启动a程序

 

docker技术快速实现前后端项目的集群化12swarm集群方案

Swarm适用场景

docker技术快速实现前后端项目的集群化12swarm集群方案

退出集群方法

docker技术快速实现前后端项目的集群化12swarm集群方案

docker技术快速实现前后端项目的集群化12swarm集群方案

节点离开集群

[[email protected] ~]# docker swarm leave --force

Node left the swarm.

docker技术快速实现前后端项目的集群化12swarm集群方案

普通节点离开集群,离开集群前先关闭上面运行的程序

在管理节点中删除已经离开的节点

docker技术快速实现前后端项目的集群化12swarm集群方案

管理节点删除管理节点

Docker node demote 节点id,让其降级

docker技术快速实现前后端项目的集群化12swarm集群方案

在被删除节点上停用docker服务

Systemctl stop docker

docker技术快速实现前后端项目的集群化12swarm集群方案

当前管理节点强制离开集群

docker技术快速实现前后端项目的集群化12swarm集群方案

随着docker swarm集群的解散,集群的网络也消失了

docker技术快速实现前后端项目的集群化12swarm集群方案

 

相关文章:

  • 2021-06-30
  • 2021-12-09
  • 2021-11-15
  • 2021-09-14
  • 2022-02-13
  • 2021-07-08
  • 2021-12-05
猜你喜欢
  • 2022-02-01
  • 2021-11-24
  • 2021-07-20
  • 2021-06-10
相关资源
相似解决方案