keepalived 2.0.20 + 2.1.5 主从配置
一、2.0.20 版本配置
1、master配置
! Configuration File for keepalived
vrrp_script check_nginx {
script "/home/spots/keepalived/check_nginx.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state MASTER
interface ens192
virtual_router_id 60
priority 100
advert_int 1
unicast_src_ip 10.73.56.238
unicast_peer {
# 其他机器ip
10.73.56.239
}
# 设置nopreempt防止抢占资源
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.73.56.251/24
}
track_script {
check_nginx
}
}
2、backup配置
! Configuration File for keepalived
vrrp_script check_nginx {
script "/home/spots/keepalived/check_nginx.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state BACKUP
interface ens192
virtual_router_id 60
priority 90
advert_int 1
unicast_src_ip 10.73.56.239
unicast_peer {
# 其他机器ip
10.73.56.238
}
# 设置nopreempt防止抢占资源
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.73.56.251/24
}
track_script {
check_nginx
}
}
3、检测脚本,使用docker-compose编排的web服务,nginx作为基础镜像源
#!/bin/sh A=`ps -C nginx --no-header |wc -l` if [ $A -eq 0 ] then docker-compose -f /home/spots/docker-compose.yml restart spot-web-fujian sleep 1 A2=`ps -C nginx --no-header |wc -l` if [ $A2 -eq 0 ] then systemctl stop keepalived fi fi
二、2.1.5配置
1、主配置
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_script check_nginx {
script "/data/spots/check_nginx.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 50
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.168.2.137/24
}
track_script {
check_nginx
}
}
2、备配置
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_script check_nginx {
script "/data/spots/check_nginx.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 50
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.168.2.137/24
}
track_script {
check_nginx
}
}
3、check_nginx.sh
#!/bin/sh
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ]
then
docker-compose -f /data/spots/docker-compose.yml restart spot-web-sichuan
sleep 1
A2=`ps -C nginx --no-header |wc -l`
if [ $A2 -eq 0 ]
then
systemctl stop keepalived
fi
fi

浙公网安备 33010602011771号