部署LVS+Keepalived高可用集群

目录

一、keepalived概述

1.1管理LVS负载均衡软件

1.2VRRP(Virtual Router Redundancy Protocol) 原理

二、keepalived服务的重要功能

2.1自动切换(failover)

2.2健康检查(health checking)

2.3高可用(HA)

三、L4和L7负载均衡的区别

四、keepalive故障自动切换

4.1抢占与非抢占

五、keeplived体系主要模块及作用

5.1core模块

5.2check模块

5.3VRRP模块

六、Keepalived工作原理

6.1工作原理

6.2工作原理图

七、部署LVS+Keepalived高可用集群

7. 1.配置负载调度器(主、备相同) (192.168.14.101、192.168.14.102)

5.2.配置节点服务器

 5.3测试验证

5.3.1在客户端访问http://192.168.14.180

5.3.2 模拟破坏master服务器


一、keepalived概述

keepalived是一个基于VRRP(Virtual Router Redundancy Protocol)协议的守护程序,用于实现高可用性的服务和故障转移。它可用于在一组服务器中选择一个主服务器来处理客户端请求,并在主服务器发生故障时自动将工作切换到备用服务器。

1.1管理LVS负载均衡软件

keepalived可以通过读取自身的配置文件,实现通过更高层次的接口,直接管理LVS配置以及服务的启动、停止功能,这会使LVS应用更简单。

1.2VRRP(Virtual Router Redundancy Protocol) 原理

VRRP  是一种网络协议,它提供了虚拟路由器冗余机制,使得在一组路由器中的一个可以作为主要路由器,而其他路由器则处于备份状态。

二、keepalived服务的重要功能

2.1自动切换(failover)

keepalived可以根据事先设定好的优先级规则和负载均衡规则,在主备服务器之间进行IP地址的漂移,实现自动切换和高可用性。

2.2健康检查(health checking)

keepalived可以定时对服务器进行健康检查,包括检测服务器的存活状态、服务的响应时间等,同时也可以自定义检测规则并进行报警。

2.3高可用(HA)

keepalived可以监测系统资源的可用性,如网络连接、服务器负载等,并根据事先设置的规则进行故障转移,确保服务的高可用性。

三、L4和L7负载均衡的区别

L4通过TCP协议建立连接之后的IP:port接收请求和基于IP:port端口进行转发

L7通过TCP协议建立三次握手,通过HTTP协议传输数据,七层负载均衡器,需要根据HTTP协议传输过来的请求,进行对应的跳转,这个跳转是先基于TCP协议的传输(IP:port)+ HTTP的传输。

如果是四层,协议只有TCP就是IP:port的转发

如果是七层,TCP和三次握手,长连接 + HTTP规范的传输数据

四、keepalive故障自动切换

① 两台同时安装好keepalived并且启动服务

当启动的时候master主机获得所有资源并且对用户提供服务(请求)当角色Backup的主机作为master热备,当master出现故障,Backup主机自动接管master主机所有工作

② 当master主机故障修复后,就会自动接管回它原来的所有工作,同时Backup主机则释放原master主机的所有工作,此时两台主机恢复到初始角色以及工作状态

4.1抢占与非抢占

抢占:master恢复后,将VIP从Backup节点中抢占过来,回复自己master工作

非抢占:master恢复后,不抢占Backup目前的状态,Backup升级为master继续工作

五、keeplived体系主要模块及作用

5.1core模块

为keepalived的核心,负责进程启动,维护全局配置文件,加载和解析

5.2check模块

负责健康检查,常见的检查方式,比如端口URL

5.3VRRP模块

实现VRRP协议

六、Keepalived工作原理

6.1工作原理

1. keepalived在每台服务器上运行,每个服务器都有一个虚拟IP地址。
2. 在服务器集群中,keepalived通过VRRP协议通信并选举出一个主服务器和若干备用服务器。
3. 主服务器接收并处理来自客户端的请求,备用服务器处于待命状态。
4. keepalived通过检测主服务器的健康状态(如ping测试、端口检测等),可以快速发现主服务器的故障。
5. 一旦主服务器故障,keepalived会自动将工作切换到备用服务器,备用服务器接管主服务器的虚拟IP地址。
6. 备用服务器成为新的主服务器,继续处理客户端请求。
7. 当主服务器恢复正常时,keepalived会将工作切换回主服务器,原主服务器变成备用服务器。

6.2工作原理图

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

七、部署LVS+Keepalived高可用集群

主DR 服务器:ens33(192.168.14.101) ipvsadm 、keepalived(热备) 虚拟IP:192.168.14.180 网卡 ens33:0

备DR 服务器:ens33(192.168.14.102) ipvsadm 、keepalived 虚拟IP:192.168.14.180网卡 ens33:0

Web 服务器1:ens33 192.168.14.103 lo:0(VIP)192.168.14.180

Web 服务器2:ens33 192.168.14.17 lo:0(VIP)192.168.14.180

vip:192.168.14.188

客户端:192.168.14.100

7. 1.配置负载调度器(主、备相同) (192.168.14.101、192.168.14.102)

systemctl stop firewalld.service
setenforce 0

yum -y install ipvsadm keepalived
modprobe ip_vs
cat /proc/net/ip_vs

(1)配置keeplived(主、备DR 服务器上都要设置)
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
vim keepalived.conf
......
global_defs {						#定义全局参数
--10行--修改,邮件服务指向本地
	smtp_server 127.0.0.1
--12行--修改,指定服务器(路由器)的名称,主备服务器名称须不同,主为LVS_01,备为LVS_02
	router_id LVS_01
--14行--注释掉,取消严格遵守VRRP协议功能,否则VIP无法被连接
	#vrrp_strict
}

vrrp_instance VI_1 {				#定义VRRP热备实例参数
--20行--修改,指定热备状态,主为MASTER,备为BACKUP
    state MASTER
--21行--修改,指定承载vip地址的物理接口
    interface ens33
--22行--修改,指定虚拟路由器的ID号,每个热备组保持一致	
    virtual_router_id 10
	#nopreempt		#如果设置非抢占模式,两个节点state必须为bakcup,并加上配置 nopreempt
--23行--修改,指定优先级,数值越大优先级越高,这里设置主为100,备为90
    priority 100
    advert_int 1					#通告间隔秒数(心跳频率)
    authentication {				#定义认证信息,每个热备组保持一致
		auth_type PASS				#认证类型
--27行--修改,指定验证密码,主备服务器保持一致
        auth_pass abc123
    }
    virtual_ipaddress {				#指定群集vip地址
        192.168.14.180
    }
}
--36行--修改,指定虚拟服务器地址(VIP)、端口,定义虚拟服务器和Web服务器池参数
virtual_server 192.168.14.180 80 {
    delay_loop 6					#健康检查的间隔时间(秒)
    lb_algo rr						#指定调度算法,轮询(rr)
--39行--修改,指定群集工作模式,直接路由(DR)
    lb_kind DR
    persistence_timeout 50			#连接保持时间(秒)
    protocol TCP					#应用服务采用的是 TCP协议
--43行--修改,指定第一个Web节点的地址、端口
    real_server 192.168.14.103 80 {
        weight 1					#节点的权重
--45行--删除,添加以下健康检查方式		
        TCP_CHECK {
			connect_port 80			#添加检查的目标端口
			connect_timeout 3		#添加连接超时(秒)
			nb_get_retry 3			#添加重试次数
			delay_before_retry 3	#添加重试间隔
		}
	}

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

##删除后面多余的配置##
}


192.168.14.101和192.168.105都需要配置vip(虚拟IP)
vim /etc/sysconfig/network-scripts/ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.10.180
NETMASK=255.255.255.255

重启网卡 systemctl restart network
ifup  ens33:0 


systemctl start keepalived
ip addr						#查看虚拟网卡vip


(2)启动 ipvsadm 服务
--192.168.14.101---

ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm

ipvsadm -C   ##清空规则
ipvsadm -A -t 192.168.14.180:80 -s rr
ipvsadm -a -t 192.168.14.180:80 -r 192.168.14.103:80 -g
ipvsadm -a -t 192.168.14.180:80 -r 192.168.14.104:80 -g


ipvsadm -ln
#如没有VIP 的分发策略,则重启 keepalived 服务,systemctl restart keepalived

--192.168.14.102---
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
ipvsadm -C   ##清空规则
ipvsadm -A -t 192.168.14.180:80 -s rr
ipvsadm -a -t 192.168.14.180:80 -r 192.168.14.103:80 -g
ipvsadm -a -t 192.168.14.180:80 -r 192.168.14.104:80 -g


ipvsadm -ln

(3)调整 proc 响应参数,关闭Linux 内核的重定向参数响应
vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

sysctl -p

5.2.配置节点服务器

systemctl stop firewalld
setenforce 0

yum -y install httpd
systemctl start httpd

--192.168.14.103---
echo 'this is zkr web!' > /var/www/html/index.html

--192.168.14.104---
echo 'this is benet web!' > /var/www/html/index.html

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

service network restart 或 systemctl restart network
ifup lo:0
ifconfig lo:0
route add -host 192.168.14.180 dev lo:0

vim /etc/sysctl.conf

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

 5.3测试验证

5.3.1在客户端访问http://192.168.14.180

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

5.3.2 模拟破坏master服务器

 这时,虚拟ip会漂移到backup服务器,使服务正常运行

主服务器

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

 backup服务器部署LVS+Keepalived高可用集群_第4张图片

 主服务器修好后,虚拟ip会再漂移到master服务器部署LVS+Keepalived高可用集群_第5张图片

 

 

你可能感兴趣的:(lvs,linux,服务器)