14.4. keepalive+lvs安装配置

Date:

2018-09

14.4.1. keepalive+lvs环境

服务器环境

服务器列表

默认硬件、系统版本全部相同,只是主机名不同和网络配置不同

主机名

IP

web_101

192.168.1.140

web_102

192.168.1.142

web_201

192.168.1.151

web_202

192.168.1.102

系统版本

CentOS release 6.6 (Final)

硬件环境

x86_64

lvsadm

ipvsadm-1.26

VIP

192.168.1.250

keepalived

keepalived-1.1.19

服务器说明:
  • web_101:keepalive配置的master,lvs配置dr模式,vip使用192.168.1.250

  • web_102:keepalive配置的backup,lvs配置dr模式,vip使用192.168.1.250

  • web_201:lvs配置绑定VIP:192.168.1.250,提供web服务

  • web_202:lvs配置绑定VIP:192.168.1.250,提供web服务

  • web_201、web_202本实例配置的负载均衡。

14.4.2. keepalive+lvs安装

14.4.2.1. 安装准备

1ntpdate pool.ntp.org
2sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
3setenforce 0
4/etc/init.d/iptables stop
5chkconfig iptables off

14.4.2.2. lvs安装

四台服务器都需要安装lvs的管理工具

1yum install libnl* popt* -y
2ln -s /usr/src/kernels/2.6.32-504.el6.x86_64/ /usr/src/linux
3mkdir /data/tools -p
4cd /data/tools
5wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz
6tar xf ipvsadm-1.26.tar.gz
7cd ipvsadm-1.26
8make
9make install

14.4.2.3. keepalive安装

在以下两台服务器安装keepalive:
  • web_101

  • web_102

 1yum install openssl openssl-devel libnfnetlink-devel -y
 2cd /data/tools
 3wget http://www.keepalived.org/software/keepalived-1.3.5.tar.gz
 4tar xf keepalived-1.3.5.tar.gz
 5cd keepalived-1.3.5
 6./configure
 7make && make install
 8
 9cp /data/tools/keepalived-1.3.5/keepalived/etc/init.d/keepalived /etc/init.d/
10cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
11mkdir /etc/keepalived -p
12cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
13cp /usr/local/sbin/keepalived /usr/sbin/
14chkconfig --add keepalived

备注

keepalived1.3.5需要安装 libnfnetlink-devel 否则安装会报错。1.1.19则不用安装这个依赖包。

14.4.2.4. nginx安装

下面两台服务器需要安装nginx:
  • web_201

  • web_202

1yum install pcre pcre-devel perl-CPAN gcc -y
2echo '[nginx]' >>/etc/yum.repos.d/nginx.repo
3echo 'name=nginx repo' >>/etc/yum.repos.d/nginx.repo
4echo 'baseurl=http://nginx.org/packages/centos/$releasever/$basearch/' >>/etc/yum.repos.d/nginx.repo
5echo 'gpgcheck=0' >>/etc/yum.repos.d/nginx.repo
6echo 'enabled=1' >>/etc/yum.repos.d/nginx.repo
7yum clean all
8yum makecache
9yum install nginx -y

14.4.3. keepalive+lvs配置

14.4.3.1. web_101配置

keepalive配置过程:
  • keepalive日志记录配置

  • 修改配置文件

1sed -i 's#KEEPALIVED_OPTIONS="-D"#KEEPALIVED_OPTIONS="-D -d -S 0"#g' /etc/sysconfig/keepalived
2echo '#save keepalived log to keepalive.log' >>/etc/rsyslog.conf
3echo 'local0.*                                                /var/log/keepalive.log'>>/etc/rsyslog.conf
4
5/etc/init.d/rsyslog restart
1cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.`date +%F`
2>/etc/keepalived/keepalived.conf
1vi /etc/keepalived/keepalived.conf
 1! Configuration File for keepalived
 2
 3global_defs {
 4#   notification_email {
 5#       login_root@163.com
 6#   }
 7#   notification_email_from Alexandre.Cassen@firewall.loc
 8#   smtp_server 127.0.0.1
 9#   smtp_connect_timeout 30
10    router_id LVS_101
11}
12
13vrrp_instance VI_1 {
14    state MASTER
15    interface eth0
16    virtual_router_id 55
17    priority 150
18    advert_int 1
19    authentication {
20        auth_type PASS
21        auth_pass 1111
22    }
23    virtual_ipaddress {
24        192.168.161.250
25    }
26}
27
28virtual_server 192.168.1.250 80 {
29    delay_loop 20
30    lb_algo rr
31    lb_kind DR
32    persistence_timeout 50
33    protocol TCP
34    real_server 192.168.1.151 80 {
35        weight 1
36        TCP_CHECK {
37            connect_timeout 3
38            #nb_get_retry 3
39            #delay_before_retry 3
40            connect_port 80
41        }
42    }
43    real_server 192.168.1.102 80 {
44        weight 1
45        TCP_CHECK {
46            connect_timeout 3
47            #nb_get_retry 3
48            #delay_before_retry 3
49            connect_port 80
50        }
51    }
52}
lvs配置过程:
  • 添加vip

1ifconfig eth0:0 192.168.1.250/24

14.4.3.2. web_102配置

keepalive配置过程:
  • keepalive日志记录配置

  • 修改配置文件

1sed -i 's#KEEPALIVED_OPTIONS="-D"#KEEPALIVED_OPTIONS="-D -d -S 0"#g' /etc/sysconfig/keepalived
2echo '#save keepalived log to keepalive.log' >>/etc/rsyslog.conf
3echo 'local0.*                                                /var/log/keepalive.log'>>/etc/rsyslog.conf
4
5/etc/init.d/rsyslog restart
1cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.`date +%F`
2>/etc/keepalived/keepalived.conf
1vi /etc/keepalived/keepalived.conf
 1! Configuration File for keepalived
 2
 3global_defs {
 4#   notification_email {
 5#       login_root@163.com
 6#   }
 7#   notification_email_from Alexandre.Cassen@firewall.loc
 8#   smtp_server 127.0.0.1
 9#   smtp_connect_timeout 30
10    router_id LVS_102
11}
12
13vrrp_instance VI_1 {
14    state BACKUP
15    interface eth0
16    virtual_router_id 55
17    priority 200
18    advert_int 1
19    authentication {
20        auth_type PASS
21        auth_pass 1111
22    }
23    virtual_ipaddress {
24        192.168.161.250
25    }
26}
27
28virtual_server 192.168.1.250 80 {
29    delay_loop 20
30    lb_algo rr
31    lb_kind DR
32    persistence_timeout 50
33    protocol TCP
34    real_server 192.168.1.151 80 {
35        weight 1
36        TCP_CHECK {
37            connect_timeout 3
38            #nb_get_retry 3
39            #delay_before_retry 3
40            connect_port 80
41        }
42    }
43    real_server 192.168.1.102 80 {
44        weight 1
45        TCP_CHECK {
46            connect_timeout 3
47            #nb_get_retry 3
48            #delay_before_retry 3
49            connect_port 80
50        }
51    }
52}
lvs配置过程:
  • 添加vip

1ifconfig eth0:0 192.168.1.250/24

14.4.3.3. web_201配置

1echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
2echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
3echo "1" > /proc/sys/net/ipv4/conf/all/arp_announce
4echo "2" > /proc/sys/net/ipv4/conf/all/arp_ignore
5ifconfig lo:0 192.168.1.250/32

14.4.3.4. web_202配置

1echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
2echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
3echo "1" > /proc/sys/net/ipv4/conf/all/arp_announce
4echo "2" > /proc/sys/net/ipv4/conf/all/arp_ignore
5ifconfig lo:0 192.168.1.250/32

14.4.4. keepalive+lvs测试