LVS负载均衡集群--nat模式

news2024/11/29 3:44:29

一、集群含义:

  由多台主机构成,但对外只表现为一一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机。

二、群集的类型:

1)负载均衡群集 LB:

  提高系统响应效率,处理更多的访问请求,减少延迟,实现高并发、高负载的能力
典型代表:软件类:LVS  Nginx  HAProxy 等     硬件类:F5  绿盟

2)高可用群集 HA:

  提高系统可靠性,减少中断时间,确保服务的连续性(通常使用 N 个 9 来代表高可用的指标)
典型代表:Keepalived    heartbeat

3)高性能运输群集 HPC:

  通过云计算或分布式计算获取高性能的CPU、内存等资源,来提高整体运算能力

三、LVS 的三种工作模式:

1)NAT 地址转换:

  调度器会作为所以节点服务器的默认网关,也是客户端的访问入口和节点服务器返回响应消息的出口,也就是说调度器会承载双向数据流量的负载压力,可能会成为整个群集的性能瓶颈。由于节点服务器都处于内网环境,使用私网IP地址,所以具有一定安全性。

2)TUN IP隧道 IP Tunnel:

  调度器仅作为客户端的访问入口,节点服务器的响应消息是直接返回给客户端的,不需要经过调度器。但是由于节点服务器需要部署在不同位置的公网环境中,需要具有独立的公网IP,调度器与节点服务器是通过专用的IP隧道实现相互通信的,因此IP隧道模式的成本较高、安全性较低,且IP隧道需要额外的封装和解封装,性能会受到一定的影响。

3)DR 直接路由  Direct Routing:

  调度器仅作为客户端的访问入口,节点服务器的响应消息是直接返回给客户端的,不需要经过调度器。(与NAT模式的区别)
  节点服务器与调度器是部署在同一个物理网络内,因此不需要建立专用的IP隧道。(与TUN模式的区别)
      DR模式是企业首选的LVS模式。

四、LVS 调度算法:

1. rr 轮询    

  • 将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器) ,均等地对待每一台服务器 ,而不管服务器实际的连接数和系统负载

2. wrr 加权轮询  

  • 依据不同RS的权值分配任务。权重值较高的RS将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。
  • 保证性能强的服务器承担更多的访问流量。

3. sh 源地址哈希  

  • 以目的地址为关键字查找一个静态hash表来获得所需RS。

4. dh 目的地址哈希  

  • 以源地址为关键字查找--个静态hash表来获得需要的RS。

5. lc 最小连接  

  • ipvs表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS。
  • 根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点。

6. wlc 加权最小连接  

  • 假设各台RS的权值依次为Wi,当前tcp连接数依次为Ti,依次取Ti/Wi为最小的RS作为下一个分配的RS。

7. lblc 基于地址的最小连接

  • 将来自同一个目的地址的请求分配给同一台RS,此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS,并以它作为下一次分配的首先考虑。

五、ipvsadm管理工具:

  ipvsadm 是在负载调度器上使用的 LVS 群集管理工具,通过调用 ip_vs 模块来添加、删除服务器节点 ,以及查看集群运行状态,在CentOS 7系统中,需安装软件包

ipvsadm:

-A       添加虚拟服务器
-D       删除整个虚拟服务器
-s        指定负载调度算法(轮询:rr、加权轮询:wrr、最少连接:lc、加权最少连接:wlc)
-a        表示添加真实服务器(节点服务器)
-d        删除某一个节点
-t         指定 VIP地址及 TCP端口
-r         指定 RIP地址及 TCP端口
-m       表示使用 NAT群集模式
-g        表示使用 DR模式
-i         表示使用 TUN模式
-w       设置权重(权重为 0 时表示暂停节点)
-p 60   表示保持长连接60秒
-l         列表查看 LVS 虚拟服务器(默认为查看所有)
-n        以数字形式显示地址、端口等信息,常与“-l”选项组合使用。

    ipvsadm -ln 组合使用查看规则

yum -y install ipvsadm   需要下载

六、NAT模式 LVS负载均衡群集部署:

  1.部署共享存储:

systemctl disable --now firewalld.service  #关闭防火墙和安全机制
setenforce 0

yum install nfs-utils rpcbind -y
systemctl start rpcbind.service
systemctl start nfs.service                #安装启动工具

systemctl enable nfs.service
systemctl enable rpcbind.service           #设置开机自启

mkdir /opt/kgc /opt/benet                    #创建挂载目录
chmod 777 /opt/kgc /opt/benet                #加权限
echo 'this is wzw web1!' > /opt/kgc/index.html
echo 'this is dsj web2!' > /opt/benet/index.html     #模拟数据

vim /etc/exports
/usr/share *(ro,sync)
/opt/wzw 192.168.88.0/24(rw,sync)
/opt/dsj 192.168.88.0/24(rw,sync)          #添加规则

systemctl restart nfs rpcbind              #重启服务

2.配置节点服务器:

以下操作两台服务器同时进行:

systemctl disable --now firewalld.service
setenforce 0              

yum install httpd -y
systemctl enable --now httpd.service  #安装启动httpd

yum install nfs-utils rpcbind -y
systemctl enable --now nfs rpcbind    #安装启动共享服务

vim /etc/fstab
192.168.88.103:/opt/wzw	/var/www/html	nfs		defaults,_netdev	0  0

##永久挂载

mount -a      #刷新挂载


3.配置负载调度器:

systemctl disable --now firewalld.service
setenforce 0  

yum -y install ipvsadm       #先安装ipvsadn管理工具

ipvsadm-save > /etc/sysconfig/ipvsadm  #启动服务前须保存负载分配策略

systemctl start ipvsadm.service

添加新网卡IP地址为12.0.0.20   (仅主机)

vi /etc/sysctl.conf
 net.ipv4.ip_forward = 1     ##开启路由转发功能

sysctl -p      #刷新

iptables -t nat -F
iptables -F
iptables -t nat -A POSTROUTING -s 192.168.88.0/24 -o ens36 -j SNAT --to 12.0.0.20

  ##清空规则,添加新的SNAT防火墙策略  将88段IP转换为外网

ipvsadm -A -t 12.0.0.20:80 -s rr 
ipvsadm -a -t 12.0.0.20:80 -r 192.168.88.100:80 -m 
ipvsadm -a -t 12.0.0.20:80 -r 192.168.88.102:80 -m 
ipvsadm

  #添加lvs策略

注意服务器和客户端网关要  指向网关服务器

客户端网关为 12.0.0.20
服务器网关为 192.168.88.104



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

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

相关文章

通过bid爬取b站视频内容

1.B站的视频:音频内容和视频内容是分开的,爬完之后需要进行视频合成。 2.每个b站视频的bid号都是唯一的。 3.合成视频使用ffmpeg,通过官网下载,并且pip安装对应的python包,pip install ffmpeg-python。 win10系统下…

导出excel单元格时实现换行

上一篇:laravel中安装Maatwebsite/excel扩展 承接上一篇哈,laravel成功安装了excel的扩展,但是有个小的问题,就是每个题目有至少两个选项,导出到excel的时候,希望每个选项之间能换行展示,也就是…

stu04-快速生成HTML5文档结构

1.直接输入一个英文的感叹号“!”&#xff0c;然后按Tab键&#xff0c;自动生成 2.输入“html:5”&#xff0c;然后按Tab键自动生成 3.直接复制粘贴以下代码&#xff1a; <!doctype html> <html lang"en"> <head><meta charset"UTF-8&q…

5G定位技术原理与应用场景

5G高精度定位服务不仅适用于应急&#xff0c;还可以支持大量的个人业务&#xff0c;包括室外和室内场景&#xff0c;可以在交通道路、隧道、地下停车场或室内环境中支持高精度定位服务。在这些区域中&#xff0c;由于卫星信号的覆盖范围较小&#xff0c;基于5G网络的高精度定位…

继续上一个爬虫,所以说selenium加browsermobproxy

继续&#xff0c;书接上回&#xff0c;这次我通过jsrpc&#xff0c;也学会了不少逆向的知识&#xff0c;感觉对于一般的网站应该都能应付了。当然我说的是简单的网站&#xff0c;遇到那些混淆的&#xff0c;还有那种猿人学里面的题目&#xff0c;还是免谈了。那种需要的水平太高…

智慧园区:AI边缘计算技术与视频监控汇聚平台打造智慧园区解决方案

一、行业趋势与背景 智慧园区是现代城市发展的重要组成部分&#xff0c;通过智能化技术提高园区的运营效率、降低成本、增强环境可持续性等具有重要作用。在智慧园区中&#xff0c;人工智能和视频汇聚技术是重要的前置技术。人工智能技术可以实现对数据的智能化处理和分析&…

SpringMVC的拦截器和JSR303的使用

目录 一、JSR303 二、拦截器&#xff08;interceptor&#xff09; 一、JSR303 1.1.什么是JSR303 JSR 303&#xff0c;它是Java EE&#xff08;现在称为Jakarta EE&#xff09;规范中的一部分。JSR 303定义了一种用于验证Java对象的标准规范&#xff0c;也称为Bean验证。 Bean验…

2023年五一杯数学建模A题无人机定点投放问题求解全过程论文及程序

2023年五一杯数学建模 A题 无人机定点投放问题 原题再现&#xff1a; 随着科学技术的不断发展&#xff0c;无人机在许多领域都有着广泛的应用。对于空中执行定点投放任务的无人机&#xff0c;其投放精度不仅依赖于无人机的操作技术&#xff0c;而且还与无人机执行任务时所处状…

【C++进阶】:红黑树

红黑树 一.红黑树简单实现1.性质二.更新颜色1.情况一2.情况二3.情况三 3.完整代码(代码有注释&#xff0c;稍微画图很容易理解,旋转部分可以看我的AVL树博客) 二.map和set1.基本实现2.迭代器 本篇的前置条件是AVL树的旋转和搜索树&#xff0c;如果不了解可以看看我的AVL树博客 …

机器学习(13)---降维实例

目录 一、人脸识别降维1.1 查看原图1.2 降维后的图像 二、迷你案例2.1 用人脸识别看PCA降维后的信息保存量2.2 噪音过滤2.3 手写数字降维&#xff08;随机森林&#xff09;2.4 手写数字降维&#xff08;KNN&#xff09;2.4 案例总结 一、人脸识别降维 1.1 查看原图 注意&#…

vue3 自定义Hooks

文章目录 前言一、Hooks是什么&#xff1f;二、图片转换Base641.Hooks2.使用 三、监听元素宽高&#xff08;自定义指令Hooks&#xff09;1.Hooks2.使用 总结 前言 本文主要记录了vue3学习中自定义Hooks和vue2中Mixins的使用与案例。 一、Hooks是什么&#xff1f; Hooks用来处…

html给下拉框添加搜索、分页功能(通过ajax从服务器获取搜索数据)

文章目录 下拉框搜索分页功能开发功能使用源码和Demo&#xff08;点个赞再走咯&#xff09;test.htmlsearchable-select.csssearchserver-select.js 下拉框搜索分页功能开发 最近需要开发一个下拉框从服务器通过Ajax请求搜索数据库并且分页的组件&#xff0c;源码和demo放在下面…

【微信小程序开发】宠物预约医疗项目实战-开发功能介绍

【微信小程序开发】宠物医院项目实战-开发功能介绍 前言 本项目主要带领大家学习微信小程序开发技术&#xff0c;通过一个完整的项目系统的学习微信小程序的开发过程。鉴于一些同学对视频教学跟不上节奏&#xff0c;为此通过图文描述的方式&#xff0c;完整的将系统开发过程记…

【Redis】Redis常见面试题

【Redis】Redis常见面试题&#xff08;3&#xff09; 文章目录 【Redis】Redis常见面试题&#xff08;3&#xff09;1. 特性&应用场景1.1 Redis能实现什么功能1.2 Redis支持分布式的原理1.3 为什么Redis这么快1.4 Redis实现分布式锁1.5 Redis作为缓存 2. 数据类型2.1 Redis…

C# 委托学习1

委托的标准定义是&#xff0c;委托是一种引用类型&#xff0c;表示对具有特定参数列表和返回类型的方法的引用&#xff1b; 在实例化委托时&#xff0c;你可以将其实例与任何具有兼容签名和返回类型的方法相关联&#xff1b; 还有一种定义看上去也是正确的&#xff1a;委托是…

ModuleNotFoundError: No module named ‘gevent‘

1、先确定pip版本&#xff1a; pip3 list: 看到没有gevent包 如果pip版本不是最新版可以使用命令python -m pip install --upgrade pip进行更新&#xff0c; 2、安装 pip3 install gevent 安装完成

联合国教科文发布,ChatGPT等生成式AI教育应用指南

联合国教科文组织&#xff08;UNESCO&#xff09;在官网发布了&#xff0c;全球首个《生成式AI与教育未来》的应用指南。呼吁各国实施适当的政策&#xff0c;以确保在教育中应用以人为本的方法来使用生成式AI。&#xff08;指南下载地址&#xff1a;https://unesdoc.unesco.org…

排序(希尔、快速、归并排序)

文章目录 1.排序的概念及其运用 2.插入排序 3.选择排序 文章内容 1.排序的概念及其运用 1.1排序的概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性&#xff1a;假定在…

K8s上安装gitlab-ce

文章目录 K8s上安装gitlab-ce操作如下gitlab-deployment.yml K8s上安装gitlab-ce 前言   使用pv-pvc来持久化gitlab的数据&#xff0c;配置&#xff0c;日志文件。   pod启动后需要需要修改external_url然后重启pod。 操作如下 mkdir -p /mnt/data01/gitlab ctr -n k8s.…

C# Onnx Yolov8 Cls 分类

效果 项目 代码 using Microsoft.ML.OnnxRuntime; using Microsoft.ML.OnnxRuntime.Tensors; using OpenCvSharp; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System…