1. lvs负载均衡

lvs负载均衡

  • 一、集群技术概述
    • 1、集群技术类型
    • 2、负载均衡技术
    • 3、高可用技术
  • 二、负载均衡 LVS
    • 1、LVS介绍
    • 2、负载均衡策略/算法
    • 3、LVS设计模式
    • 3.1 NAT模式的注意事项
    • 3.2 DR 直接路由模式的注意事项
  • 三、LVS nat模式的实现
    • 1、确认后端服务器网关正确
    • 2、安装ipvsadm软件
    • 3、开启路由转发
    • 4、创建虚拟服务
    • 5、添加后端real server
    • 6、测试访问
  • 四、DR模式配置
    • 1、所有real server配置VIP
    • 2、所有real server修改arp系统参数
    • 3、创建虚拟服务
    • 4、添加后端的real server
    • 5、测试访问
  • 五、持久性连接

一、集群技术概述

1、集群技术类型

负载均衡集群, Load Balance LB
高可用集群, High Avalibility HA

2、负载均衡技术

在这里插入图片描述

3、高可用技术

避免关键业务的单点故障
通过优先级选择主备角色,主负责转发客户端流量 ,同时会向备发送心跳信息,备一段时间内接收不到心跳,会认为主宕机故障,自动会接替主的工作继续转发流量
在这里插入图片描述

二、负载均衡 LVS

1、LVS介绍

LVS Linux Virtual Service Linux虚拟服务
集成在内核中负载均衡模块
国内章文嵩博士研发

2、负载均衡策略/算法

1、rr 轮询, 解决会话持久的问题
2、wrr 加权轮询,为后端服务器设置不同的权重值
3、lc 最少连接
4、wlc 加权最少连接, 【默认】
5、sh 源hash,一段时间内, 同一个客户端的访问请求会转发到同一个后端服务器

3、LVS设计模式

  • NAT模式
    请求、响应都是要经过调度器
    在这里插入图片描述
  • DR直接路由模式
    请求经过调度器,响应由后端服务器直接响应给客户端
    在这里插入图片描述
  • TUN隧道模式

3.1 NAT模式的注意事项

1、VIP、DIP要属于两个不同的网络
2、负载均衡器要开启路由转发功能
3、所有real server的网关要指向DIP
在这里插入图片描述

3.2 DR 直接路由模式的注意事项

1、所有的real server必须要配置VIP,目的是为了可以正常接收请求
2、所有的real server修改两个参数
arp_ignore=1, 避免VIP产生冲突
arp_announce=2, 避免客户端直接访问后端的real server,失去负载均衡的效果

三、LVS nat模式的实现

在这里插入图片描述

1、确认后端服务器网关正确

[root@web01 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.171.100 0.0.0.0         UG    100    0        0 ens33
192.168.171.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

网关指向DIP 

2、安装ipvsadm软件

[root@lvs ~]# yum install -y ipvsadm 

3、开启路由转发

[root@lvs ~]# vim /etc/sysctl.conf 
net.ipv4.ip_forward = 1

[root@lvs ~]# sysctl -p

4、创建虚拟服务

[root@lvs ~]# ipvsadm -A -t 192.168.146.100:80 -s rr

5、添加后端real server

[root@lvs ~]# ipvsadm -a -t 192.168.146.100:80 -r 192.168.171.10:80 -m
[root@lvs ~]# ipvsadm -a -t 192.168.146.100:80 -r 192.168.171.20:80 -m

查看虚拟服务

[root@lvs ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.146.100:80 rr
  -> 192.168.171.10:80            Masq    1      0          0         
  -> 192.168.171.20:80            Masq    1      0          0      

6、测试访问

C:\Users\admin>curl 192.168.146.100
web02

C:\Users\admin>curl 192.168.146.100
web01

C:\Users\admin>curl 192.168.146.100
web02

C:\Users\admin>curl 192.168.146.100
web01

查看连接

[root@lvs ~]# ipvsadm -L -n -c
IPVS connection entries
pro expire state       source             virtual            destination
TCP 01:24  TIME_WAIT   192.168.146.1:57818 192.168.146.100:80 192.168.171.10:80
TCP 01:25  TIME_WAIT   192.168.146.1:57820 192.168.146.100:80 192.168.171.10:80
TCP 01:22  TIME_WAIT   192.168.146.1:57813 192.168.146.100:80 192.168.171.20:80
TCP 01:24  TIME_WAIT   192.168.146.1:57816 192.168.146.100:80 192.168.171.10:80
TCP 01:22  TIME_WAIT   192.168.146.1:57812 192.168.146.100:80 192.168.171.10:80
TCP 00:47  TIME_WAIT   192.168.146.1:57796 192.168.146.100:80 192.168.171.20:80
TCP 01:20  TIME_WAIT   192.168.146.1:57808 192.168.146.100:80 192.168.171.20:80
TCP 00:46  TIME_WAIT   192.168.146.1:57795 192.168.146.100:80 192.168.171.10:80
TCP 01:21  TIME_WAIT   192.168.146.1:57811 192.168.146.100:80 192.168.171.20:80

四、DR模式配置

在这里插入图片描述

1、所有real server配置VIP

[root@web01 ~]# ip addr add dev lo 192.168.140.100/32

32位掩码代码没有主机位,网络中只有这一个IP 

2、所有real server修改arp系统参数

[root@web01 ~]# vim /etc/sysctl.conf 
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

[root@web01 ~]# sysctl -p

3、创建虚拟服务

[root@lvs ~]# ip addr add dev lo 192.168.140.100/32
[root@lvs ~]# 
[root@lvs ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet 192.168.140.100/32 scope global lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
[root@lvs ~]# ipvsadm -A -t 192.168.140.100:80 -s rr

4、添加后端的real server

[root@lvs ~]# ipvsadm -a -t 192.168.140.100:80 -r 192.168.140.11:80 -g 
[root@lvs ~]# ipvsadm -a -t 192.168.140.100:80 -r 192.168.140.12:80 -g 

[root@lvs ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.140.100:80 rr
  -> 192.168.140.11:80            Route   1      0          0         
  -> 192.168.140.12:80            Route   1      0          0       

5、测试访问

C:\Users\admin>curl 192.168.140.100
web02

C:\Users\admin>curl 192.168.140.100
web01

C:\Users\admin>curl 192.168.140.100
web02

C:\Users\admin>curl 192.168.140.100
web01

五、持久性连接

一段时间内,同一个客户端请求会转发到同一个后端服务器
解决会话持久问题

[root@lvs ~]# ipvsadm -E -t 192.168.140.100:80 -s rr -p 300

[root@lvs ~]# ipvsadm -L -n 
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.140.100:80 rr persistent 300
  -> 192.168.140.11:80            Route   1      0          0         
  -> 192.168.140.12:80            Route   1      0          0     
C:\Users\admin>curl 192.168.140.100
web01

C:\Users\admin>curl 192.168.140.100
web01

C:\Users\admin>curl 192.168.140.100
web01

C:\Users\admin>curl 192.168.140.100
web01

C:\Users\admin>curl 192.168.140.100
web01

C:\Users\admin>curl 192.168.140.100
web01

C:\Users\admin>curl 192.168.140.100
web01

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/683033.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java 实验8 集合类

&#xff08;一&#xff09;实验目的 1、掌握JAVA集合类中的Collection的特点及其应用情形&#xff1b; 3、掌握Collection、熟悉集合的特点及应用。 &#xff08;二&#xff09;实验内容和步骤 1、仿照课堂练习的MyStack示例&#xff0c;使用LinkedList集合类实现一个先进…

Java项目:100 springboot共享汽车管理系统

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本共享汽车管理系统有管理员和用户。 管理员功能有个人中心&#xff0c;用户管理&#xff0c;投放地区管理&#xff0c;汽车信息管理&#xff0c;汽车…

xrun简单的仿真环境

xrun xceliun makefile文本 all: clean comp ela sim comp:xrun -64bit -compile test.v accessrwc ela:xrun -64bit -elaborate test.v accessrwc sim:xrun -64bit -R -gui clean:xrun -clean 仿真代码 timescale 1ns/1ns module test (); reg clk; initial beginclk 1b…

xtsk—选择自由

最近和一些自由职业者交流时深刻感受到&#xff0c;系统思考不是为了创造更多的工作&#xff0c;而是为了创造更多的自由。我们工作的最终目的&#xff0c;实际上是为了达到不需要为了生存而工作的自由状态&#xff0c;赚钱只是手段&#xff0c;其本质是为了赢得更多的选择权。…

【机器学习300问】108、什么是多项式回归模型?

一、多项式回归是什么 &#xff08;1&#xff09;举例说明 假设你经营着一家农场&#xff0c;想要根据土地面积来预测作物的产量。如果你只用线性模型&#xff08;即&#xff09;&#xff0c;你可能会发现它并不足以描述实际的产量情况&#xff0c;因为实际产量可能会随着土地…

Huawei 大型 WLAN 组网 AC 间漫游

AC1配置命令 <AC6005>display current-configuration # vlan batch 100 # interface Vlanif100description to_S3_CAPWAPip address 10.0.100.254 255.255.255.0 # interface GigabitEthernet0/0/1port link-type trunkport trunk allow-pass vlan 100# ip route-stati…

【2024】Kafka Streams纤细介绍与具体使用(1)

目录 介绍关键特性应用场景核心概念部署方式kafka streams的处理模式 具体使用1、准备工作2、添加依赖3、代码实现3、测试 介绍 Kafka Streams是构建在Apache Kafka之上的客户端库&#xff0c;用于构建高效、实时的流处理应用。它允许你以高吞吐量和低延迟的方式处理记录流&am…

uniapp小程序多线程 Worker 实战【2024】

需求 最近遇到个小程序异步解码的需求&#xff0c;采用了WebAssembly&#xff0c;涉及大量的计算。由于小程序的双线程模型只有一个线程处理数据&#xff0c;因此智能寻求其它的解决方案。查看小程序的文档&#xff0c;发现小程序还提供一个异步线程的Worker方案&#xff0c;可…

Java | Leetcode Java题解之第134题加油站

题目&#xff1a; 题解&#xff1a; class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {int n gas.length;int i 0;while (i < n) {int sumOfGas 0, sumOfCost 0;int cnt 0;while (cnt < n) {int j (i cnt) % n;sumOfGas gas[j];sumOfCos…

如何通过 6 种简单方法将照片从华为转移到 PC?

华为作为全球领先的智能手机供应商之一&#xff0c;最近推出了其自主研发的操作系统——HarmonyOS 2.0&#xff0c;旨在为智能手机、平板电脑和智能手表等设备提供更流畅的用户体验。随着Mate 40/P40等系列手机计划升级到HarmonyOS 2.0&#xff0c;用户可能需要将手机中的文件备…

【云原生】Kubernetes----轻量级的现代HTTP反向代理和负载均衡器之Traefik

目录 引言 一、Traefik基本概念 &#xff08;一&#xff09;什么是Ingress &#xff08;二&#xff09;什么是Traefik &#xff08;三&#xff09;Traefik和Nginx的区别 1.设计目标 2.配置语言 3.容器支持 4.功能特性 二、安装部署Traefik &#xff08;一&#xff0…

[C][数据结构][顺序表]详细讲解+实现

目录 1.线性表2.顺序表 - SeqList3.实现4.顺序表缺点 1.线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列线性表是一种在实际中广泛使用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构&#xff0…

十.数据链路层——MAC/ARP

IP和数据链路层之间的关系 引言 在IP一节中&#xff0c;我们说IP层路由(数据转发)的过程&#xff0c;就像我们跳一跳游戏一样&#xff0c;从一个节点&#xff0c;转发到另一个节点 它提供了一种将数据从A主机跨网络发到B主机的能力 什么叫做跨网络&#xff1f;&#xff1f;&a…

Windows开启远程桌面

搜索并进入【远程桌面设置】 ​​ 开启远程桌面 ​​​ ipconfig​命令查看ip地址&#xff0c;并使用地址在另一台电脑远程登录此电脑 选择其他账户登录&#xff0c;输入用户和密码 ​​ ​​ 成功登录 ​​

AlDente Pro for Mac(电池最大充电限制工具)v1.24激活版

AlDente Pro for Mac是一款运行在MacOS平台上专业的电池最大充电限制工具。通过 AlDente Pro 您可以设置电池的最大充电百分比设置为 20&#xff05; 至 100&#xff05;&#xff0c;然后&#xff0c;它将保持在所需的电池百分比&#xff0c;然后再次使用电源适配器进行充电。 …

VM-Import 导入 Debian 12 系统

介绍 之前介绍过使用 VM-Import 导入 Windows 系统到 AWS 环境启动 EC2 实例, 本文将介绍如何导入 Debian 12 系统. 本地虚拟化使用 VMWare Workstation 创建虚拟机安装和准备 Debian 12 系统, 导出 OVA 文件后上传到 S3 存储桶中再使用 AWSCLI 执行 VM-Import 命令实现导入过…

设计模式-抽象工厂(创建型)

创建型-抽象工厂 角色 抽象工厂&#xff1a; 声明创建一个族产品对象的方法&#xff0c;每个方法对应一中产品&#xff0c;抽象工厂可以是接口&#xff0c;也可以是抽象类&#xff1b;具体工厂&#xff1a; 实现抽象工厂接口&#xff0c;复杂创建具体的一族产品&#xff1b;抽…

[移动通讯]【无线感知-P2】[特征,算法,数据集】

前言&#xff1a; 这里面主要参考清华大学的杨峥教授&#xff0c;做一下无线感知的总结. 基本思想&#xff1a; 无线信号不仅可以传输数据,还可以感知环境信号发射机产生的无线电波 经由直射,反射,散射等多条路径传播,在信号接收机形成的多径叠加信号 携带反映环境特征…

Unreal项目修改名字

Unreal项目修改名字 前言修改Unreal Blueprints工程项目名字修改Unreal C工程项目名字 前言 Unreal项目修改名字还是比较麻烦的&#xff0c;针对纯蓝图工程和C工程有一些区别。 修改Unreal Blueprints工程项目名字 修改纯蓝图的Unreal项目还是比较简单的&#xff0c;只要两个…

hcia datacom学习(12):vlan间路由

不同vlan相当于不同网段&#xff0c;如果vlan间没有三层技术&#xff0c;那么它们就无法互相通信。 vlan间路由可以有3种方式&#xff1a; 1.直接使用路由器转发 *路由器本身不需要额外设置&#xff0c;只需配置端口ip作为网关即可。 *路由器不能处理带有vlan标签的数据帧&a…