LVS+keepalived高可用负载均衡(DR模式)集群架构

架构图

在这里插入图片描述

简介

keepalived是什么
keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障

keepalived工作原理

  • keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router RedundancyProtocol,即虚拟路由冗余协议。
  • 将N台提供相同功能的服务器组成一个服务器组,这个组里面有一个master和多个backup,master上面有–个对外提供服务的vip(该服务器所在局域网内其他机器的默认路由为该vip),master会 发组播,当backup收 不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个 backup当master

keeepalived主要有三个模块

  • core 为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析
  • check 负责健康检查,包括常见的健康检查方式
  • vrrp 用来实现VRRP协议的

实战案例

环境

  • lvs-server1 192.168.100.10 负载均衡器1 master
  • lvs-server2 192.168.100.11 负载均衡器2 backup
  • web-server1 192.168.100.12 nginx服务器
  • web-server2 192.168.100.13 nginx服务器
  • vip 192.168.100.14

lvs-server1配置

安装相应软件

[root@lvs-server1 ~]# yum -y install keepalived ipvsadm

修改配置文件

[root@lvs-server1 ~]# vim /etc/keepalived/keepalived.conf

键入以下配置

! Configuration File for keepalived		#配置文件声明,前面不得有空行或者空格
global_defs {
	router_id Drector1					#设备在组中的标识,两边不一样
}

vrrp_instance VI_1 {					#VI_1。实例名两台路由器相同。注意区分
	state MASTER						#主或者从状态
	interface ens32						#监控网卡
	virtual_router_id 51				#虚拟路由编号,主备要一致,注意区分
	priority 150						#优先级
	advert_int 1 						#心跳间隔

	authentication {					#秘钥认证(1-8位)
		auth_type PASS
		auth_pass 1111
	}

	virtual_ipaddress {			
		192.168.100.14/24 dev ens32		#VIP和工作端口
	}
}

virtual_server 192.168.100.14 80 {		#LVS配置,VIP
	delay_loop 3						#服务轮询的时间间隔,每隔三秒检查一次real_server状态
	lb_algo rr							#LVS调度算法
	lb_kind DR							#LVS集群模式
	protocol TCP
	
	real_server 192.168.100.12 80 {
	weight 1
	TCP_CHECK {
		connect_timeout 3				#健康检查方式,连接超时时间
	}
}
	real_server 192.168.100.13 80 {
		weight 1
		TCP_CHECK {		
			connect_timeout 3			#健康检查方式,连接超时时间
		}
	}
}

开启服务

[root@lvs-server1 ~]# systemctl enable keepalived
[root@lvs-server1 ~]# reboot	//重启服务器

lvs-server2配置

安装相应软件

[root@lvs-server2 ~]# yum -y install keepalived ipvsadm

修改配置文件

[root@lvs-server2 ~]# vim /etc/keepalived/keepalived.conf

键入以下配置

! Configuration File for keepalived		#配置文件声明,前面不得有空行或者空格
global_defs {
	router_id Drector2					#设备在组中的标识,两边不一样
}

vrrp_instance VI_1 {					#VI_1。实例名两台路由器相同。注意区分
	state BACKUP						#主或者从状态
	interface ens32						#监控网卡
	virtual_router_id 51				#虚拟路由编号,主备要一致,注意区分
	priority 100						#优先级
	advert_int 1 						#心跳间隔

	authentication {					#秘钥认证(1-8位)
		auth_type PASS
		auth_pass 1111
	}

	virtual_ipaddress {			
		192.168.100.14/24 dev ens32		#VIP和工作端口
	}
}

virtual_server 192.168.100.14 80 {		#LVS配置,VIP
	delay_loop 3						#服务轮询的时间间隔,每隔三秒检查一次real_server状态
	lb_algo rr							#LVS调度算法
	lb_kind DR							#LVS集群模式
	protocol TCP
	
	real_server 192.168.100.12 80 {
	weight 1
	TCP_CHECK {
		connect_timeout 3				#健康检查方式,连接超时时间
	}
}
	real_server 192.168.100.13 80 {
		weight 1
		TCP_CHECK {		
			connect_timeout 3			#健康检查方式,连接超时时间
		}
	}
}

开启服务

[root@lvs-server2 ~]# systemctl enable keepalived
[root@lvs-server2 ~]# reboot	//重启服务器

web-server两台服务器配置

安装nginx服务

[root@web-server1 ~]# yum -y install nginx
[root@web-server1 ~]# systemctl restart nginx
[root@web-server1 ~]# systemctl enable nginx

配置虚拟IP

[root@web-server1 ~]# cp /etc/sysconfig/network-scripts/{ifcfg-lo,ifcfg-lo:0}
[root@web-server1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0

在配置文件中键入如下配置

DEVICE=lo:0
IPADDR=192.168.100.14
NETMASK=255.255.255.255
ONBOOT=yes
其他行注释掉

配置路由
在两台机器(RS)上,添加一个路由,确保如果请求的目标IP是VIP,那么让出去的数据包的源地址也显示为VIP

[root@web-server1 ~]# vim /etc/rc.local

/sbin/route add -host 192.168.100.14 dev lo:0

配置ARP

[root@web-server1 ~]# 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

[root@web-server1 ~]# reboot

测试
浏览器访问http://192.168.100.14

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

屎到淋头还嚼便

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值