Keepalived安装及双机主备配置

keepalived简介:

keepalived基于VRRP协议,用于解决单点故障,可以实现nginx的高可用,免费的软件。使用它可以实现高可用HA机制。

虚拟路由冗余协议协议(VRRP协议)

用于解决内网单机故障的路由协议,构建有多个路由器MASTER BACKUP,将几台提供相同服务的路由器组成路由器组,每个路由器绑定一个相同的VIP(虚拟IP)。

注意,一般使用keepalived实现高可用有个前提就是硬件配置需要一样,否则主备硬件差距过大,主的宕机,备机有可能因为硬件设备太差,导致因流量过大而直接崩溃,无法实现高可用,所以一般选择主备硬件一样。

keepalived安装:

一、在官网下载压缩文件https://www.keepalived.org/download.html

这里我选择2.0.20。(刚开始选的2.1.5,安装各种报错,各种未发现函数名。无解,放弃了,就选了这个版本)

二、上传并解压文件,这里我放在:

2.1创建文件夹

#我放在了这个文件夹下,没有的话执行这个命令创建,或者自己定义
mkdir /home/software

2.2执行解压命令:

#进入上传的文件路径
cd /home/software


#解压,解压文件根据自己的
tar -zxvf keepalived-2.0.20.tar.gz

三、安装依赖包:

yum -y install libnl libnl-devel

四、使用configure配置安装目录与核心文件存在

#进入到解压目录下
cd /home/software/keepalived-2.0.20

#使用configure配置安装目录与核心文件存在
./configure --prefix=/usr/local/keepalived --sysconf=/etc

五、安装keepalived

make && make install

六、安装完成后进入到/etc/keepalived

 cd /etc/keepalived/

可以看到这些keepalived.conf,表明安装成功。

七、查看网卡信息如下,获取网卡为ens33

[root@localhost sbin]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:b8:21:eb brd ff:ff:ff:ff:ff:ff
    inet 192.168.235.101/24 brd 192.168.235.255 scope global noprefixroute ens33

七、修改配置文件如下:

vi keepalived.conf
! Configuration File for keepalived

global_defs {
   #故障时,主备切换通知到的email
   #notification_email {
     #[email protected]
     #[email protected]
     #[email protected]
   #}

   #email配置
   #notification_email_from [email protected]
   #smtp_server 192.168.200.1
   #smtp_connect_timeout 30

   #路由ID,当前安装keepalived的节点主机标识符,需保证全局唯一
   router_id keep_101
   #vrrp_skip_check_adv_addr
   #vrrp_strict
   #vrrp_garp_interval 0
   #vrrp_gna_interval 0
}

#基于vrrp协议的实例,可理解为一个服务器节点
vrrp_instance VI_1 {
    #表示状态为主节点MASTER还是备用机BACKUP
    state MASTER
    #当前示例绑定的网卡,根据ip addr查出来的网卡
    interface ens33
    #虚拟路由id,保证主备节点该值一致
    virtual_router_id 51
    #优先级/权重,master权重一般高于backup,在master挂掉后谁的优先级高,谁就能成为master
    priority 100
    #主备之间同步检查的时间间隔(心跳),默认为1s
    advert_int 1
    #认证授权的密码,防止非法节点进入,主备需要一致
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    #虚拟IP,可以有多个,根据自己实际情况修改
    virtual_ipaddress {
        192.168.235.150
    }
}

八、启动keepalive:

/usr/local/keepalived/sbin/keepalived

九、查看keepalived进程信息及网卡信息:

ps -ef | grep keepalived

信息如下:

[root@localhost sbin]# ps -ef | grep keepalived
root       1550      1  0 23:01 ?        00:00:00 /usr/local/keepalived/sbin/keepalived -D
root       1551   1550  0 23:01 ?        00:00:00 /usr/local/keepalived/sbin/keepalived -D
root       1570   1486  0 23:11 pts/0    00:00:00 grep --color=auto keepalived
ip addr

可以看到虚拟ip生效

[root@localhost sbin]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:b8:21:eb brd ff:ff:ff:ff:ff:ff
    inet 192.168.235.101/24 brd 192.168.235.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.235.150/32 scope global ens33  #这里多了配置虚拟ip
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:feb8:21eb/64 scope link 
       valid_lft forever preferred_lft forever

十、再备机上执行上述同样的操作,修改配置文件如下即可

! Configuration File for keepalived

global_defs {
   #故障时,主备切换通知到的email
   #notification_email {
     #[email protected]
     #[email protected]
     #[email protected]
   #}

   #email配置
   #notification_email_from [email protected]
   #smtp_server 192.168.200.1
   #smtp_connect_timeout 30

   #路由ID,当前安装keepalived的节点主机标识符,需保证全局唯一
   router_id keep_103
   #vrrp_skip_check_adv_addr
   #vrrp_strict
   #vrrp_garp_interval 0
   #vrrp_gna_interval 0
}

#基于vrrp协议的实例,可理解为一个服务器节点
vrrp_instance VI_1 {
    #表示状态为主节点MASTER还是备用机BACKUP
    state BACKUP
    #当前示例绑定的网卡,根据ip addr查出来的网卡
    interface ens33
    #虚拟路由id,保证主备节点该值一致
    virtual_router_id 51
    #优先级/权重,master权重一般高于backup,在master挂掉后谁的优先级高,谁就能成为master
    priority 90
    #主备之间同步检查的时间间隔(心跳),默认为1s
    advert_int 1
    #认证授权的密码,防止非法节点进入,主备需要一致
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    #虚拟IP,可以有多个,根据自己实际情况修改
    virtual_ipaddress {
        192.168.235.150
    }
}

猜你喜欢

转载自blog.csdn.net/qq_34871626/article/details/107774077