目录
 
 
环境准备
 
 
 - 全新最小化安装的centos 7.5
- keepalived 1.4.5
- vip : 172.16.0.169
为什么源码安装
 
    centos7 自带的 yum安装,keepalived 版本为1.3.5, 这个版本会有一个大坑,导致高可用对应的服务挂掉,如果触发keepalived down
 
    通过 service keepalived status 命令查看运行状态会看到  tcp socket bind failed. rescheduling 这个异常, 通过源码安装无此问题
 
源码安装
 
    下载安装包并解压
 
#cd /opt
#wget http://www.keepalived.org/software/keepalived-1.4.5.tar.gz
#tar -zxvf /opt/keepalived-1.4.5.tar.gz
 
    安装编译依赖包,不安装依赖包编译不成功
 
#yum install curl gcc openssl-devel libnl3-devel net-snmp-devel libnfnetlink-devel -y
 
    编译安装
 
    编译安装成功后,就会自动生成启停服务
 
#cd /opt/keepalived-1.4.5
#./configure
#make && make install
 
    创建配置文件
 
    源码安装默认配置文件路径为: /etc/keepalived/keepalived.conf ,不创建这个文件,不能成功启动
 
#mkdir -p /etc/keepalived
#vim /etc/keepalived/keepalived.conf
 
    配置文件如下:
 
    自行根据注释修改 备实例的配置
 
    注意: 实际配置要把注释内容去掉,否则会产生某些功能失效
 
! Configuration File for keepalived
global_defs {
router_id MYSQL-140   #每个keepalived取个不同名称
}
vrrp_instance VI_1 {
state MASTER          # MASTER为主实例,BACKUP 为从实例
interface eth0        # 网卡名称
virtual_router_id 60  # 主备这里要配置为同样的 
priority 100        # 优先级,主要高于备. 一般主配置为100  备配置为80
advert_int 1
nopreempt           # 主动抢占,主备都开启的话,服务器抢占过去后,要等这个服务器keepalived停掉才会漂移到另一台
authentication {
auth_type PASS      # 主备必须配置成同样的
auth_pass 1111      # 主备必须配置成同样的
}
virtual_ipaddress {
172.16.0.169        # vip,主备必须配置一样
}
}
}
}
 
    防火墙开启vrrp
 
keepalived 是基于vrrp做到虚拟ip漂移的,这里不开启的话,主备均会认为对方挂掉了,会造成主备都能获取到虚拟ip(vip)
 
#firewall-cmd --add-rich-rule='rule protocol value="vrrp" accept' --permanent
#firewall-cmd --reload
 
    设置开机服务
 
#systemctl enable keepalived
 
    操作keepalived
 
#service keepalived start
#service keepalived stop
#service keepalived restart
#service keepalived status
 
    验证结果
 
首先在主备实例的服务器分别 执行 service keepalived start 开启keepalived
 
 
 - 通过ip addr 命令分别查看主备两台机器,只有主示例的服务器可以看到这个vip
- 在主实例的服务器执行 service keepalived stop 停止keepalived
- 通过ip addr 命令查看备实例的ip, 会发现可以看到vip的
- 在主实例的服务器执行 service keepalived start 再次启动keepalived
- 通过ip addr 命令分别查看主备两台机器,只有主示例的服务器可以看到这个vip
