LVS+Keepalived高可用集群部署

文章目录

  • 一.Keepalived介绍
    • 1.1什么是Keepalived
    • 1.2Keepalived工作原理
    • 1.3VRRP虚拟路由冗余协议
  • 二.LVS+Keepalived高可用集群部署
    • 2.1主调度服务器部署
    • 2.2备用调度服务器部署
    • 2.3部署web1节点服务器
    • 2.4部署web2节点服务器
    • 2.5测试
  • 三.总结

引言:在企业应用中,单台服务器承担应用存在单点故障的风险,单点故障一旦发生,企业服务将发生中断,造成极大的危害
本文介绍LVS+Keepalived群集,解决单点故障问题,实现高可用

一.Keepalived介绍

1.1什么是Keepalived

Keepalived是一款专为LVS和HA设计的一款健康检查工具:支持故障自动切换、支持节点健康状态检查
官方地址:www.keepalived.org

1.2Keepalived工作原理

Keepalived是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题
在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为个虚拟IP,主服务器会发送VRRP通告信息给备份服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。
Keepalived体系主要模块及其作用:keepalived体系架构中主要有三个模块,分别是core、check和vrrp。

  1. core模块:为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。
  2. vrrp模块:是来实现VRRP协议的。
  3. check模块:负责健康检查,常见的方式有端口检查及URL检查。

1.3VRRP虚拟路由冗余协议

VRRP会把多台路由组成一个虚拟路由组vrid,vrrp会生成一个虚拟路由(包含虚拟IP和虚拟MAC,局域网内用户不关心哪个是主,它们只用虚拟路由器的虚拟IP作为它们的网关)实际上虚拟IP是承载在master路由器,也就是说实际的数据包通过master进行转发,backup是通过优先级来决定哪个是master路由,优先级最大的为master,backup只是用来监听master定时发送来的vrrp报文,如果超时未收到vrrp报文backup就会抢占masker,虚拟IP也会一起漂移到backup上

可以通过yum、编译等方式安装Keppalived工具
Keepalived配置文件位于/etc/keepalived/keepalived.conf

二.LVS+Keepalived高可用集群部署

LVS+Keepalived高可用集群部署_第1张图片

2.1主调度服务器部署

在192.168.48.10部署DR调度器
配置Keepalived

1.关闭防火墙与增强机制
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
2.安装keepalived工具,与ipvsadm工具
yum -y install ipvsadm keepalived
3.修改keepalived配置文件
vim /etc/keepalived/keepalived.conf
10    smtp_server 127.0.0.1  #修改邮件地址为本机
12    router_id LVS_01       #指定服务器(路由器)名称,主备名称不能一样
14 #   vrrp_strict           #严格遵守VRRP协议,需注释,否则VIP无法使用
21     interface ens33       #修改承载VIP地址的物理接口
22     virtual_router_id 51  #指定虚拟路由的ID号,热备组需保持一致
29     virtual_ipaddress     #指定群集VIP地址
34 virtual_server            #虚拟服务器地址VIP、端口
37     lb_kind DR            #修改集群工作模式DR
41     real_server           #修改web节点的IP与端口
 52 TCP_CHECK {              #添加健康检查
 53		connect_prot 80       #添加检查的目标端口
 54             connect_timeout 3     #添加连接超时(秒)
 55             nb_get_retry 3        #添加重试次数
 56             delay_before_retry 3  #添加重试间隔
 57          }  
 #添加第二个web节点的地址与端口
real_server 192.168.48.13 80 {
 	weight 1 
	TCP_CHECK {
		connect_port 80
   		connect_timeout 3
  	 	nb_get_retry 3
   		delay_before_retry 3
   		}
}  		
#删除后面多余配置
#启动服务
systemctl start keepalived

安装工具
LVS+Keepalived高可用集群部署_第2张图片修改配置文件
vim /etc/keepalived/keepalived.conf
LVS+Keepalived高可用集群部署_第3张图片
LVS+Keepalived高可用集群部署_第4张图片
LVS+Keepalived高可用集群部署_第5张图片

LVS+Keepalived高可用集群部署_第6张图片
配置分流算法策略

modprobe ip_vs
cat /proc/net/ip_vs
ipvsadm-save >/etc/sysconfig/ipvsadm
systemctl start ipvsadm
ipvsadm -C #清空策略
ipvsadm -A -t 192.168.48.150:80 -s rr
ipvsadm -a -t 192.168.48.150:80 -r 192.168.48.11:80 -g
ipvsadm -a -t 192.168.48.150:80 -r 192.168.48.13:80 -g
ipvsadm 
ipvsadm -ln  #查看策略
ipvsadm-save >/etc/sysconfig/ipvsadm  #保存策略

在这里插入图片描述

LVS+Keepalived高可用集群部署_第7张图片
调整proc内核响应参数

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

LVS+Keepalived高可用集群部署_第8张图片
sysctl -p 查看
LVS+Keepalived高可用集群部署_第9张图片
查看虚拟网卡VIP信息:ip add show dev ens33
LVS+Keepalived高可用集群部署_第10张图片

2.2备用调度服务器部署

在192.168.48.8部署备用DR调度器
配置Keepalived

1.关闭防火墙与增强机制
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
2.安装keepalived工具,与ipvsadm工具
yum -y install ipvsadm keepalived
3.修改keepalived配置文件
vim /etc/keepalived/keepalived.conf
10    smtp_server 127.0.0.1  #修改邮件地址为本机
12    router_id LVS_02       #指定服务器(路由器)名称,主备名称不能一样
14 #   vrrp_strict           #严格遵守VRRP协议,需注释,否则VIP无法使用
20     state BACKUP
21     interface ens33       #修改承载VIP地址的物理接口
22     virtual_router_id 51  #指定虚拟路由的ID号,热备组需保持一致
23     priority 90           #更改优先级,要比主的低
29     virtual_ipaddress     #指定群集VIP地址
34 virtual_server            #虚拟服务器地址VIP、端口
37     lb_kind DR            #修改集群工作模式DR
41     real_server           #修改web节点的IP与端口
52 TCP_CHECK {               #添加健康检查
53  connect_prot 80          #添加检查的目标端口
54             connect_timeout 3     #添加连接超时(秒)
55             nb_get_retry 3        #添加重试次数
56             delay_before_retry 3  #添加重试间隔
57          }  
#添加第二个web节点的地址与端口
real_server 192.168.48.13 80 {
	weight 1 
 	TCP_CHECK {
		connect_port 80
     		connect_timeout 3
     		nb_get_retry 3
     		delay_before_retry 3
     		}
}
#删除多余配置  
#启动服务
systemctl start keepalived	  

修改keepalived配置
LVS+Keepalived高可用集群部署_第11张图片
LVS+Keepalived高可用集群部署_第12张图片

LVS+Keepalived高可用集群部署_第13张图片
配置分流算法策略

modprobe ip_vs
cat /proc/net/ip_vs
ipvsadm-save >/etc/sysconfig/ipvsadm
systemctl start ipvsadm
ipvsadm -C #清空策略
ipvsadm -A -t 192.168.48.150:80 -s rr
ipvsadm -a -t 192.168.48.150:80 -r 192.168.48.11:80 -g
ipvsadm -a -t 192.168.48.150:80 -r 192.168.48.13:80 -g
ipvsadm 
ipvsadm -ln  #查看策略
ipvsadm-save >/etc/sysconfig/ipvsadm  #保存策略

LVS+Keepalived高可用集群部署_第14张图片
LVS+Keepalived高可用集群部署_第15张图片
调整proc内核响应参数

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

LVS+Keepalived高可用集群部署_第16张图片
LVS+Keepalived高可用集群部署_第17张图片
查看虚拟网卡VIP信息
LVS+Keepalived高可用集群部署_第18张图片

2.3部署web1节点服务器

192.168.48.11上部署节点服务器

1.关闭防火墙与增强机制
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
2.安装httpd服务
yum install -y httpd
systemctl start httpd
3.配置站点测试文件
echo "this is test web1" >/var/www/html/index.html
4.配置虚拟网卡lo:0
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.48.150
NETMASK=255.255.255.255
重启网卡
systemctl restart network
5.设置路由
route add -host 192.168.48.150 dev lo:0
route -n #查看路由表

在这里插入图片描述
LVS+Keepalived高可用集群部署_第19张图片
LVS+Keepalived高可用集群部署_第20张图片
调整proc参数

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

LVS+Keepalived高可用集群部署_第21张图片
LVS+Keepalived高可用集群部署_第22张图片

2.4部署web2节点服务器

192.168.48.13上部署节点服务器

1.关闭防火墙与增强机制
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
2.安装httpd服务
yum install -y httpd
systemctl start httpd
3.配置站点测试文件
echo "this is test web2" >/var/www/html/index.html
4.配置虚拟网卡lo:0
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.48.150
NETMASK=255.255.255.255
重启网卡
systemctl restart network
5.设置路由
route add -host 192.168.48.150 dev lo:0
route -n #查看路由表

在这里插入图片描述
LVS+Keepalived高可用集群部署_第23张图片
LVS+Keepalived高可用集群部署_第24张图片
调整proc参数

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

LVS+Keepalived高可用集群部署_第25张图片
LVS+Keepalived高可用集群部署_第26张图片

2.5测试

在浏览器中输入192.168.48.150访问测试
LVS+Keepalived高可用集群部署_第27张图片
LVS+Keepalived高可用集群部署_第28张图片
关闭主DR调度服务器的Keepalived
LVS+Keepalived高可用集群部署_第29张图片
LVS+Keepalived高可用集群部署_第30张图片
再次访问192.168.48.150
LVS+Keepalived高可用集群部署_第31张图片

LVS+Keepalived高可用集群部署_第32张图片
再次将主调度器的keepalived服务启动
LVS+Keepalived高可用集群部署_第33张图片
VIP再次漂移回主调度器,主调度器继续开始工作
LVS+Keepalived高可用集群部署_第34张图片

三.总结

1.在配置keepalived时,设置了虚拟IP所在的网卡即VIP地址,所以在设置DR调度器时,无需另外添加ens33:0
2.keepalive主要是通过backup接收vrrp报文进行心跳监测masker的状态,若接收不到vrrp报文,则backup会任务masker宕机,从而上位称为masker,此时VIP也会漂移到其上

你可能感兴趣的:(服务器,keepalived,LVS,负载均衡)