LVS+keepalived高可用群集

目录

一、环境详情

二、开始搭建

Ⅰ、主/从LVS负载调度

1、主keepalived配置

2、从keepalived配置

3、调整proce响应参数,关闭Linux内核的重定向参数响应

4、ipvsadm配置

Ⅱ、web配置

1、配置http服务

2、配置虚拟ip

三、LVS+keepalived测试

Ⅰ、web页面负载均衡测试

 Ⅱ、keepalived高可用测试


之前已经试过了nginx+keepalived群集的主要配置,这一次我们试试将LVS和keepalived结合起来,实现LVS+keepalived的高可用群集

一、环境详情

使用的工具、软件:keepalived、ipvsadm

因为keepalived最初就是为LVS而生,其就是为了构建高可用的LVS负载均衡群集而设计出来的,所以二者的匹配度十分的高,使用ipvsadm工具来创建虚拟服务器。管理服务器池。

本次使用的架构大致为:两台LVS负载调度器,两台节点服务器

通过使用keepalived来实现主备负载调度器,使用LVS-DR模式为基础,来构建建有负载均衡和高可用的LVS群集。

主LVS:192.168.116.22

备LVS:192.168.116.23

web1:192.168.116.120

web2:192.168.116.111

VIP:   192.168.116.16

关于keepalived的安装以及配置文件部分内容,可以参考nginx+keepalived高可用

二、开始搭建

Ⅰ、主/从LVS负载调度

1、主keepalived配置

! Configuration File for keepalived

global_defs { 
   router_id ljp                  #主LVS的hostname
}
vrrp_instance VI_1 {
    state MASTER                  #主LVS为master
    interface ens33
    virtual_router_id 51          #vrrp组id 
mcast_src_ip 192.168.116.22       
priority 100                      #主LVS,优先级100
nopreempt
    advert_int 1
    authentication {              #主、从LVS认证信息
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {           #vip池
        192.168.116.16
 }
}         
   
virtual_server 192.168.116.16 80 {
    delay_loop 6					#健康检查的间隔时间(秒)
    lb_algo rr						#指定调度算法,轮询(rr)
    lb_kind DR                      #修改群集工作DR模式
    persistence_timeout 50			#连接保持时间
    protocol TCP					#应用服务采用的是 TCP协议
   

   real_server 192.168.116.111 80 {
       weight 1					#节点的权重
        TCP_CHECK {
			connect_port 80			#添加检查的目标端口
			connect_timeout 3		#添加连接超时(秒)
    		nb_get_retry 3			#添加重试次数
			delay_before_retry 3	#添加重试间隔
		}
	}

	real_server 192.168.116.120 80 {		#添加第二个 Web节点的地址、端口
        weight 1
        TCP_CHECK {
			connect_port 80
			connect_timeout 3
			nb_get_retry 3
			delay_before_retry 3
		}
	}
}
             
systemctl start keepalived          

2、从keepalived配置

! Configuration File for keepalived

global_defs { 
   router_id bak23                #从LVS的hostname
}
vrrp_instance VI_1 {
    state BACKUP                  #从LVS为backup
    interface ens33
    virtual_router_id 51          #vrrp组id 
mcast_src_ip 192.168.116.23       
priority 80                      #从LVS,优先级80
    advert_int 1
    authentication {              #主、从LVS认证信息
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {           #vip池
        192.168.116.16
}
}    

#此处配置与主LVS负载调度器keepalived.conf相同,故省略
systemctl start keepalived

 做好以上的配置,此时进入主LVS,对ens33网卡的IP进行查看,可以发现除了网卡本身的IP地址,多了一个虚拟IP地址192.168.116.16。 

以下配置须主、从机器分别进行配置

3、调整proce响应参数,关闭Linux内核的重定向参数响应

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
sysctl -p

4、ipvsadm配置

ipvsadm -C
ipvsadm -A -t 192.168.100.100:80 -s rr
ipvsadm -a -t 192.168.100.100:80 -r 192.168.116.111:80 -g
ipvsadm -a -t 192.168.100.100:80 -r 192.168.116.120:80 -g
#保存设置
ipvsadm
ipvsadm -ln
ipvsadm-save >/etc/sysconfig/ipvsadm
systemctl start ipvsadm

Ⅱ、web配置

1、配置http服务

web 23  主机

yum install -y httpd
echo "THIS IS 192.168.116.111">>/var/www/html/index.html
systemctl start httpd

web 120 主机

yum install -y httpd
echo "this is 192.168.116.120">>/var/www/html/index.html
systemctl start httpd

2、配置虚拟ip

以下配置须在两个web服务器上分别配置

vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.116.16
NETMASK=255.255.255.255

#重启网络服务、开启网卡
ifup lo:0
systemctl restart network

#添加路由
route add -host 192.168.116.16 dev lo:0
route -n

#调整 proc 响应参数
添加系统只响应目的IP为本地IP的ARP请求
系统不使用原地址来设置ARP请求的源地址,而是物理mac地址上的IP
vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2

#刷新proc参数
sysctl -p

三、LVS+keepalived测试

Ⅰ、web页面负载均衡测试

在浏览器上对192.168.116.16进行访问

LVS+keepalived高可用群集_第1张图片

因为权重设置的是1,这里对页面进行刷新,web server转到了192.168.116.120

LVS+keepalived高可用群集_第2张图片

 Ⅱ、keepalived高可用测试

 此时VIP位于192.168.116.22上,我们尝试将主LVS上的keepalived关闭

systemctl stop keepalived

再去192.168.116.23的从LVS上查看IP,VIP成功漂移到从LVS机器上

ip addr show dev ens33
 ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:da:47:d6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.116.23/24 brd 192.168.116.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.116.16/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::5835:f28a:63c5:44ff/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
 

你可能感兴趣的:(web服务,lvs,服务器,运维)