目录
-
环境准备
-
为什么源码安装
- 源码安装
环境准备
- 全新最小化安装的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