Keepalived高可用集群应用实战(一/安装部署及配置)

本文详细介绍了Keepalived软件通过VRRP协议实现高可用功能,包括故障切换原理、服务搭建步骤、配置文件详解及防止脑裂现象的策略。Keepalived用于管理LVS负载均衡、健康检查及提供网络服务高可用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Keepalived介绍

Keepalived软件主要是通过VRRP协议实现高可用功能.VRRP是 Virtual Router Redundanacy Protocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,他能保证当个别节点宕机时,整个网络可以不间断的运行。

二、Keepalived服务的三个重要功能

1、管理LVS负载均衡软件

2、实现对LVS集群节点健康检查功能(healthcheck)

3、作为系统网络服务的高可用功能(failover)

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

三、Keepalived高可用故障切换转移原理

keepalived高可用功能实现的简单原理为:两台主机同时安装好keepalived软件并启动服务,开始正常工作。由角色为Master的主机获得所有资源并对用户提供服务,角色为Backup的主机作为Master主机的热备;当角色为Master的主机失效或出现故障时,角色为Backup的主机将自动接管Master主机的所有工作,包括接管VIP资源及相应资源服务;而当角色为Master的主机故障修复后,又会自动接管回它原来处理的工作,角色Backup的主机则同时释放Master主机失效时它接管的工作,此时,两台主机将恢复到最初启动时各自的原始角色及工作状态。

四、Keepalived高可用服务搭建准备

1、硬件环境准备

两台Keepalived服务器(一台master、一台slave),两台WEB服务器

2、安装Keepalived

两台服务器上同时安装

[root@bigdata opt]# tar -zxvf keepalived-1.4.2.tar.gz

 安装依赖插件:

[root@bigdata keepalived-1.4.2]# yum install -y gcc openssl-devel popt-devel

[root@bigdata keepalived-1.4.2]# ./configure --prefix=/opt/keepalived-1.4.2

[root@bigdata keepalived-1.4.2]# make && make install

修改配置文件:

# cd /opt/keepalived-1.4.2/etc/keepalived

【Master】配置:

[root@bigdata keepalived]# vim keepalived_master.conf

! Configuration File for keepalived

global_defs {
    #一个没重复的名字即可
    router_id zhaosj_master
}

#检测nginx是否运行
vrrp_script chk_nginx {
        script "/etc/keepalived/nginx_check.sh"
        interval 2
        weight -20
}

vrrp_instance VI_1 {
    # 此处不设置为MASTER,通过priority来竞争master
    state MASTER
    # 网卡名字,文章下方会给出如何获取网卡名字的方法
    interface eth0
    # 同一个keepalived集群的virtual_router_id相同
    virtual_router_id 51
    # 权重,master要大于slave
    priority 100
    # 主备通讯时间间隔
    advert_int 1
    # 如果两节点的上联交换机禁用了组播,则采用vrrp单播通告的方式
    # 本机ip
    unicast_src_ip 192.168.109.128
    unicast_peer {
        # 其他机器ip
        192.168.0.189
    }
    # 设置nopreempt防止抢占资源
    nopreempt
    # 主备保持一致
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    # 与上方nginx运行状况检测呼应
    track_script {
        chk_nginx
    }
    virtual_ipaddress {
        # 虚拟ip地址(VIP,一个尚未占用的内网ip即可)
        192.168.200.16
        192.168.200.17
        192.168.200.18
    }
}

}

配置【Slave】:

[root@bigdata keepalived]# vim keepalived_slave.conf

! Configuration File for keepalived
global_defs {
    #一个没重复的名字即可
    router_id zhaosj_slave
}   

#检测nginx是否运行
        script "/etc/keepalived/nginx_check.sh"
        interval 2
        weight -20

vrrp_instance VI_1 {
    # 此处不设置为MASTER,通过priority来竞争master
    state MASTER
    # 网卡名字,文章下方会给出如何获取网卡名字的方法
    virtual_router_id 51
    priority 90
    # 主备通讯时间间隔
    advert_int 1
    # 如果两节点的上联交换机禁用了组播,则采用vrrp单播通告的方式
    # 本机ip
    unicast_src_ip 192.168.109.128
    unicast_peer {
        # 其他机器ip
        192.168.0.189
    }   
    # 设置nopreempt防止抢占资源
    nopreempt
    # 主备保持一致
    authentication {
        auth_type PASS
        auth_pass 1111
    }   
    # 与上方nginx运行状况检测呼应
    track_script {
        chk_nginx
    }   
    virtual_ipaddress {
        # 虚拟ip地址(VIP,一个尚未占用的内网ip即可)
        192.168.200.16
        192.168.200.17
        192.168.200.18
    }   
}   

}
nginx监听脚本:

#! /bin/bash
pidof nginx
if [ $? -ne 0 ];then
/etc/init.d/keepalived stop
fi

3、防止出现脑裂现象(主备同时获取了VIP地址)

# 指定keepalived配置的网卡:enp0s3,固定的VRRP广播地址:224.0.0.18
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface enp0s3 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --out-interface enp0s3 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --reload

# 查看配置的规则
firewall-cmd --direct --get-rules ipv4 filter INPUT
firewall-cmd --direct --get-rules ipv4 filter OUTPU

4、启动keepalived服务并检查服务状态

# service keepalived start
# 配置开机自启动
systemctl enable keepalived

查看服务启动情况:# ps -aux |grep keepalived

查看启动日志:# journalctl -xe

查看keepalived日志:# tail -f /var/log/messages

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值