keepalived+lvs集群

目录

一、环境

二、配置

1、master

1.在master上安装配置Keepalived

2.在master上修改配置文件

2、backup

1.在backup(192.168.229.12)上安装keepalived

2.在backup上修改配置文件

3、master和backup上启动服务

4、web服务器配置

1.web1和web2同配置

2.配置虚拟地址

3.配置路由

4.配置ARP

5、测试

1.观察lvs路由条目

2.观察vip地址在哪台机器上

3.客户端浏览器访问vip

4.关闭master上的keepalived服务,再次访问vip

5.关闭web1站点服务,再次访问VIP


一、环境

准备四台虚拟机

对四台虚拟机分别修改主机名

复制代码
hostnamectl set-hostname 新主机名

192.168.229.11 dr1 负载均衡器 ----(master)

192.168.229.12 dr2 负载均衡器 ----(backup)

192.168.229.13 rs1 ----(web1)

192.168.229.14 rs2 ----(web2)

二、配置

1、master

1.在master上安装配置Keepalived

复制代码
yum install keepalived  ipvsadm -y

ipvsadm安装并不启动

2.在master上修改配置文件

复制代码
vim /etc/keepalived/keepalived.conf

配置文件内容示例:

复制代码
! Configuration File for keepalived
global_defs {						
	router_id Director1    #两边不一样。
	}
	
vrrp_instance VI_1 {				
	state MASTER				#另外一台机器是BACKUP	
	interface ens33				#心跳网卡	
	virtual_router_id 51			#虚拟路由编号,主备要一致
	priority 150				#优先级	
	advert_int 1				#检查间隔,单位秒	
	authentication {
		auth_type PASS
		auth_pass 1111
		}
	virtual_ipaddress {
		192.168.229.100/24       dev      ens33   	#VIP和工作接口
		}
	}
	
virtual_server 192.168.229.100 80 {		#LVS 配置,VIP,就是keepalived配置的对外地址
	delay_loop 3				#服务论询的时间间隔,#每隔3秒检查一次real_server状态
	lb_algo rr				#LVS 调度算法
	lb_kind DR	 			#LVS 集群模式
	protocol TCP
	real_server 192.168.229.13 80 {
		weight 1                    #权重
		TCP_CHECK {
			connect_timeout 3       #健康检查方式,连接超时时间
			}
		}
	real_server 192.168.229.14 80 {
		weight 1
		TCP_CHECK {
			connect_timeout 3    #设定连接超时时间为3秒 超过视为掉线
			}
		}
}

2、backup

1.在backup(192.168.229.12)上安装keepalived

复制代码
yum install keepalived   ipvsadm -y

ipvsadm安装并不启动

2.在backup上修改配置文件

复制代码
vim /etc/keepalived/keepalived.conf

修改master配置文件中的以下内容即可

复制代码
router_id Director2

state BACKUP

priority 100

配置文件内容示例:

复制代码
! Configuration File for keepalived
global_defs {
        router_id Director2
        }

vrrp_instance VI_1 {
        state BACKUP                            #另外一台机器是BACKUP
        interface ens33                         #心跳网卡
        virtual_router_id 51
        priority 100                            #优先级
        advert_int 1                            #检查间隔,单位秒
        authentication {
                auth_type PASS
                auth_pass 1111
                }
        virtual_ipaddress {
                192.168.229.100/24 dev ens33       #VIP和工作端口
                }
        }

virtual_server 192.168.229.100 80 {                #LVS 配置,VIP
        delay_loop 3                            #服务论询的时间间隔
        lb_algo rr                              #LVS 调度算法
        lb_kind DR                              #LVS 集群模式
        protocol TCP
        real_server 192.168.229.13 80 {
                weight 1
                TCP_CHECK {
                        connect_timeout 3
                        }
                }
        real_server 192.168.229.14 80 {
                weight 1
                TCP_CHECK {
                        connect_timeout 3
                        }
                }
}

3、master和backup上启动服务

添加开机自启动

复制代码
systemctl enable keepalived

启动

复制代码
systemctl start keepalived

4、web服务器配置

1.web1和web2同配置

安装web测试站点

复制代码
yum install -y httpd && systemctl start httpd && systemctl enable httpd

排查 HTTP 服务器当前的连接状态,确认它是否正在正常工作。

复制代码
netstat -antp | grep httpd

自定义web主页,以便观察负载均衡结果

复制代码
vim /var/www/html/index.html

内容就不再展示,自行定义。

2.配置虚拟地址

复制代码
cp /etc/sysconfig/network-scripts/{ifcfg-lo,ifcfg-lo:0}

vim /etc/sysconfig/network-scripts/ifcfg-lo:0

配置内容示例:

复制代码
DEVICE=lo:0
IPADDR=192.168.229.100   #对外提供服务的地址
NETMASK=255.255.255.255
ONBOOT=yes
#其他行可注释掉

重新启动network

复制代码
systemctl restart network

3.配置路由

复制代码
route add 192.168.229.100 dev lo

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

4.配置ARP

复制代码
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

5、测试

1.观察lvs路由条目

master上 查询 # ipvsadm -Ln

复制代码
ipvsadm -Ln

2.观察vip地址在哪台机器上

master上 查询 # ip a

ens33:

inet 192.168.229.11/24 brd 192.168.229.255 scope global noprefixroute ens33

inet 192.168.229.100/24 scope global secondary ens33

3.客户端浏览器访问vip

4.关闭master上的keepalived服务,再次访问vip

复制代码
systemctl stop keepalived.service 

5.关闭web1站点服务,再次访问VIP

复制代码
systemctl stop httpd
相关推荐
生而为虫3 分钟前
[Windows] 【浏览器自动化精灵V1.0】用Excel表格控制浏览器的自动化
运维·自动化
Fcy6487 分钟前
Linux下 进程(二)(进程状态、僵尸进程和孤儿进程)
linux·运维·服务器·僵尸进程·孤儿进程·进程状态
第七序章21 分钟前
【Linux学习笔记】初识Linux —— 理解gcc编译器
linux·运维·服务器·开发语言·人工智能·笔记·学习
迎仔29 分钟前
A-总览:GPU驱动运维系列总览
linux·运维
AI_567832 分钟前
阿里云OSS成本优化:生命周期规则+分层存储省70%
运维·数据库·人工智能·ai
yyy的学习记录37 分钟前
Ubuntu下urdf模型转换成proto模型
linux·运维·ubuntu
临水逸1 小时前
一次路径穿越漏洞引发的NAS安全危机:飞牛fnOS漏洞深度剖析与用户自救指南
网络·安全·web安全
猫头虎1 小时前
OpenClaw开源汉化发行版:介绍、下载、安装、配置教程
运维·windows·开源·aigc·ai编程·agi·csdn
强风7941 小时前
Linux-传输层协议TCP
linux·网络·tcp/ip
狮驼岭的小钻风1 小时前
汽车V模型开发流程、ASPICE、汽车功能安全的基石是国际标准 ISO 26262
网络·安全·汽车