安装

apt install libipset-dev  keepalived -y

创建账户

useradd -s/usr/sbin/nologin -M -g root keepalived_script

修改Linux

vim /etc/sysctl.conf
#在末尾追加一行:net.ipv4.ip_nonlocal_bind=1

创建Keepalived配置文件

vim /etc/keepalived/keepalived.conf

vrrp_script chk_appsvc {
#定义一个脚本文件,这个脚本文件将用来检测本机是否可用,如果可用则返回0
script /etc/keepalived/keepalived-check-appsvc.sh
interval 1
fall 2
rise 2
} vrrp_instance VI_1 {
#选择一个网卡
interface ens7 authentication {
auth_type PASS
auth_pass secr3t
} virtual_router_id 51 virtual_ipaddress {
10.1.96.100 #整个集群的对外地址
} track_script {
chk_appsvc
} #状态:MASTER BACKUP STOP FAULT
state MASTER
priority 101 unicast_src_ip 10.1.96.5 #本机地址(DIP)
unicast_peer {
10.1.96.3 #对端地址,其它机器的ip(DIP)
}
#状态切换动作脚本,定义了状态切换时执行的动作
notify /etc/keepalived/keepalived-action.sh
}

创建状态切换动作脚本

vim /etc/keepalived/keepalived-action.sh
chmod +x /etc/keepalived/keepalived-action.sh
#!/bin/bash

TYPE=$1
NAME=$2
STATE=$3 case $STATE in
"MASTER")
  systemctl start nginx
  exit 0
  ;;
"BACKUP"|"STOP")
#systemctl stop nginx
  exit 0
  ;;
"FAULT")
#systemctl stop nginx
  exit 0
  ;;
*)
  exit 1
  ;;
esac #当某个服务器成为MASTER的时候,启动nginx服务。

创建状态检测脚本

vim /etc/keepalived/keepalived-action.sh
chmod +x /etc/keepalived/keepalived-check-appsvc.sh
#!/bin/bash
exit 0 #返回0表示当前主机状态正常.如果返回非0,或者设备无法连接,就会触发转移.
05-11 09:39
查看更多