架构扩展-lvs

简介: LVS: Linux virtual server,即 Linux 虚拟服务器。 LVS 自身是个负载均衡器(director),不直接处理请求,而是将请求转发至位于它后端真正的服务器 realserver 上。 LVS 是四层(传输层 tcp/udp)负载均衡工具 ipvs 是集成在内核中的框架,可以通过用户空间的程序 ipvsadm 工具来管理,该工具可以定义一些规则来管理内核中 的 ipvs。 lvs无法解决RS的健康检查,并且存在单点故障,建议使用keepalived高可用。

前言

LVS: Linux virtual server,即 Linux 虚拟服务器。


   LVS 自身是个负载均衡器(director),不直接处理请求,而是将请求转发至位于它后端真正的服务器 realserver 上。


   LVS 是四层(传输层 tcp/udp)负载均衡工具


   ipvs 是集成在内核中的框架,可以通过用户空间的程序 ipvsadm 工具来管理,该工具可以定义一些规则来管理内核中

   的 ipvs。


   lvs无法解决RS的健康检查,并且存在单点故障,建议使用keepalived高可用。


lvs 集群术语

   VS:virtual server,负责调度 


   RS:real server,负责真正提供服务 


   CIP:客户端 ip 


   VIP:VS 外网 IP 


   DIP:VS 内网 ip 


   RIP:后端真实 ip


-------------------------------


lvs 工作模式:

(1)nat 模式

   通过将请求报文中的目标地址和目标端口修改为某 RS 的 RIP 和 PORT 实现转发。


   RIP 和 DIP 应在同一个 IP 网络,使用不同网络时,RS 和 lvs 需要指向到达互相的路由

   请求报文和响应报文都必须经过 Director 转发,Director 易于成为系统瓶颈

   支持端口映射,可修改请求报文的目标 PORT

   VS 必须是 linux,RS 可以是其他系统


(2)dr 模式(常用)

   DR(Director routing,直接路由)。

   lvs 默认模式,通过为请求报文重新封装一 个 MAC 首部进行转发,只会改变源和目的 MAC,不会修改源和目的 IP/PORT。


   Director 和 RS 都配置 VIP

   需要确保前端路由器将目标 VIP 的请求报文发往 Dircetor

   RS 和 Dircetor 需要在同一物理网络(因为 lvs 将通过 arp 找到 RS), RS 的网关不用指向DIP

   请求报文经过 Director,响应报文不经过 Director,由 RS 直接发往 Client

   不支持端口映射


(3)tun 模式

   不修改请求报文的 IP 首部(源 IP 为 CIP,目标 IP 为 VIP),而在原 IP 报 文之外再封装一个 IP 首部(源 IP 是 DIP,

   目标 IP 是 RIP),将报文发往挑 选出的目标 RS;RS 直接响应给客户端。


   DIP、VIP、RIP 可以是公网地址

   请求报文经过 Director,响应报文不经过 Director,由 RS 直接发往 Client

   不支持端口映射

   RS 的 OS 须支持隧道功能

   RS 的网关不用指向 DIP


------------------------------------------------------------------


LVS-DR模式配置

负载均衡器:ens33 192.168.8.10     ens33:0 192.168.8.200


节点1:   ens33 192.168.8.20     lo:0   192.168.8.200


节点2:   ens33 192.168.8.30     lo:0   192.168.8.200



1、LVS负载调度器(192.168.8.10):采用虚接口方式(ens33:0),为网卡ens33绑定VIP地址,以便响应群集访问。

ens33:192.168.8.10/24  ens33:0:192.168.8.200


配置命令如下:

yum install ipvsadm -y


cd /etc/sysconfig/network-scripts/

cp ifcfg-ens33 ifcfg-ens33:0


vim ifcfg-ens33:0

修改:

TYPE="Ethernet"

BOOTPROTO="static"

DEVICE="ens33:0"

ONBOOT="yes"

IPADDR=192.168.8.200

NETMASK=255.255.255.0

保存退出


ifup ens33:0

ifconfig ens33:0


配置LVS负载分配策略:

ipvsadm -A -t 192.168.8.200:80 -s rr


ipvsadm -a -t 192.168.8.200:80 -r 192.168.8.20:80 -g -w 1


ipvsadm -a -t 192.168.8.200:80 -r 192.168.8.30:80 -g -w 1


ipvsadm -Ln --stats


2、配置RS节点服务器(192.168.8.20,192.168.8.30):

使用DR模式时,节点服务器也需要vip地址,并调整内核的ARP响应参数以阻止更新vip的MAC地址,避免发生冲突。


配置命令:

yum install ipvsadm -y


cd /etc/sysconfig/network-scripts

cp ifcfg-lo ifcfg-lo:0


vim ifcfg-lo:0

修改:

DEVICE=lo:0

IPADDR=192.168.8.200

NETMASK=255.255.255.255

ONBOOT=yes

保存退出


ifup lo:0


添加vip本地访问路由:

route add -host 192.168.8.200 dev lo:0


配置RS节点的arp响应和通告级别:

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore


echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore


echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce


echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce


相关文章
|
28天前
|
监控 持续交付 API
深入理解微服务架构:构建高效、可扩展的系统
【10月更文挑战第14天】深入理解微服务架构:构建高效、可扩展的系统
78 0
|
1月前
|
消息中间件 监控 API
理解微服务架构:构建灵活和可扩展的应用
【10月更文挑战第7天】理解微服务架构:构建灵活和可扩展的应用
|
1月前
|
消息中间件 监控 API
深入理解微服务架构:构建可扩展与灵活的应用
【10月更文挑战第7天】深入理解微服务架构:构建可扩展与灵活的应用
43 0
|
12天前
|
监控 前端开发 JavaScript
探索微前端架构:构建可扩展的现代Web应用
【10月更文挑战第29天】本文探讨了微前端架构的核心概念、优势及实施策略,通过将大型前端应用拆分为多个独立的微应用,提高开发效率、增强可维护性,并支持灵活的技术选型。实际案例包括Spotify和Zalando的成功应用。
|
15天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
51 1
|
30天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
57 3
|
1月前
|
存储 监控 前端开发
掌握微前端架构:构建可扩展的前端应用
【10月更文挑战第6天】随着前端应用复杂性的增加,传统单体架构已难以满足需求。微前端架构通过将应用拆分为独立模块,提升了灵活性与可维护性。本文介绍微前端的概念、优势及实施步骤,包括定义边界、创建共享UI库、设置通信机制等,并探讨其在SPA扩展、大型项目模块化及遗留系统现代化中的应用。通过实战技巧如版本控制、配置管理和监控日志,帮助团队高效协作,保持应用灵活性。微前端架构为构建大型前端应用提供有效解决方案,适合希望提升项目可扩展性的开发者参考。
|
14天前
|
机器学习/深度学习 人工智能 自然语言处理
Tokenformer:基于参数标记化的高效可扩展Transformer架构
本文是对发表于arXiv的论文 "TOKENFORMER: RETHINKING TRANSFORMER SCALING WITH TOKENIZED MODEL PARAMETERS" 的深入解读与扩展分析。主要探讨了一种革新性的Transformer架构设计方案,该方案通过参数标记化实现了模型的高效扩展和计算优化。
73 0
|
1月前
|
消息中间件 存储 监控
探索微服务架构:构建可扩展的应用程序
【10月更文挑战第8天】探索微服务架构:构建可扩展的应用程序
32 0
|
1月前
|
监控 JavaScript API
深入理解微服务架构:构建可扩展的现代应用
【10月更文挑战第6天】深入理解微服务架构:构建可扩展的现代应用
79 0