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
相关推荐
wanhengidc5 分钟前
深度了解云手机是什么
运维·服务器·科技·智能手机·云计算
python百炼成钢32 分钟前
28.嵌入式 Linux LED 驱动开发实验
linux·运维·驱动开发
BullSmall4 小时前
Test Matrix:测试矩阵(IT 领域定义 + 设计实践 + 华为场景应用)
运维·服务器
liuyao_xianhui4 小时前
版本控制器git--gdb/cgdb
linux·运维·服务器·git
CS_浮鱼4 小时前
【Linux进阶】mmap实战:文件映射、进程通信与LRU缓存
linux·运维·c++·缓存
chuxinweihui5 小时前
应用层协议 HTTP
linux·服务器·网络·网络协议·http
chuxinweihui5 小时前
HTTP cookie 与 session
网络·网络协议·http
xu_yule5 小时前
Linux_16(多线程)信号量+基于环形队列的生成消费模型+自选锁+读写锁
linux·运维·服务器
fei_sun5 小时前
【复习】计网每日一题1121大题--HTTP/1.0、HTTP/1.1、持续连接、非持续连接、并行连接、Web、JPEG图像
网络·网络协议·http
Yan-英杰5 小时前
解决方案: CondaHTTPError: HTTP 000 CONNECTION FAILED for url
网络·网络协议·http