一。简介和功能
vrrp协议的软件实现,原生设计目的是为了高可用ipvs服务
功能:
1.基于vrrp协议完成地址流动
2.为vip地址所在的节点生成ipvs规则(在配置文件中预先定义)
3.为ipvs集群的各RS做健康状况检测
4.基于脚本调用接口完成脚本中的跟中定义的功能,进而影响集群事务,以此支持nginx,haproxy等服务
二。keepalived环境准备
安装:yum install keepalived
配置文件:vi /etc/keepalived/keepalived.conf
模块一:全局模块
模块二:VIP模块
主配置master配置:
备份backup配置:
使用ip a查看是否自动东生成子网卡下的ip地址
检测ip是否有效:tcpdump -i 网卡名 -nn host 组播地址
三。keepalived的常见用法
1.其他主机ping通keepalived虚拟ip
当keepalived配置了虚拟ip后,其他的主机不能进行ping通ip(防火墙默认关闭了keepalived)
解决方法:vi /etc/keepalived/keepalived.conf (主备keepalive均配置)
2.实现keepalived的日志分离
解决方法: vi /etc/sysconfig/keepalived (指定采集日志的id为0-7之间)
vi /etc/rsyslog.conf
最后重启keepalived检查是否存在/var/log/keepalived这个文件,且里面内容为keepalived的内容
3.独立出子配置文件
解决方法:vi /etc/keepalived/keepalived.conf(先注释整段)
mkdir -p /etc/keepalived/conf.d
vi /etc/keepalived/conf.d/keepalived.conf
4.抢占模式和非抢占模式:
默认抢占模式为preempt,即当高优先级的主机恢复在线后,会抢占优先级低的master角色,这样会导致vip在KA主机中来回漂移,导致网络抖动
建议设置抢占模式为非抢占模式nopreempt,即优先级主机恢复后,并不会抢占优先级主机master的角色,非抢占模块下,如果原主机down机,vip迁移至新主机后,后续也会发生down时,任会将vip迁回主机
配置方法:vi /etc/keepalived/keepalived.conf (两台主机均改为BACKUP,且设置为nopreempt)
5.VIP单波配置
默认keepalived主机之间利用多播相互通告消息,会造成网络拥堵,可以换成单薄,减少网络流量
解决方法: vi /etc/keepalived/keepalived.conf (两主机之间的ip写相反的ip)
检测方法:tcpdump -i ens160 -nn src host 192.168.142.133 and dst host 192.168.142.135看源到目的ip是否有精确ip,而不是组播地址
6.实现master/master的keepalived双主模式:
master/stave的单主模式,同一时间只有一个keealived对外提供服务,此主机比较繁忙,而另外一台主机却空闲,利用率低下,可以使用双主模式解决问题
解决方法: vi /etc/keepalived/keepalived.conf
主机甲:
主机乙:
四。实现IPV4的高可用性
1.DR的配置:
(1)客户机配置:(所有均配置虚拟vip,并且与keepalived的相同)
ip a a 192.168.142.20/32 dev lo:为各个主机添加VIP
vi /etc/sysctl.conf:编辑配置文件
sysctl -p:重启服务
(2)服务器配置:
yum install ipvsadm -y:下载ipvs
vi /etc/keepalived/keepalived.conf(备用机也配置)
systemctl restart keepalived:重启
进行测试:
五。VRRP Script配置
keepalived利用VRRP Script技术,可以调用外部的辅助脚本进行资源监控,并根据监控的结果实现优先动态调整,从而实现其他应用的高可用性功能
vi /etc/keepalived/test.sh
chmod +x /etc/keepalived/test.sh
vi /etc/keepalived/keepalived.conf
存在文件,返回值为非0(weight生效,优先级减去权重),不存在返回值为0(weight不生效)
六。实战案例:实现haproxy的高可用
目的:可以解决当一台服务器的haproxy失效后,可以将ip进行转移到另外一台上面,实现高可用
服务器:
1.vi /etc/sysctl.conf (不进行设置,双方服务器之间的ip无法识别,启动不了haproxy)
2.yum install haproxy -y
3.vi /etc/haproxy/haproxy.cfg (两台服务器复制一样的vip,为了让一台失效,另外一台能继续运行)
4.vi /etc/keepalived/test.sh
5. chmod +x /etc/keepalived/test.sh
6.vi /etc/keepalived/keepalived.conf
7.systemctl restart keepalived
客户机
1.ip a d 192.168.142.20/32 dev lo:删除以前的vip
2.vi /etc/sysctl.conf:关闭设置
同时服务器要进行关闭以前的ipvsadm配置
七.邮件模式:
下载软件:yum install mailx -y
vi /etc/mail.rc
测试: echo "hello word" | mail -s test 12345678@qq.com