keepalived+lvs集群

server/2024/12/22 4:00:23/

目录

一、环境

二、配置

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、测试

lvs%E8%B7%AF%E7%94%B1%E6%9D%A1%E7%9B%AE-toc" style="margin-left:80px;">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 PASSauth_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 TCPreal_server 192.168.229.13 80 {weight 1                    #权重TCP_CHECK {connect_timeout 3       #健康检查方式,连接超时时间}}real_server 192.168.229.14 80 {weight 1TCP_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 Director2state BACKUPpriority 100

配置文件内容示例:

! Configuration File for keepalived
global_defs {router_id Director2}vrrp_instance VI_1 {state BACKUP                            #另外一台机器是BACKUPinterface ens33                         #心跳网卡virtual_router_id 51priority 100                            #优先级advert_int 1                            #检查间隔,单位秒authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.229.100/24 dev ens33       #VIP和工作端口}}virtual_server 192.168.229.100 80 {                #LVS 配置,VIPdelay_loop 3                            #服务论询的时间间隔lb_algo rr                              #LVS 调度算法lb_kind DR                              #LVS 集群模式protocol TCPreal_server 192.168.229.13 80 {weight 1TCP_CHECK {connect_timeout 3}}real_server 192.168.229.14 80 {weight 1TCP_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、测试

lvs%E8%B7%AF%E7%94%B1%E6%9D%A1%E7%9B%AE" style="background-color:transparent;">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


http://www.ppmy.cn/server/125303.html

相关文章

生产环境升级mysql流程及配置主从服务

之前写到过mysql升级8.4的文章, 因此不再介绍mysql的安装过程 避免服务器安装多个mysql引起冲突的安装方法_安装两个mysql会冲突吗-CSDN博客 生产环境升级mysql8.4.x流程 安装mysql 参考之前文章: 避免服务器安装多个mysql引起冲突的安装方法_安装两个mysql会冲突吗-CSDN博客…

手搓游戏 —— 生成式 AI 助手 Amazon Q Developer 初体验

文章目录 一、Amazon Q介绍二、实验环境准备2.1 下载项目安装包2.2 验证 Python 环境2.3 安装Amazon Q扩展2.4 授权Builder ID 三、Amazon Q 快速理解main.py四、Amazon Q快速梳理控制器逻辑五、启动像素沙盒开放世界程序六、在 update() 中实现传送功能七、定位并修复代码漏洞…

rdp远程桌面服务协议概述

rdp远程桌面服务协议概述 什么是远程桌面服务远程桌面服务的通信过程及功能 建立连接资源重定向与用户体验断开连接 远程桌面服务的协议架构 核心协议与基础通信虚拟通道与扩展协议协议协作与层次划分协议的可扩展性协议扩展与性能优化 总结参考 rdp远程桌面服务协议概述 对于…

目前最好用的爬虫软件是那个?

作为一名数据工程师,三天两头要采集数据,用过十几种爬虫软件,也用过Python爬虫库,还是建议新手使用现成的软件比较方便。 这里推荐3款不错的自动化爬虫工具,八爪鱼、亮数据、Web Scraper 1. 八爪鱼爬虫 八爪鱼爬虫是一…

云原生周刊:Artifact Hub 成为 CNCF 孵化项目|2024.9.23

开源项目推荐 Coroot Coroot 是一个开源监控工具,旨在为云原生应用提供可观察性。它通过整合指标、日志和追踪信息,专注于提供应用性能的洞察。 DirectPV DirectPV 是一个开源项目,旨在为 Kubernetes 工作负载提供高效的直接卷访问。它通…

Go语言中的深拷贝:概念、实现与局限

前不久,在“Gopher部落”知识星球[1]上回答了一个Gopher关于深拷贝(Deep Copy)的问题,让我感觉是时候探讨一下深拷贝技术了。 在日常开发工作中,深拷贝的使用频率相对较低,可能有80%的时间不需要使用深拷贝,只有在特定…

Uniapp 打包后的横屏控制

文章目录 问题处理参考 问题 Uniapp 打包后的横竖屏跟开发模式不太一样,需要在代码里设置一下 处理 需要改两个地方 pages.json:在 globalStyle 中添加 "pageOrientation": "auto", manifest.json:在第一层后面添加…

【Redis】主从复制(上)

文章目录 1.主从复制的基本概念基本概念主从复制的作用 2.在一个服务器上建立一个主从结构的redis集群建立主从关系断开主从关系redis中重要配置安全性只读传输延迟 3.主从关系--拓扑结构一主一从一主多从树形主从结构 1.主从复制的基本概念 基本概念 Redis 的主从复制&#…