通过官网下载keepalived文件
解压
tar -zxvf keepalived-2.0.18.tar.gz
进到keepalived目录
cd keepalived-2.0.18
编译
./configure --prefix=/usr/local/keepalived --sysconf=/etc
如果配置过程中出现IPv6之类的警告
*** WARNING - this build will not support IPVS with IPv6. Please install libnl/libnl-3 dev libraries to support IPv6 with IPVS.
安装libnl/libnl-3的依赖,然后重新执行configure一下
yum -y install libnl libnl-devel
安装
make && make install
查看keepalived位置
whereis keepalived
进入可执行命令位置
cd /usr/local/keepalived/sbin
keepalived实现高可用
进入到配置文件并修改
vi /etc/keepalived/keepalived.conf
global_defs {
# 路由id:当前安装keepalived的节点主机标识符,保证全局唯一
router_id keep_171
} v
rrp_instance VI_1 {
# 表示状态是MASTER主机还是备用机BACKUP
state MASTER
# 该实例绑定的网卡
interface ens33
# 保证主备节点一致即可
virtual_router_id 51
# 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选
priority 100
# 主备之间同步检查时间间隔,单位秒
advert_int 2
# 认证权限密码,防止非法节点进入
authentication {
auth_type PASS
auth_pass 1111
} #
虚拟出来的ip,可以有多个(vip)
virtual_ipaddress {
192.168.1.161
}
}
启动
./keepalived
启动成功,输入ip addr 查看发现多了虚拟ip
把keepalived注册为本地服务
首先进入到初始解压的etc目录
cd /opt/keepalived-2.0.18/keepalived/etc
执行配置拷贝
cp init.d/keepalived /etc/init.d/
cp sysconfig/keepalived /etc/sysconfig/
让配置文件发挥作用
systemctl daemon-reload
启动(keepalived的其他命令和nginx相同)
systemctl start keepalived.service
如何实现keepalived的双机主备
按照上面的步骤安装keepalived,然后修改配置文件,重点修改router_id,state和priority
! Configuration File for keepalived
global_defs {
# 虚拟主机的唯一id
router_id keep_103
}
vrrp_instance VI_1 {
# 表示状态,当前的101为nginx的主节点
state BACKUP
# 当前实例绑定的网卡
interface ens33
# 保证主备节点一致
virtual_router_id 51
# 优先级/权重,谁的优先级高,master挂掉之后就能成为master
priority 80
# 主备之间同步检查的时间间隔,默认1s
advert_int 1
# 认证授权的密码,防止非法节点的进入
authentication {
auth_type PASS
auth_pass 1111
}
# 虚拟ip
virtual_ipaddress {
192.168.88.11
}
}
然后就可以去测试主机挂掉备机和虚拟ip绑定,主机恢复,虚拟ip重新和主机绑定