- 主节点:192.168.0.2
- 从节点:192.168.0.3
- 高可用虚拟IP:192.168.0.254
一、主节点信息
PERRIPADDR=192.168.0.3
VIPADDR=192.168.0.254
ROUTERID=$(echo ${VIPADDR}|awk -F "." '{print$NF}')
IPADDR=$(ifconfig $(ip route | grep default|awk '{print$5}')|grep "inet "|awk '{print$2}'|head -n 1)
INSTANCEID=$(echo ${IPADDR}|awk -F "." '{print$NF}')
INTERFACE=$(ip route | grep default | awk '{print $5}')
PRIORITY=100
二、从节点信息
PERRIPADDR=192.168.0.2
VIPADDR=192.168.0.254
ROUTERID=$(echo ${VIPADDR}|awk -F "." '{print$NF}')
IPADDR=$(ifconfig $(ip route | grep default|awk '{print$5}')|grep "inet "|awk '{print$2}'|head -n 1)
INSTANCEID=$(echo ${IPADDR}|awk -F "." '{print$NF}')
INTERFACE=$(ip route | grep default | awk '{print $5}')
PRIORITY=99
三、各节点配置
3.1.keepalived安装与配置
yum -y install keepalived
cat << EOF > /etc/keepalived/keepalived.conf
global_defs {
script_user root
enable_script_security
}
vrrp_script chk_nginx_port {
script "/etc/keepalived/scripts/healthcheck.sh"
interval 10
weight -2
rise 3
}
vrrp_instance INSTANCE-${INSTANCEID} {
state BACKUP
virtual_router_id ${ROUTERID}
interface ${INTERFACE}
priority ${PRIORITY}
authentication {
auth_type PASS
auth_pass password
}
unicast_peer{
${PERRIPADDR}
}
virtual_ipaddress {
${VIPADDR}
}
track_script {
chk_nginx_port
}
notify_master /etc/keepalived/scripts/change-to-master.sh
notify_backup /etc/keepalived/scripts/change-to-slave.sh
}
EOF
3.2.服务相关脚本
内容按相关服务补充
mkdir -p /etc/keepalived/scripts/
touch /etc/keepalived/scripts/change-to-master.sh
touch /etc/keepalived/scripts/change-to-slave.sh
touch /etc/keepalived/scripts/healthcheck.sh
chmod +x /etc/keepalived/scripts/*
3.3.服务启动与状态检查
systemctl restart keepalived
systemctl enable keepalived
ip address show ${INTERFACE} | grep "inet "