【0】项目架构
Keepalived,只需要在负载均衡机器上配置
而HAproxy需要在所有的4台机器上配置
OS:CentOS7.5
MySQL:5.7.26
Keepalived:1.4.5
描述
IP
主机名
HAproxy+Keepalived:主服务器1
192.168.1.201
db
HAproxy+Keepalived:从服务器2
192.168.1.202
db1
HAproxy+Keepalived的虚拟地址IP(VIP)
192.168.1.210
db/db1来回切换
Mysql:从服务器1
192.168.1.203
db2
Mysql:从服务器2
192.168.1.204
db3
【1】keepalived 安装配置
【1.1】前置环境配置(允许IP非本地绑定支持、防火墙、路由转发)
#(1)添加非本机IP绑定支持
echo "net.ipv4.ip_nonlocal_bind=1" >> /etc/sysctl.conf
sysctl -p
#(2)配置iptables,添加VRRP通讯支持
-A INPUT -d 224.0.0.18 -j ACCEPT #允许组播地址访问本机,组播地址用于keepalived互相检测心跳
-A INPUT -s 192.168.1.0/24 -d 224.0.0.18 -j ACCEPT #允许组播地址通信
-A INPUT -s 192.168.1.0/24 -p vrrp -j ACCEPT #允许VRRP(虚拟路由器冗余协议)通信
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCPET #开发mysql3306端口
#(3)开启路由转发功能
#临时
echo "1">/proc/sys/net/ipv4/ip_forward
#永久路由转发
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
【1.2】下载安装 Keepalived
#(1)下载
官网:https://www.keepalived.org/download.html
wget https://www.keepalived.org/software/keepalived-1.4.5.tar.gz
#(2)安装前置依赖包
mount /dev/cdrom /mnt #加载本地源,有网络直接配置也可(参考:yum源配置、epel源配置)
yum install kernel-devel openssl-devel popt-devel -y
#(3)安装
cd /soft/
tar -zxvf keepalived-1.3.3.tar.gz
cd keepalived-1.3.4
./configure --prefix=/usr/local/keepalived/
make && make install
#(4)设置keepalived开机自启
systemctl enable keepalived
#默认日志在 /var/log/messages
------------下面(5)(6)可以忽略------------------------
#(5)如果不设置自定义目录,默认目录如下
#cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
#cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
#mkdir /etc/keepalived
#cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
#cp /usr/local/sbin/keepalived /usr/sbin/
#(5)构建keepalived 配置文件目录与文件
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
#(6)基本配置文件复制
cp usr/local/keepalived/sbin/keepalived /usr/sbin/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
【1.3】修改 Keepalived 默认日志位置
#默认错误日志位置:/var/log/messages
#(1)修改keepalived的文件
vim /usr/local/keepalived/etc/sysconfig/keepalived
#左边改成右边
KEEPALIVED_OPTIONS="-D" =》 KEEPALIVED_OPTIONS="-D -d -S 0"
# --dont-release-ipvs -I Dont remove IPVS topolog