keepalived的安装与配置

keepalived的安装与配置

1、下载安装包

下载地址 :keepalived下载地址

2、把keepalived安装包上传至服务器

3、解压压缩包

tar -zxvf keepalived-2.2.2.tar.gz


4、安装

cd keepalived-2.2.2
./configure --prefix=/usr/local/keepalived


报错:

解决:

yum -y install libnl libnl-devel


再次报错,权限不足,切换root用户,再次执行

完成之后,切回普通用户,再次安装

su yindy
./configure --prefix=/usr/local/keepalived

5、编译验证

make && make install 

报错:

解决:切换用户,再次执行

su root
make && make install


6、给keepalived相同文件创建链接ln -s ,执行以下命令

ln -s /yindy/keepalived-2.2.2/keepalived/etc/init.d/keepalived /etc/rc.d/init.d
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/

报错:没有权限,切换root用户,再次执行

su root 

在这里插入图片描述

7、在/usr/local/keepalived/文件加下创建配置文件

cd /usr/local/keepalived/
touch keepalived.conf


8、查看网卡信息

ip addr

8、编辑keepalived.conf

master:

global_defs {
   router_id LVS_MASTER  #名称标记为master,名字随便取
   vrrp_gna_interval 0
}

#加入周期性检测nginx服务脚本的相关配置
vrrp_script check_nginx{
    script "/etc/keepalived/check_nginx.sh" #心跳执行的脚本,检测nginx是否启动
    interval 2                           #(检测脚本执行的间隔,单位是秒)
}

vrrp_instance VI_1 {
    state MASTER #指定当前节点为master节点,只能有一个master,其余只能是backup
    interface ens33 #绑定此虚拟路由使用的网卡的名称,使用ifconfig或者ip addr查看
    virtual_router_id 99 #指定虚拟路由id,虚拟路由的唯一标识,范围是0-255,mater和backup节点需要指定一样的,相同id为一组
    priority 200 #指定当前结点的优先级,master节点要大于backup节点。
    advert_int 1 #指定发送VRRP通告的间隔,单位是秒
    virtual_ipaddress {
        192.168.199.130 #指定虚拟ip,自己定义的虚拟ip
    }
	
	#添加跟踪(执行脚本)
    track_script{
        check_nginx
    }
}

backup:

global_defs {
   router_id LVS_BACKUP  #名称标记为BACKUP,名字随便取
   vrrp_gna_interval 0
}

#加入周期性检测nginx服务脚本的相关配置
vrrp_script check_nginx{
    script "/etc/keepalived/check_nginx.sh" #心跳执行的脚本,检测nginx是否启动
    interval 2                           #(检测脚本执行的间隔,单位是秒)
}

vrrp_instance VI_1 {
    state BACKUP #指定当前节点为master节点,只能有一个master,其余只能是backup
    interface ens33 #绑定此虚拟路由使用的网卡的名称,使用ifconfig或者ip addr查看
    virtual_router_id 99 #指定虚拟路由id,虚拟路由的唯一标识,范围是0-255,mater和backup节点需要指定一样的,相同id为一组
    priority 199 #指定当前结点的优先级,master节点要大于backup节点。
    advert_int 1 #指定发送VRRP通告的间隔,单位是秒
    virtual_ipaddress {
        192.168.199.130 #指定虚拟ip,自己定义的虚拟ip
    }
	
	#添加跟踪(执行脚本)
    track_script{
        check_nginx
    }
}


执行命令

ln -s /usr/local/keepalived/keepalived.conf /etc/keepalived/

9、编辑监听服务shell脚本check_nginx.sh,并上传到keepalived.conf配置的执行路径/etc/keepalived/

#!/bin/bash
#检测nginx是否启动了
A=`ps -C nginx --no-header |wc -l`        
if [ $A -eq 0 ];then    #如果nginx没有启动就启动nginx                        
      /root/ydy/nginx/sbin/nginx                #重启nginx,也可以使直接监听应用服务
      if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then    #nginx重启失败,则停掉keepalived服务,进行VIP转移
              killall keepalived                    
      fi
fi

10、杀掉nginx进程,然后执行脚本,验证脚本正确性

ps -ef | grep nginx
pkill -9 nginx 
ps -ef | grep nginx
sh check_nginx.sh
ps -ef | grep nginx

11、查看keepalived的状态

service keepalived status
## systemctl keepalived status

12、启动keepalived ,然后查看

service keepalived start
service keepalived status
ip a


12、验证监听脚本是否可以重启服务

ps -ef | grep nginx 
pkill -9 nginx 
ps -ef | grep nginx 

13、验证keepalived虚拟ip调用

在浏览器输入http://虚拟ip:port,查看页面是否正常展示。

14、验证keepalived的高可用

停掉其中一台服务器的keepalived

service keepalived stop 
## systemctl keepalived stop 

再次在浏览器输入http://虚拟ip:port,查看页面是否正常展示。

猜你喜欢

转载自blog.csdn.net/qq_40917075/article/details/130578696