转帖请注明来源:https://my.oschina.net/u/2342969/blog/2962442vim
环境准备centos
为何源码安装bash
centos7 自带的 yum安装,keepalived 版本为1.3.5, 这个版本会有一个大坑,致使高可用对应的服务挂掉,若是触发keepalived down服务器
经过 service keepalived status 命令查看运行状态会看到 tcp socket bind failed. rescheduling 这个异常, 经过源码安装无此问题curl
#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
编译安装成功后,就会自动生成启停服务socket
#cd /opt/keepalived-1.4.5 #./configure #make && make install
源码安装默认配置文件路径为: /etc/keepalived/keepalived.conf ,不建立这个文件,不能成功启动tcp
#mkdir -p /etc/keepalived #vim /etc/keepalived/keepalived.conf
配置文件以下:url
自行根据注释修改 备实例的配置centos7
注意: 实际配置要把注释内容去掉,不然会产生某些功能失效spa
! Configuration File for keepalived global_defs { router_id 1 #每一个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,主备必须配置同样 } } } }
keepalived 是基于vrrp作到虚拟ip漂移的,这里不开启的话,主备均会认为对方挂掉了,会形成主备都能获取到虚拟ip(vip)
#firewall-cmd --add-rich-rule='rule protocol value="vrrp" accept' --permanent #firewall-cmd --reload
#systemctl enable keepalived
#service keepalived start #service keepalived stop #service keepalived restart #service keepalived status
首先在主备实例的服务器分别 执行 service keepalived start 开启keepalived