keepalived实战演练

发布于:2024-10-12 ⋅ 阅读:(105) ⋅ 点赞:(0)

环境准备:两台虚拟机,关闭防火墙,selinux,配置阿里云仓库,配置epel

192.168.88.21   (主机master)

192.168.88.22 (备用机backup

实验说明:给主机配置一个虚拟IP192.168.88.100 当访问虚拟IP时,可以访问到nginx服务器下的项目。当主机服务器宕机时,备用机可以代替主机工作。当主机nginx服务挂掉后,实现自动启动nginx服务,保持项目可以随时访问。

一、下载 keepalived

yum -y install keepalived

二、编辑文件keepalived.conf

vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
 router_id 1                            #设备在组中的标识,设置不一样即可
 }

vrrp_script chk_nginx {                        #健康检查
 script "/etc/keepalived/ck_ng.sh"     #检查脚本
 interval 2                            #检查频率.秒
 weight -5                             #priority减5
 fall 3                                        #失败三次
 }

#高可用集群的组员设置
vrrp_instance VI_1 {               #VI_1。实例名两台路由器相同。同学们要注意区分。
    state MASTER                        #主或者从状态
    interface ens33                     #监控网卡
    mcast_src_ip 192.168.88.21         #心跳源IP,当前主机的ip
    virtual_router_id 55                #虚拟路由编号,主备要一致。同学们注意区分
    priority 100                        #优先级 数值越大优先级越高
    advert_int 1                        #心跳间隔 单位是秒

    authentication {                    #秘钥认证(1-8位)
        auth_type PASS
        auth_pass 123456
    }

    virtual_ipaddress {                 #VIP 虚拟ip
    192.168.88.100/24
        }

  track_script {                       #引用脚本
       chk_nginx
    }

}

设置开机自启

systemctl enable keepalived.service

注明:

同理192.168.88.21备用机需要与主机在同一组

同上不同的是:

mcast_src_ip 192.168.88.21 修改为 mcast_src_ip 192.168.88.22   #心跳源IP,当前主机的ip

priority 100             修改为   priority  90        #优先级 数值越大优先级越高

state MASTER        修改为 state backup                #主或者从状态

三、master backup两台添加Nginx监控脚本

vi /etc/keepalived/ck_ng.sh
#!/bin/bash
#检查nginx进程是否存在
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
#尝试启动一次nginx,停止5秒后再次检测
    systemctl start nginx
    sleep 5
    counter=$(ps -C nginx --no-heading|wc -l)
    if [ "${counter}" = "0" ]; then
#如果启动没成功,就杀掉keepalive触发主备切换
        service keepalived stop
    fi
fi

1、给执行权限

chmod +x /etc/keepalived/ck_ng.sh

四、实战模拟

访问192.168.88.100

模拟192.168.11服务器宕机。当主机宕机时再次访问虚拟IP192.168.88.100时,这个时候备用机会替代主机工作,保持项目能正常访问

模拟主机192.168.88.21修复好后,再次访问虚拟IP192.168.88.100时,这是因为备用机的优先级小于主机,所以当主机修复时,192.168.88.22依旧是备用机。


网站公告

今日签到

点亮在社区的每一天
去签到