通过keepalived实现高可用集群配置,环境配置不做解释,主要从其配置开始说明。
一、虚拟路由配置
有两台keepalived开始配置。
1、master服务器配置

2、backup配置

3、VIP自动漂移测试
1)查看组播地址数据包发送

2)KA1停止keepalive服务后
说明vip又优先级为100的master漂移到80的backup上。

二、keepalived的日志分离
默认情况下。keepalived的日志会被保存在/var/log/messages文件中,这个文件中除了含有keepalived的日志外,还有其他服务的日志信息,这样不利于对于keepalived的日志进行查看。
1、设定日志级别为第六级
bash
[root@KA1 ~]# vim /etc/sysconfig/keepalived
KEEPALIVED_OPTIONS="-D -S 6"
2、修改日志服务配置文件
将第6级的日志放/var/log/keepalived.log文件中

3、重启日志服务及keepalived服务查看日志。

三、keepalived子配置文件设定
1、在主配置文件中导入子配置文件再建立子配置文件目录并测试。

2、子配置文件

3、重启后测试

四、keepalived的抢占模式
抢占模式:那个优先级高那个就直接抢占vip,若加入一个有限级更高的会抢占vip。
非抢占模式:只要服务器正常vip就不会漂移。
1、设定非抢占模式。
KA1中

KA2中设置启用非抢占模式即可
测试:停止KA1服务,再重启,VIP不会再漂移至KA1


2、抢占延迟

测试,首先停止KA2服务,再一同重启服务,通过watch -n 1 ip a 查看状态。发现十秒后KA1会抢占VIP。
五、keepalived的单播模式
KA1和KA2中分别关闭组播,设置单播源地址及目的地址邻居池。

测试,在新的shell中测试

六、keepalivedVIP迁移邮件告警
1、安装邮件服务
root@KA1 \~# dnf install s-nail postfix -y
root@KA2 \~# dnf install s-nail postfix -y
2、邮件服务编辑配置文件
vim /etc/mail.rc

3、设定邮件告警脚本
增加可执行权限
bash
#!/bin/bash
mail_dest='*********@163.com'
mail_send()
{
mail_subj="$HOSTNAME to be $1 vip 转移"
mail_mess="`date +%F\ %T`: vrrp 转移,$HOSTNAME 变为 $1"
echo "$mail_mess" | mail -s "$mail_subj" $mail_dest
}
case $1 in
master)
mail_send master
;;
backup)
mail_send backup
;;
fault)
mail_send fault
;;
*)
exit 1
;;
esac
4、配置keepalived告警

5、vip迁移邮件告警测试

七、keepalived的双主模式
双主模式即为互为备份有两个VIP。
1、编写配置文件,设置两个vip两台服务器互为备份

名称与优先级不同,其余均一致,相互为备份。
2、重启后测试效果


停止KA1keepalived查看vip变化

八、实现LVS的高可用性
1、RS服务器配置
设置同keepalived的vip环回地址,并设置vrp禁ping。

2、配置keepalived主机
编写配置文件

2、测试
通过动态查看watch -n 1 ipvsadm -Ln 停止KA1服务。

停止后规则会自动转到KA2中。
九、双主模式代理不同业务
两个VIP分别代理web业务与mysql数据库业务
在上述实验中已经将web业务服务叙述完毕,现将两种业务用不同的子配置文件进行编写。
首先在业务主机中增加数据库服务的VIP
1、在业务主机中下载数据库服务,并建立用户并给其权限。
dnf install mariadb-server -y
2、修改主配置文件后,编写子配置文件
1)web服务

2)数据库服务

3、测试通过VIP分别访问数据库服务和web服务

十、利用VRRP Script实现全能的高可用性
1、主旨就是备份调度器通过keepalived使用VRRP协议发送信息监控其是否存活,若不发送信息则讲VIP迁移至另外一台调度器。
2、haproxy的高可用是keepalived通过脚本测试haproxy是否是在正常工作,若正常工作则它的优先级不改变,若非正常工作通过keepalived的降低优先级的配置,将VIP让出去。
1、在Keepalived业务主机中安装Haproxy并业务主机开启内核路由功能
root@KA1+2 \~# dnf install haproxy-2.4.22-4.el9.x86_64 -y
root@KA1 \~# vim /etc/sysctl.conf
root@KA1+2 \~# vim /etc/sysctl.conf
net.ipv4.ip_nonlocal_bind=1
2、编写Haproxy配置文件增加调度规则
vim /etc/haproxy/haproxy.cfg
listen webserver
bind 172.25.254.100:80
mode http
server web1 172.25.254.10:80 check
server web2 172.25.254.20:80 check
root@KA1+2 \~# systemctl enable --now haproxy.service
3、Keepalived与Haproxy联动
1、编写Haproxy测试脚本
只需要在优先级高的主服务器上配置即可
root@KA1 \~# vim /etc/keepalived/scripts/haproxy_check.sh
#!/bin/bash
killall -0 haproxy &> /dev/null
root@KA1 \~# chmod +x /etc/keepalived/scripts/haproxy_check.sh
2、编写在keepalived中Haproxy测试板块

4、通过Haproxy状态运行测试
Haproxy停止运行后VIP自动跳转到KA2上

