小白带你学习linux的LVS集群(三十六)

news2024/12/28 11:40:55

一、集群概述

1、负载均衡技术类型

四层负载均衡器 也称为 4 层交换机,主要通过分析 IP 层及 TCP/UDP 层的流量实现基于 IP 加端口的负载均衡,如常见的 LVS、F5 等;

七层负载均衡器 也称为 7 层交换机,位于 OSI 的最高层,即应用层,此负载均衡器支持多种协议,如HTTP、FTP、SMTP 等。7 层负载均衡器可根据报文内容,配合一定的负载均衡算法来选择后端服务器,即“内容交换器”。如常见的 HAProxy、Nginx。

2、负载均衡实现方式

硬件负载均衡产品:F5 、深信服 、Radware

软件负载均衡产品: LVS(Linux Virtual Server)、 Haproxy、Nginx、Ats(apache trafficserver)

二、LVS结构

1、三层结构

负载调度器

服务器池

共享存储

 2、架构对象

VS:Virtual Server,也称为 Director,负载均衡服务器

RS:Real Server,真正的服务器,集群中各节点

VIP:Director 向外部提供服务的 IP

DIP:Director 向内部与 RS 通信的 IP

RIP:真实服务器的 IP

CIP:客户端的 IP

三、LVS工作模式

    LVS-NAT(NAT模式)

    LVS-DR(直接路由模式)(应用最广泛)

    LVS-TUN(IP隧道(Tunnel)模式,不常用)

    FULL-NAT模式(双向转换模式,不常用)

四、LVS负载均衡算法

1、静态负载均衡

rr(round robin,轮询 )

wrr(weight round robin,加权轮询)

sh(source hashing,源地址散列算法(HASH))

dh(destination hashing,目标地址 HASH)

 2、动态负载均衡

 lc(leash-connection,最少连接 )

 简单算法:active * 256 + inactive (谁的小选谁)

 wlc(加权最少连接)
 简单算法:(active * 256 + inactive) / weight(谁的小选谁)

 sed(最少期望延迟)

简单算法:(active + 1) * 256 / weight (谁的小选谁)

nq(never queue,永不排队)

LBLC(基于局部性的最少连接 )

LBLCR(基于局部性的带复制功能的最少连接)

五、ipvsadm命令详解

 -A        添加虚拟服务节点

-D        删除虚拟服务节点

-L        查看虚拟服务节点列表

-a       添加真实服务节点

-d        删除真实服务节点

-l        查看真实服务节点列表

-t        指定虚拟服务器IP地址

-s        指定调度算法

-r        指定真实服务器节点IP地址

-w        指定权重值

-g        直接路由模式(默认)

-i        隧道模式(不常用)

-m        NAT模式
    案例

六、LVS配置案列

我配置的是三台虚拟机,拿主机访问的虚拟机配置

1、基础配置

修改主机名

 

关闭防火墙

关闭Selinux

关闭Networkmanager

配置IP地址

master 192.168.28.4

server1 192.168.28.5

server2 192.168.28.6

2、实现NAT模型搭建

2、1负载调度器配置

配置IP地址

master增加一块网卡

cd /etc/sysconfig/network-scripts/

cp ifcfg-ens33 ifcfg-ens37

cd /etc/sysconfig/network-scripts/

cp ifcfg-ens33 ifcfg-ens37

vim ifcfg-ens33

vim ifcfg-ens37

ens37 这里就要看主机的ip了主机ip是192.168.200.1所以我们的37就是

 vim ifcfg-ens37

删除UUID

NAME=ens37

DEVICE=ens37

 重启一下网卡

systemctl restart network

ip a

配置本地yum源

安装ipvsadm

yum  install -y ipvsadm

开启路由转发功能

cd /etc/sysctl.d/

vim route.conf

sysctl -p /etc/sysctl.d/route.conf 

主机master的更改就OK了,开始更改slave1,slave2基础配置和master一样

ip192.168.28.5

在这里网关一定要给成master的网关 

 改成网络源

下载nginx

 yum -y install epel-release

 yum -y install epel-release

 yum -y install nginx

启动nginx

 systemctl start nginx

 netstat -anptu |grep nginx

创建一个nginx1的网站

 cd /usr/share/nginx/html/

 echo nginx1 > index.html

 route -n

 slave2的配置和slave1 的一样

 yum -y install epel-release

 yum -y install epel-release

 yum -y install nginx

 systemctl start nginx

 cd /usr/share/nginx/html/

 echo nginx2 > index.html 

 vim /etc/sysconfig/network-scripts/ifcfg-ens33 

 systemctl restart network

 route -n

 

 网卡配置一下

回master加载ip_vs模块

modprobe ip_vs

lsmod |grep ip_vs

启动ipvsadm服务

systemctl start ipvsadm

systemctl status ipvsadm

touch /etc/sysconfig/ipvsadm

ls /etc/sysconfig/

配置负载分配策略

ipvsadm -A -t 192.168.200.100:80 -s rr

ipvsadm -a -t 192.168.142.100:80 -r 192.168.28.5:80 -m

ipvsadm -a -t 192.168.142.100:80 -r 192.168.28.6:80 -m

 ipvsadm -A -t 192.168.200.100:80 -s rr

 ipvsadm -a -t 192.168.200.100:80  -r 192.168.28.5:80 -m

 ipvsadm -a -t 192.168.200.100:80  -r 192.168.28.6:80 -m

保存策略

查看一下

 ipvsadm -Ln

ipvsadm-save > /etc/sysconfig/ipvsadm

 ipvsadm -save > /etc/sysconfig/ipvsadm

 cat /etc/sysconfig/ipvsadm

2、2web节点配置

直接拿我们的主机当做httpd访问

测试

做到这就OK了回我们的主机浏览器查看一下192.168.200.100使用Ctrl+F5深度刷新完成

3、 实现DR模型搭建

 

3、1负载调度器配置

调整ARP参数

从上个基础上把master的37网卡摘除

 把slave1和slave2的网关注释掉

回到master上删除一个数据

 rm -rf /etc/sysctl.d/route.conf 

 vim /etc/sysctl.conf

 vim /etc/sysctl.conf 

 sysctl -p

net.ipv4.conf.all.send_redirects = 0 

net.ipv4.conf.default.send_redirects=0

net.ipv4.conf.ens33.send_redirects = 0

sysctl -p

 

配置虚拟IP地址

cd /etc/sysconfig/network-scripts/

 cd /etc/sysconfig/network-scripts/

 mv ifcfg-ens37 ifcfg-ens33:0

 vim ifcfg-ens33:0

 重启一下网络查看一下IP

 systemctl restart network

 ip a

 

安装ipvsadm

yum  install -y ipvsadm

modprobe ip_vs

lsmod |grep ip_vs

systemctl start ipvsadm

yum  install -y ipvsadm

加载ip_vs模块

modprobe ip_vs

lsmod |grep ip_vs

启动ipvsadm服务

systemctl start ipvsadm

这三步骤已经安装好了

配置负载分配策略

ipvsadm -A -t 192.168.200.100:80 -s rr

ipvsadm -a -t 192.168.115.200:80 -r 192.168.28.5:80 -g

ipvsadm -a -t 192.168.115.200:80 -r 192.168.28.6:80 -g

ipvsadm -A -t 192.168.200.100:80 -s rr

ipvsadm -a -t 192.168.115.200:80 -r 192.168.28.5:80 -g

ipvsadm -a -t 192.168.115.200:80 -r 192.168.28.6:80 -g

ipvsadm -Ln

保存策略

ipvsadm-save > /etc/sysconfig/ipvsadm

3、2web节点配置

调整ARP参数两台slave都需要配置

 vim /etc/sysctl.conf

sysctl -p

 vim /etc/sysctl.conf 

 sysctl -p

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

两台slave都需要配置

配置虚拟IP地址两台slave都需要更改

cd /etc/sysconfig/network-scripts/

cp ifcfg-lo ifcfg-lo:0

vim ifcfg-lo:0

 cd /etc/sysconfig/network-scripts/

 cp ifcfg-lo ifcfg-lo:0

 vim ifcfg-lo:0

 systemctl restart network

 ip a

 

添加回环路由两台都要加

route add -host 192.168.200.100/32 dev lo:0

 

安装httpd

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器人力控入门——牛顿欧拉法动力学建模

建立机器人的动力学模型是完成力控的基础,常用的动力学模型建模法有拉格朗日法和牛顿-欧拉法,其中牛顿-欧拉采用递推形式,计算更为简便,使用也更为广泛。本文就来介绍下牛顿-欧拉的动力学建模方法, PS,网上…

C++--动态规划两个数组的dp问题

1.最长公共子序列 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串…

day 37 | ● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零

1049. 最后一块石头的重量 II 与前一道分割等和子集的思路差不多,都是01背包问题。因为是采用滚动数组的形式,所以必须要倒序遍历才可以。 dp[i]代表着在i的限制下最大的承重。所以另一半就是all - dp【all / 2】 func lastStoneWeightII(stones []int…

Fabric.js 元素选中状态的事件与样式

本文简介 带尬猴! 你是否在使用 Fabric.js 时希望能在选中元素后自定义元素样式或选框(控制角和辅助线)的样式? 如果是的话,可以放心往下读。 本文将手把脚和你一起过一遍 Fabric.js 在对象元素选中后常用的样式设置…

git 把项目托管到 码云出现的错误集合

分享一下我git项目时碰见的错误 1、error: could not lock config file D:/orcad/Cadence/SPB_Data/.gitconfig: No suchfile or directory 在下载git后设置用户名、邮箱时会出现的错误 需要去修改环境变量,这个之前写好了,可以跳转看看 Git配置error:…

计算机竞赛 基于Django与深度学习的股票预测系统

文章目录 0 前言1 课题背景2 实现效果3 Django框架4 数据整理5 模型准备和训练6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于Django与深度学习的股票预测系统 ** 该项目较为新颖,适合作为竞赛课题方向&#xff…

js将搜索的关键字加颜色

js将搜索的关键字加颜色 使用正则匹配关键字并加入span标签&#xff0c;页面渲染时使用v-html渲染即可 // 文本框内容 let searchCont 测试;const reg new RegExp((${searchCont.value}), g); let data 图片保存测试A; data data.replace(reg, <span style"color:…

【N年测试总结】测试的分类

一、概述 测试的分类一般有按照测试的内容进行划分和按照测试阶段划分两种大的方式。 按测试内容划分 1、需求测试 2、单元测试 3、接口测试 4、功能测试 5、UI自动化测试 6、性能测试 7、测试开发 按测试阶段划分 1、需求测试 2、单元测试 3、集成测试 4、系统测试 5、验…

C 连接MySQL8

Linux 安装MySQL 8 请参考文章&#xff1a;Docker 安装MySQL 8 详解 Visual Studio 2022 编写C 连接MySQL 8 C源码 #include <stdio.h> #include <mysql.h> int main(void) {MYSQL mysql; //数据库句柄MYSQL_RES* res; //查询结果集MYSQL_ROW row; //记录结…

回归预测 | MATLAB实现BES-ELM秃鹰搜索优化算法优化极限学习机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现BES-ELM秃鹰搜索优化算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现BES-ELM秃鹰搜索优化算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效…

【学会动态规划】最长递增子序列的个数(28)

目录 动态规划怎么学&#xff1f; 1. 题目解析 2. 算法原理 1. 状态表示 2. 状态转移方程 3. 初始化 4. 填表顺序 5. 返回值 3. 代码编写 写在最后&#xff1a; 动态规划怎么学&#xff1f; 学习一个算法没有捷径&#xff0c;更何况是学习动态规划&#xff0c; 跟我…

Spring Boot 事务和事务传播机制

1. 为什么需要事务? 事务定义 将一组操作封装成一个执行单元 (封装到一起)&#xff0c;这一组的执行具备原子性, 那么就要么全部成功&#xff0c;要么全部失败. 为什么要用事务? 比如转账分为两个操作: 第一步操作:A 账户-100 元。 第二步操作:B账户 100 元。 如果没有事务&a…

【WinForm】WebView2-个性化浏览器-桌面程序开发详解

这是一个桌面程序上的浏览器&#xff0c;是用插件WebView2开发的浏览器桌面程序&#xff0c;功能体验堪比Edge浏览器&#xff0c;相比使用Chrome内核插件开发浏览器来说&#xff0c;还是用插件WebView2开发来得简单一些&#xff0c;接下来讲一讲实现过程。 开发之前&#xff0c…

Centos7部署Python程序详解

Centos7服务器部署Python 本文章前半部分为部署过程&#xff0c;后半部分为部署中碰到的问题及解决方案&#xff0c;仅供参考&#xff01;&#xff01;&#xff01;&#xff0c;本文示例为部署py文件为例。 部署步骤&#xff1a; 登录centos7服务器后 1.查看python版本 py…

Kotlin 高阶函数详解

高阶函数 在 Kotlin 中&#xff0c;函数是一等公民&#xff0c;高阶函数是 Kotlin 的一大难点&#xff0c;如果高阶函数不懂的话&#xff0c;那么要学习 Kotlin 中的协程、阅读 Kotlin 的源码是非常难的&#xff0c;因为源码中有太多高阶函数了。 高阶函数的定义 高阶函数的…

CGAL 点云分类

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 点云分类一直是点云数据应用的永恒课题,它包含很多,如地面点分类、建筑物分类、植被分类等。CGAL中也为我们提供了一种点云分类的方式,其具体的计算过程如下所述: 首先,使用点云中所携带的一些几何特征来对数据…

三、数据库索引

1、索引介绍 索引是一种用于快速查询和检索数据的数据结构&#xff0c;其本质可以看成是一种排序好的数据结构。 常见的索引结构有&#xff1a;B数&#xff0c;B树&#xff0c;Hash和红黑树等。在MySQL中&#xff0c;无论是 InnoDB还是MyISAM&#xff0c;都使用了B树作为索引…

西班牙卡瓦起泡酒的风味搭配

卡瓦是一种对食物友好的西班牙起泡酒&#xff0c;它的制作方法和香槟一样&#xff0c;可以和类似的食物搭配。卡瓦食物搭配包括各种食物&#xff0c;从海鲜和鱼到火腿&#xff0c;以及不同类型的小吃&#xff0c;也可以将卡瓦酒与甜点、水果和奶酪搭配。 卡瓦酒是世界上最著名的…

IDEA常用插件之注解插件

文章目录 注解插件JavaDoc插件安装修改配置生成文档加入自己信息 Easy JavaDoc安装插件在线安装离线安装中文名自动转英文加注释默认快捷键&#xff08;可通过IDEA快捷键设置修改&#xff09; 注解插件 JavaDoc插件 安装 修改配置 生成文档加入自己信息 Easy JavaDoc 中文文…

一种pug与html相互转换的工具

有时候看pug很不方便&#xff0c;这个语言虽然简洁&#xff0c;但可读性与维护性较差&#xff0c;所以需要进行转换&#xff0c;这个是win工具&#xff0c;比较方便。 这个工具的下载地址如下&#xff1a; https://download.csdn.net/download/qq_40032778/88244980 解压后如下…