keepalived部署

1.keepalived服务介绍

keepalived起初是专门为LVS设计的,专门用来监控 LVS集群系统中各个服务节点的状态,后来又加入了VRRP的功能,因此除了配合LVS服务外,也可以作为其他服务器(nginx,haproxy)的高可用软件,VRRP是(virtual router redundancy protocol)虚拟路由器冗余协议的缩写,VRRP出现的目的就是为了解决静态路由出现的单点故障问题,它能够保证网络的不间断、稳定的运行。所以,keepalived一方面具有LVS cluster nodes healthchecks功能,另一方面也具有LVS directors failover功能。

2.keepalived两大服务用途

healthcheck:负载均衡定期检查RS的可用性决定是否给其他分发请求,配合LVS做集群节点做健康检查
failover:实现LB master主机和backup主机之间故障转移和自动切换
1.	keepalived.conf里配置就可以实现LVS功能
2.	keepalived可以对下面的集群节点做健康检查

 3.软件版本

软件	版本
nginx	nginx-1.6.3
keepalived	keepalived-1.2.16

 4.keepalived安装

cd /server/tools/
wget http://www.keepalived.org/software/keepalived-1.2.16.tar.gz
ln -s /usr/src/kernels/2.6.32-431.el6.x86_64/ /usr/src/linux
提示:有可能会没有/usr/src/kernells/2.6.42-431.e16.x86_64软件包,此时需要提前通过yum install kernel-devel –y 命令来安装

cd /server/toosl/
tar -zxvf keepalived-1.2.16.tar.gz
cd keepalived-1.2.16 

./configure --prefix=/usr/local/keepalived-1.2.16
make
make install

ln -s /usr/local/keepalived-1.2.16/ /usr/local/keepalived          # 创建软链接
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/    # 生成启动脚本命令
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ # 配置启动脚本的参数
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/              #环境变量

mkdir /etc/keepalived                                     # 创建keepalived配置文件
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/                                   # 拷贝模板

/etc/init.d/keepalived start
ps -ef|grep keepalived
root       2810      1  0 19:31 ?        00:00:00 keepalived -D
root       2812   2810  0 19:31 ?        00:00:00 keepalived -D
root       2813   2810  0 19:31 ?        00:00:00 keepalived -D
root       2816   1401  0 19:31 pts/0    00:00:00 grep keepalived

 5.主keepalived.conf主节点配置keepalived文件

[root@LB01 keepalived]# cp /etc/keepalived/keepalived.conf keepalived.conf.bak
[root@LB01 keepalived]# vim /etc/keepalived/keepalived.conf  # 编译配置文件
! Configuration File for keepalived
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_01   # vrrp ID
}
vrrp_instance VI_1 {
    state MASTER   # 节点标识
    interface eth0   # 绑定VIP的网卡
    virtual_router_id 51
    priority 150     # 优先级,主备最好相差50,值越大优先级越高
    advert_int 1     # 监测时间为1s
    authentication {
        auth_type PASS
        auth_pass 1111 # 两台keepalived通信的秘钥
    }
    virtual_ipaddress {
        192.168.2.100/24 #绑定VIP的地址
    }
}

 6.添加VIP地址

[root@LB01 keepalived]# ip addr add 192.168.2.100/24 dev eth0   # 增加vip网卡地址
[root@LB01 keepalived]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
    valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:01:ec:a5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.10/24 brd 192.168.2.255 scope global eth0
    inet 192.168.2.100/24 scope global secondary eth0  # 增加的VIP地址
    inet6 fe80::20c:29ff:fe01:eca5/64 scope link 
       valid_lft forever preferred_lft forever
[root@LB01 keepalived]# /etc/init.d/keepalived start

 7.备keepalived.conf配置文件。把主keepalived.conf配置文件拷贝到备服务器中

[root@LB01 keepalived]# scp /etc/keepalived/keepalived.conf 192.168.2.12:/etc/keepalived/  # 传到2.12服务器
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_02  # VRRP ID
}
vrrp_instance VI_1 {
    state BACKUP   # 节点标识
    interface eth0
    virtual_router_id 51
    priority 100     # 优先级
    advert_int 1     # 监测时间为1s
    authentication {
        auth_type PASS
        auth_pass 1111  # 两台keepalived通信的秘钥
    }
    virtual_ipaddress {
        192.168.2.100/24
    }
}

 8.检查keepalived

主/备keepalived防火墙都需要关闭
[root@LB01 keepalived]# /etc/init.d/iptables stop            # 关闭防火墙
[root@LB01 keepalived]# ip add|grep 192.168.2.100
inet 192.168.2.100/24 scope global secondary eth0         # vip 地址
[root@LB01 keepalived]#
[root@LB02 keepalived-1.2.16]# ip add|grep 192.168.2.100  # 空的
[root@LB02 keepalived-1.2.16]#

 9.配置keepalived日志文件

[root@LB01 keepalived]# vim /etc/sysconfig/keepalived        编辑日志配置文件
# Options for keepalived. See `keepalived --help' output and keepalived(8) and
# keepalived.conf(5) man pages for a list of all options. Here are the most
# common ones :
#
# --vrrp                -P    Only run with VRRP subsystem.
# --check              -C    Only run with Health-checker subsystem.
# --dont-release-vrrp   -V    Dont remove VRRP VIPs & VROUTEs on daemon stop.
# --dont-release-ipvs   -I     Dont remove IPVS topology on daemon stop.
# --dump-conf        -d     Dump the configuration data.
# --log-detail         -D     Detailed log messages.
# --log-facility        -S      0-7 Set local syslog facility (default=LOG_DAEMON)
#

KEEPALIVED_OPTIONS="-D -d -S 0"   更改日志格式

[root@LB01 keepalived]# vim /etc/rsyslog.conf                 rsyslog.conf最末尾加上这句
local0 .*                                                /var/log/keepalived.log
[root@LB01 keepalived]# /etc/init.d/rsyslog restart              重启日志文件

 

 

 

 

posted @ 2020-04-26 14:30  sunmmi  阅读(109)  评论(0)    收藏  举报