Lvs-NAT部署

目录

一.什么是lvs

二.集群的类型

三.lvs的三种模式

四.lvs调度算法

五.LVS-NAT模式部署


一.什么是lvs

lvs负载均衡群集:由多台主机构成,对外表现为一个整体,只提供一个访问入口,相当于一个大计算机。

二.集群的类型

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

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

3,高性能运算群集 (HPC) 通过云计算或分布式计算将硬件资源整合成资源池以获取高性能的CPU、内存等资源,来提高整体运算能力

三.lvs的三种模式

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

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

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

DR模式是企业首选的LVS模式。

四.lvs调度算法

分为:rr(轮询) wrr(加权轮询) sh(源地址哈希) dh(目的地址哈希) lc(最小连接)

轮询(rr) 按照时间顺序逐一分配请求

加权轮询(wrr) 使用weight参数设置权重,weight值越高的后端节点被分配请求的概率越大

least_conn(最小连接、最少连接): 优先给当前连接数最少的后端节点分配请求

wlc(加权最小连接):优先分配请求给 <连接数>/<权重值> 的值最小的节点服务器

lblc(基于地址的最小连接):优先根据目的地址哈希将请求分配给同一个节点服务器,若此节点服务器满负荷了则优先将请求分配当前连接数最小的节点服务器

五.LVS-NAT模式部署

准备四台服务器:

1,部署NFS共享存储

2,部署Web节点服务器,注意:节点服务器的默认网关要指向调度器的内网IP,测试的时候可关闭连接保持

3,部署调度器,配置双网卡,开启IP路由转发功能,如果内网中的节点服务器需要访问外网则要配置SNAT规则,安装ipvsadm工具,添加虚拟服务器和真实服务器的相关配置,使用-m选项选择NAT模式

4,客户端设置默认网关指向调度器的外网IP,并使用客户端工具测试

先在一台服务器上下载共享目录的软件:

创建网页目录:

添加共享目录:

但另外两台服务器上查看下已共享的文件目录:

这两台服务器做web应用并下载nignx,并进行挂载:

我使用yum本地源下载nginx,两台操作都一样:

我们将nginx网页文件移动到其他地方,:

另一台服务器上也是如此操作:

修改两台服务器的配置文件,关闭长连接:

访问页面:

再开一台作为负载调度器,需要两个IP地址:

配置网卡作为外网关:

访问虚拟windows:

修改nginx两台的网卡配置网关都指向40调读度服务器:

在开启调度服务器的路由转发功能,配置snat:

为1则开启路由转发:

访问虚拟windows:

加载 ip_vs模块:

查看 ip_vs版本信息:

看所有ipvs版本:

下载ip管理工具,如果下载不了用本地yum下载: 

发现开启不了:

启动服务前须保存负载分配策略:

开启ipvs工具:

查看规则:

访问虚拟windows网页:

ipvsadm命令:

保存策略:

删除群集中某一节点服务器:

删除整个虚拟服务器:

关闭ipvs清空策略 :

相关推荐

  1. LVSNAT方式

    2023-12-16 15:48:02       22 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-16 15:48:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-16 15:48:02       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-16 15:48:02       87 阅读
  4. Python语言-面向对象

    2023-12-16 15:48:02       96 阅读

热门阅读

  1. Linux学习教程(第十二章 Linux系统管理)二

    2023-12-16 15:48:02       37 阅读
  2. python 如何快速注释几行代码

    2023-12-16 15:48:02       61 阅读
  3. (洛谷)P8835 [传智杯 #3 决赛] 子串

    2023-12-16 15:48:02       54 阅读
  4. HAProxy 根据报文解析来定义不同的acl

    2023-12-16 15:48:02       50 阅读
  5. 【LeetCode】15. 三数之和(Set用法)

    2023-12-16 15:48:02       64 阅读
  6. C语言编程题-单身狗

    2023-12-16 15:48:02       56 阅读
  7. 小程序人脸识别—检测人脸图片获取图片

    2023-12-16 15:48:02       38 阅读
  8. 贪心算法总结

    2023-12-16 15:48:02       59 阅读
  9. SpringCloud 和 Linux 八股文第二期五问五答

    2023-12-16 15:48:02       68 阅读
  10. opencv 安装

    2023-12-16 15:48:02       42 阅读
  11. PHP获取数组中最大最小值和下标

    2023-12-16 15:48:02       48 阅读
  12. C语言——const函数

    2023-12-16 15:48:02       56 阅读
  13. centos网卡重命名方法

    2023-12-16 15:48:02       61 阅读