Keepalived的详细配置与使用以及实现双主热备

https://www.csdn.net/tags/MtjaQg5sOTg5MDMtYmxvZwO0O0OO0O0O.html

一、Keepalived的基础配置

打开keepalived.conf 文件,这个文件是keepalived的配置文件

global_defs {
   # 路由id: 当前安装的keepalived节点主机的标识符,全局唯一
   router_id kepp_155
}

# 计算机节点
vrrp_instance VI_1 {
    # 表示的状态,当前155位nginx的主节点,MASTER/BACKUP
    state MASTER
    # 当前实例绑定的网卡
    interface enp0s3
    # 表示那些服务器一个组,保证主备节点一致
    virtual_router_id 51
    # 优先级/权重,谁的优先级高,在MASTER关掉以后,就能成为MASTER
    priority 100
    # 主备之间同步检查的时间间隔,默认1s
    advert_int 1
    # 认知授权的密码,防止非法节点的进入
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    #  虚拟ip
    virtual_ipaddress {
        192.168.1.111
    }
}

配置完成后在Keepalived安装目录中sbin目录下执行

./keepalived

启动Keepalived,然后使用ip addr命令查看ip会发现在我们本机的ip下面会出现我们刚刚配置的虚拟ip

Keepalived的详细配置与使用以及实现双主热备_第1张图片
然后就可以尝试使用虚拟ip访问服务器,如果成功说明已经配置好了

二、注册keepalived为系统服务

安装完成后想要关掉keepalived -9 这样不太好,所有我们将keepalived注册为系统服务
首先进入keepalived解压的目录然后在进入目录下的keepalived/etc/下将init.d和 sysconfig下的keepalived文件复制到linux系统的/etc/下的init.d和 sysconfig下
复制完成后使用以下命令刷新keepalived

[root@localhost etc]# systemctl daemon-reload 

配置完成后以后可以使用以下命令进行启动

[root@localhost etc]# systemctl start keepalived.service 

停止服务使用

[root@localhost etc]# systemctl stop keepalived.service 

重启服务使用

[root@localhost etc]# systemctl restart keepalived.service 

三、实现双机主备高可用

首先在备用机里安装好keepalivd,安装流程和主机一直,安装好后来配置下配置文件

global_defs {
   # 路由id: 当前安装的keepalived节点主机的标识符,全局唯一
   router_id kepp_154
}

# 计算机节点
vrrp_instance VI_1 {
    # 表示的状态,当前155位nginx的主节点,MASTER/BACKUP
    state BACKUP
    # 当前实例绑定的网卡
    interface enp0s3
    # 表示那些服务器一个组,保证主备节点一致
    virtual_router_id 51
    # 优先级/权重,谁的优先级高,在MASTER关掉以后,就能成为MASTER
    priority 90
    # 主备之间同步检查的时间间隔,默认1s
    advert_int 1
    # 认知授权的密码,防止非法节点的进入
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    #  虚拟ip
    virtual_ipaddress {
        192.168.1.111
    }
}

首先修改下router_id这个的值,这个是全局变量要唯一
然后检查下自己计算机的网卡名字将interface的值配置好,(查看网卡使用ip addr)
然后将权重适当的调低,将state 改为BACKUP(表示备用机器)
virtual_router_id和下面的秘钥和虚拟ip要保持和主机一直,配置好后启动keepalived。启动后使用ip addr检查虚拟ip并没有出现是正常的,因为此时主机正在运行,虚拟ip自动绑定的是主机,这时候我们关掉主机在次使用ip addr发现虚拟ip出现,说明绑定到了备用机上,网页请求虚拟ip就会请求到备用机,如果此时主机再次启动,虚拟ip会自动与备用机解绑与主机再次绑定。

四、keepalived配置Nginx自动启动,实现7*24小时不间断服务

由于keepalived检查的是linux,如果nginx挂掉后,keepalived依然还是会绑定在主节点上,就会使得用户无法请求。
这时候我们需要写一些脚本检查nginx是否还在正常运行,如果挂掉就重启它,实在启动不了再让keepalived绑定备用机器

为了方便寻找,我们将脚本放在keepalived的配置文件的目录下
首先进入/etc/keepalived
使用vim 编写脚本 脚本内容如下

#!/bin/bash 

A=`ps -C nginx --no-header |wc -l` 
# 判断nginx是否宕机,如果宕机了,尝试重启 
if [ $A -eq 0 ];then 
        /usr/local/nginx/sbin/nginx 
        # 等待一小会再次检查nginx,如果没有启动成功,则停止keepalived,使其启动备用机 
        sleep 3 
        if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then 
                killall keepalived 
        fi 
fi

尝试运行下脚本可以启动ng后要在keepalived的核心配置文件里做一个定时的监听
首先在keepalived的核心配置文件里添加一个脚本方法 ,

vrrp_script check_nginx_alive { 
        script "/etc/keepalived/check_nginx_alive_or_not.sh"  
        interval 2 # 每隔两秒运行上一行脚本 
        weight 10 # 如果脚本运行成功,则升级权重+10
}

然后在计算机节点vrrp_instance VI_1 里面调用一下这个脚本方法

track_script {
        check_nginx_alive # 追踪 nginx 脚本
}

配置好后重启keepalived。
这是我们到ng的目录下使用./nginx -s stop 停止ng后刷新页面发现还是可以方法,说明keepalived自动重启了ng

五、实现keepalived双主热备

双主热备的思想是在建一个虚拟ip将以前的主机作为备用机,将以前的备用机作为主机,然后使用DNS解析域名实现两个虚拟ip实现负载均衡
首先打开主机的keepalived的核心配置文件keepalived.conf 复制一份 vrrp_instance VI_1然后将名字VI_1修改下,将状态state改为备用机BACKUP,然后将组virtual_router_id修改下,虚拟ip在定义一个后保存

vrrp_instance VI_2 {
    state BACKUP
    interface enp0s3
    virtual_router_id 52
    priority 80
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }

    track_script {
        check_nginx_alive # 追踪 nginx 脚本
    }

    virtual_ipaddress {
        192.168.1.198
    }
}

备用机也要修改,修改的状态为主机MASTER,组要保持和刚才配置的一样,虚拟ip也是,配置后重启keepalived。进行测试。两个ip都能访问表示配置成功

 

你可能感兴趣的:(系统,运维,linux,服务器)