行方版部署Keepalived

2024-06-19  本文已影响0人  平凡的运维之路

行方版Keepalived

使用平滑切换,检查脚本进程进程是否存在,则对应return返回1或者0,1时,则keepalived为主节点是降级,切换vip地址,不停keepalived服务。

配置文件说明

! Configuration File for keepalived

global_defs {
   router_id nginx
   vrrp_cpu_affinity 1
   vrrp_priority -20
   checker_priority -20
   vrrp_rt_priority 99
   vrrp_garp_master_refresh 15
   vrrp_no_swap 
   checker_no swap
   vrrp_skip_check_adv_addre
}
vrrp_script chk_jincheng {
    script "/etc/keepalived/scripts/chk.sh"
    interval 5
    fall 2
    rise 1
    user appnginx  #直营chk.sh脚本使用appnginx用户执行
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 136
    nopreempt
    advert_int 1
    unicast_src_ip 
    unicast_peer { 192.168.127.8
        192.168.127.9
    }
    authentication {
        auth_type PASS
        auth_pass nginx_2024
    }
    virtual_ipaddress {
        192.168.127.10
    }
    track_script {
        chk_jincheng
    }
    notify_master /etc/keepalived/scripts/to_master.sh #当状态切换主时,执行脚本。
    notify_fault  /etc/keepalived/scripts/to_fault.sh #当状态为错误时,执行脚本。
}
! Configuration File for keepalived

global_defs {
   router_id nginx
   vrrp_cpu_affinity 1
   vrrp_priority -20
   checker_priority -20
   vrrp_rt_priority 99
   vrrp_garp_master_refresh 15
   vrrp_no_swap 
   checker_no swap
   vrrp_skip_check_adv_addre
}
vrrp_script chk_jincheng {
    script "/etc/keepalived/scripts/chk.sh"
    interval 5
    fall 2
    rise 1
    user appnginx  #直营chk.sh脚本使用appnginx用户执行
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 136
    nopreempt
    advert_int 1
    unicast_src_ip 
    unicast_peer { 192.168.127.9
        192.168.127.8
    }
    authentication {
        auth_type PASS
        auth_pass nginx_2024
    }
    virtual_ipaddress {
        192.168.127.10
    }
    track_script {
        chk_jincheng
    }
    notify_master /etc/keepalived/scripts/to_master.sh #当状态切换主时,执行脚本。
    notify_fault  /etc/keepalived/scripts/to_fault.sh #当状态为错误时,执行脚本。
}

检查脚本说明

[root@web_nginx_1 scripts]# more chk.sh 
#!/bin/bash

#check nginx
pid_num=$(ps -ef|grep 'api_server|grep -v grep| wc -l)
if [ $pid_num -eq 0 ];then
    exit 1;
else
    exit 0;
fi
#!/bin/bash
mv /opt/keepalived/etc/scripts/chk.sh  /opt/keepalived/etc/scripts/chk.sh_bak
cd /data/appapi/Platform
source /data/appapi/.bash_profile
./start.sh stop api
./start.sh start api
#exit
#EOF
mv /opt/keepalived/etc/scripts/chk.sh_bak /opt/keepalived/etc/scripts/chk.sh

本文由mdnice多平台发布

上一篇下一篇

猜你喜欢

热点阅读