测试环境:Red Hat Enterprise Linux Server release 7.2 (Maipo)
虚拟IP:172.16.253.130
节点1:172.16.253.131
节点2:172.16.253.132
1.安装依赖
yum -y install libnl libnl-devel openssl-devel
本地没有yum源,可以替换阿里云yum源 详见:点我查看
2.下载keepalived文件
cd /usr/local
wget https://www.keepalived.org/software/keepalived-2.0.19.tar.gz
3.解压文件
tar xzf keepalived-2.0.19.tar.gz
cd keepalived-2.0.19
4.初始化配置
cd keepalived-2.0.19/
./configure --prefix=/usr/local/keepalived
5.编译安装
make && make install
6.配置
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/keepalived/sbin/keepalived /etc/init.d/
master 节点配置文件:keepalived.conf
! Configuration File for keepalived
global_defs { #全局定义部分
notification_email { #设置警报邮箱
acassen@firewall.loc #邮箱
}
notification_email_from Alexandre.Cassen@firewall.loc #设置发件人地址
smtp_server 192.168.50.1 #设置smtp server地址
smtp_connect_timeout 30 #设置smtp超时连接时间 以上参数可以不配置
router_id lb01 #是Keepalived服务器的路由标识在一个局域网内,这个标识(router_id)是唯一的
}
vrrp_instance VI_1 { #VRRP实例定义区块名字是VI_1
state MASTER #表示当前实例VI_1的角色状态这个状态只能有MASTER和BACKUP两种状态,并且需要大写这些字符ASTER为正式工作的状态,BACKUP为备用的状态
interface eno16777736
virtual_router_id 130 #虚拟路由ID标识,这个标识最好是一个数字,在一个keepalived.conf配置中是唯一的, MASTER和BACKUP配置中相同实例的virtual_router_id必须是一致的.
mcast_src_ip 172.16.253.131 #本机IP地址
priority 100 #priority为优先级 越大越优先
advert_int 1 #为同步通知间隔。MASTER与BACKUP之间通信检查的时间间隔,单位为秒,默认为1.
authentication { #authentication为权限认证配置不要改动,同一vrrp实例的MASTER与BACKUP使用相同的密码才能正常通信。
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #设置虚拟IP地址
172.16.253.130/24 #/24可加可不加,具体看启动是否正常,通过ip addr 查看对应的/数值
}
}
backup节点配置文件:keepalived.conf
! Configuration File for keepalived
global_defs { #全局定义部分
notification_email { #设置警报邮箱
acassen@firewall.loc #邮箱
}
notification_email_from Alexandre.Cassen@firewall.loc #设置发件人地址
smtp_server 192.168.50.1 #设置smtp server地址
smtp_connect_timeout 30 #设置smtp超时连接时间 以上参数可以不配置
router_id lb01 #是Keepalived服务器的路由标识在一个局域网内,这个标识(router_id)是唯一的
}
vrrp_instance VI_1 { #VRRP实例定义区块名字是VI_1
state BACKUP #表示当前实例VI_1的角色状态这个状态只能有MASTER和BACKUP两种状态,并且需要大写这些字符ASTER为正式工作的状态,BACKUP为备用的状态
interface eno16777736
virtual_router_id 130 #虚拟路由ID标识,这个标识最好是一个数字,在一个keepalived.conf配置中是唯一的, MASTER和BACKUP配置中相同实例的virtual_router_id必须是一致的.
mcast_src_ip 172.16.253.132 #本机IP地址
priority 100 #priority为优先级 越大越优先
advert_int 1 #为同步通知间隔。MASTER与BACKUP之间通信检查的时间间隔,单位为秒,默认为1.
authentication { #authentication为权限认证配置不要改动,同一vrrp实例的MASTER与BACKUP使用相同的密码才能正常通信。
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #设置虚拟IP地址
172.16.253.130/24 #/24可加可不加,具体看启动是否正常,通过ip addr 查看对应的/数值
}
}
注意:同一局域网内有多个keepalive组存在时,virtual_router_id 和router_id 不一致时,会出现ping 出现丢包
7.加入开机启动
systemctl enable /usr/lib/systemd/system/keepalived.service
8.服务挂掉,自动重启
vim /usr/lib/systemd/system/keepalived.service
[Unit]
Description=LVS and VRRP High Availability Monitor
After=network-online.target syslog.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/run/keepalived.pid
KillMode=process
EnvironmentFile=-/usr/local/keepalived/etc/sysconfig/keepalived
ExecStart=/usr/local/keepalived/sbin/keepalived $KEEPALIVED_OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
LimitCORE=infinity
LimitNOFILE=2000000
LimitNPROC=2000000
PrivateTmp=true
Restart=on-failure
[Install]
WantedBy=multi-user.target
保存后运行以下命令生效
systemctl daemon-reload