第一步 创建一个docker网络
docker network create --subnet=192.168.200.0/24 mariadb_network
第二步 创建集群容器
运行MariaDB容器:
运行多个MariaDB容器作为数据库节点,并将其连接到上面创建的网络中。每个容器都需要指定唯一的容器名称、IP地址和环境变量。
docker run -d --name mariadb_node1 --network=mariadb_network --ip=192.168.200.10 -e MYSQL_ROOT_PASSWORD=123123 mariadb
docker run -d --name mariadb_node2 --network=mariadb_network --ip=192.168.200.20 -e MYSQL_ROOT_PASSWORD=123123 mariadb
docker run -d --name mariadb_node3 --network=mariadb_network --ip=192.168.200.30 -e MYSQL_ROOT_PASSWORD=123123 mariadb
第三步 安装ipvadm工具
安装并配置IPVS:
yum -y install ipvsadm
在宿主机上安装并配置IPVS工具。具体步骤可能因操作系统而异,请根据你所使用的操作系统进行配置。
#要设置 IPVS 高可用集群参数,可以使用 ipvsadm 命令行工具。下面是一些常用的命令示例:
#添加一个虚拟服务器:
ipvsadm -A -t 虚拟服务器IP:端口 -s 调度算法
#添加真实服务器:
ipvsadm -a -t 虚拟服务器IP:端口 -r 真实服务器IP:端口 -g
其中 -g 表示将真实服务器标记为活动状态。
#删除虚拟服务器:
ipvsadm -D -t 虚拟服务器IP:端口
#删除真实服务器:
ipvsadm -d -t 虚拟服务器IP:端口 -r 真实服务器IP:端口
#设置连接超时时间:
ipvsadm --set 虚拟服务器IP:端口 --timeout 超时时间
#设置调度算法:
ipvsadm --set 虚拟服务器IP:端口 --scheduler 调度算法
#查看 IPVS 配置:
ipvsadm -l
第四步 添加节点 设定规则
配置IPVS规则:
在宿主机上配置IPVS规则,将VIP地址映射到MariaDB容器的IP地址上。在终端中运行以下命令:
#添加一个虚拟服务器
ipvsadm -A -t 192.168.200.4:3306 -s rr
#添加真实服务器 第一台(mariadb_node1)
ipvsadm -a -t 192.168.200.4:3306 -r 192.168.200.10:3306 -m
#添加mariadb_node2
ipvsadm -a -t 192.168.200.4:3306 -r 192.168.200.10:3306 -m
#mariadb_node3
ipvsadm -a -t 192.168.200.4:3306 -r 192.168.201.30:3306 -m
#验证配置:在宿主机上尝试连接到VIP地址,确认是否能够成功连接到其中一个MariaDB容器。
mysql -h 192.168.200.4 -uroot -p123123
#会随机选择一个服务器去登录
#验证方法
#查看hostname或者server_id ,但是设置server_id要设置挂在卷然后逐个修改,这里为了方便可以去查看真实服务器的hostname ,当然这里查询到的hostname也就是容器的id。
select @@hostname
ipvsadm 搭建数据库高可用集群
高可用集群在计算机系统中起到了至关重要的作用,特别是在面对系统故障、硬件故障或者其他意外情况时。以下是高可用集群的一些主要作用:
总的来说,高可用集群的作用在于提高系统的可靠性、稳定性和可用性,从而确保服务能够持续地对外提供,并在面对各种故障或挑战时保持稳定运行。