keepalived 高可用配置
2021-09-17 14:09 清晨、午后 阅读(241) 评论(0) 编辑 收藏 举报1. 安装
sudo apt install keepalived
2. 配置
配置文件路径 /etc/keepalived,安装后默认会创建该目录,不存在时创建一个即可
特别注意:
1.配置文件权限必须为644,否则无法启动,且日志看不出异常
2./etc/keepalived 目录的权限为755,检测脚本的权限也为755,否则启动报错脚本不安全等
环境:使用 KVM 搭建两台虚拟机,使用桥接方式(虚拟机与宿主机网段相同,但是不能互相ping通)
主机:
global_defs { router_id KMS_HA script_user root # 指定脚本运行用户 enable_script_security } vrrp_script checkserver { script "/etc/keepalived/checkserver.sh" #检测脚本 interval 1 #监测间隔 weight -11 #失败时,优先级减2 fall 3 # 指定nginx检测脚本连续执行失败次数为3,才进行Failover rise 1 # 指定nginx检测脚本连续执行成功次数为1,才进行Failback } vrrp_instance VI_DB { state MASTER interface eno1 # 虚拟IP的网卡,与实际网卡一致 virtual_router_id 22 priority 100 # 优先级,主机挂掉后用此值决策哪个备机作为新主机 advert_int 1 authentication { auth_type PASS auth_pass 4422 } virtual_ipaddress { 10.7.11.48 # 虚拟为未被占用的ip地址 } unicast_src_ip 10.7.11.49 #本机ip unicast_peer { 10.7.11.41 #对端ip } track_script { checkserver #通过指定上面定义监控脚本来监控服务状态,以完成主备切换 } }
备机:
global_defs { router_id KMS_HA1 script_user root # 指定脚本运行用户 enable_script_security } vrrp_script checkserver { script "/etc/keepalived/checkserver.sh" #检测脚本 interval 1 #监测间隔 weight -11 #失败时,优先级减2 fall 3 # 指定nginx检测脚本连续执行失败次数为3,才进行Failover rise 1 # 指定nginx检测脚本连续执行成功次数为1,才进行Failback } vrrp_instance VI_DB { state MASTER interface eno1 # 虚拟IP的网卡,与实际网卡一致 virtual_router_id 22 priority 90 # 优先级,主机挂掉后用此值决策哪个备机作为新主机 advert_int 1 authentication { auth_type PASS auth_pass 4422 } virtual_ipaddress { 10.7.11.48 # 虚拟为未被占用的ip地址 } unicast_src_ip 10.7.11.41 #本机ip unicast_peer { 10.7.11.49 #对端ip } track_script { checkserver #通过指定上面定义监控脚本来监控服务状态,以完成主备切换 } }
3.检测脚本 checkserver.sh
检测脚本的规则为正常返回0,否则返回1
#!/bin/bash PIDS=`ps -ef |grep xxxserver |grep -v grep | awk '{print $2}'` if [ "$PIDS" != "" ]; then echo "xxxserver is runing!" exit 0 else exit 1fi
4. 验证
刚启动时虚拟ip(vip)在主机上,对外提供服务,当检测脚本返回-1的时候(或者直接停掉keepalived),备机虚拟出ip,并对外提供服务
----