LVS(二):NAT模式实验_在lvs中使用docker管理两台nginx-程序员宅基地

技术标签: lvs  基础运维  

实验利用用两台docker容器完成web请求响应,使用nginx来验证LVS功能

实验的LVS集群按功能模块分为:Load Balancer + RealServer两个模块

其中:

Load Balancer由宿主机实现,位于集群系统的前端,通过ipvsadm实现对后端服务器实现负载均衡功能,对外 IP 地址也成为 VIP(虚拟 IP 地址)

Real Server分别由两台安装了nginx的容器代替,完成web请求响应,服务器分别命名为RS1RS2

实验步骤

一、安装 ipvsadm 工具

实验环境在ubuntu下进行,使用apt-get完成ipvsadm的安装

sudo apt-get install ipvsadm -y
# 使用 ipvsadm
sudo ipvsadm -L

二、创建Real Server池

1、使用docker创建两台容器
docker run --name=RS1 -tdi ubuntu
docker run --name=RS2 -tdi ubuntu
2、登录两台容器,记录各自的IP
docker exec RS1 -it /bin/bash
...
ifconfig
RS1:IP 地址为 192.168.0.2
RS2:IP 地址为 192.168.0.3
3、安装工具
apt-get install vim nginx -y
4、为区别两台容器所响应,分别修改各自的响应页面
vi /usr/share/nginx/html/index.html

PS: 改好后记得重启nginx服务

在宿主机上使用浏览器验证两台容器的web服务是否正常工作:

三、修改调度规则
1、Load Balancer为宿主机,修改宿主机上的内核路由转发:
echo 1 > /proc/sys/net/ipv4/ip_forward
2、使用 ipvsadm 添加 ipvs 规则,并定义集群服务
sudo ipvsadm -A -t LB本机IP:80 -s rr         #定义集群服务
sudo ipvsadm -a -t LB本机IP:80 -r 192.168.0.2 -m #添加 RealServer1
sudo ipvsadm -a -t LB本机IP:80 -r 192.168.0.3 -m #添加 RealServer2
sudo ipvsadm -l                 #查看 ipvs 定义的规则

添加集群服务参数详解:

  • -A:添加一个新的集群服务

  • -t: 使用 TCP 协议

  • -s: 指定负载均衡调度算法

  • rr:轮询算法(LVS 实现了 8 中调度算法) LB本机IP:80 定义集群服务的 IP 地址(VIP) 和应用端口

  • -a:添加一个新的 RealServer 规则

  • -t:tcp 协议

  • -r:指定 RealServer IP 地址

  • -m:定义为 NAT 上面命令添加了两个服务器 RS1 和 RS2

四、配置完成,测试验证

使用浏览器打开本机IP,按住F5作死地刷新,看到页面不一致则说明LVS起作用了

(图裂了)

-------------The End-------------

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/saeba5566/article/details/104845894

智能推荐

STIHL EDI成功案例_edi案例-程序员宅基地

文章浏览阅读290次。STIHL斯蒂尔集团德国斯蒂尔集团STIHL是一家具有92年历史的顶尖机械用具品牌,发明了世界上第一台电锯,被称作“电锯之父”和“世界电锯之王”。2016年,知行软件助力供应商实现了与STIHL的EDI直连对接, 通过知行RSSBus EDI系统,供应商可以直接接收到STIHL的物料需求计划,并发送提前发货通知给STIHL。满足STIHL对于业务数据安全传输要求,增强供应商国际竞争..._edi案例

原生css实现滚动条显示_在css中如何在下拉滚动条图片一一显示-程序员宅基地

文章浏览阅读1k次。今天拿到设计图需要作出这样的一个效果,就是使用html加css实现滚动条的效果,效果图是这样的实现上面效果图的代码## html代码 <div style=" position: relative;"> <img src="assets/images/oa/集团OA/项目周期.png" alt="" class="project_modal_task" > <span class="project_modal_name_在css中如何在下拉滚动条图片一一显示

windows配置SVT-HEVC_enable svt hevc encoder-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏2次。Scalable Video Technology for HEVC Encoder (SVT-HEVC Encoder),用于HEVC编码器的可扩展视频技术(SVT-HEVC编码器)是符合HEVC标准的编码器库核心,针对英特尔Xeon可扩展处理器和XeonD处理器进行了高度优化。github地址:https://github.com/OpenVisualCloud/SVT-HEVC..._enable svt hevc encoder

java数据结构:双向链表结构与实现_java双向链表遍历-程序员宅基地

文章浏览阅读3.1k次,点赞2次,收藏13次。本教程的内容基本来自于《Java数据结构与算法》单向链表的缺点在于每个节点只能知道自己与下一个节点,无法寻找到上一个节点。而双向链表可以解决这个问题,通过在节点内部添加一个previous指针,指向它的前一节点。双向链表示意图图中所示为双向链表,与单向链表相比,只不过是多引入了一个指向前一节点的previous指针而已。优点:支持向前遍历,也支持向后遍历; 缺点:在对链表进行_java双向链表遍历

百度Q4财报解读:营收净利润加速增长 是时候重估百度了-程序员宅基地

文章浏览阅读2k次。北京时间2月28日,百度公布了截至2019年12月31日的第四季度及全年未经审计的财务报告。百度财报数据显示,2019年年营收为1074亿元人民币,2019年第四季度,百度营收289亿人民币,同比增长6%;归属百度的净利润达到92亿元人民币 (非美国通用会计准则),同比增长95%。从财报情况来看,高速增长的业务数据与强劲的现金流,将让百度迎来一次价值重估的机会。这对于投资者而言,是否是一次机会...

1 实现复数的加减乘除_实现两个复数的加减法及乘除法运算-程序员宅基地

文章浏览阅读236次,点赞2次,收藏2次。#include <stdio.h>#include <math.h>typedef struct { //构建复数的结构体类型(包含实部和虚部) float realpart; float imagpart;} Complex;// 函数声明Complex assign(float real,float imag); //赋值Complex add(Complex C1 ,Complex C2); //+Complex minus(Complex C_实现两个复数的加减法及乘除法运算

随便推点

ImportError: libcublas.so.9.0: cannot open shared object file: No such file...问题原因及解决方法-程序员宅基地

文章浏览阅读3.7k次,点赞2次,收藏5次。原因1:cuda9.0以及cudnn7未能安装或正确安装。解决方案:安装cuda及对应cudnn,已安装情况下检查路径usr/local/cuda-9.0/lib64下是否有 libcublas.so.9.0文件原因2:tensorflow版本与cuda不对应。解决方案:升级tensorflow原因3:路径未加入环境解决方案:sudo gedit ~/.bashrc ..._importerror: libcublas.so.9.0: cannot open shared object file: no such file

python socket bind端口报 permission denied_cannot bind netlink socket: permission denied-程序员宅基地

文章浏览阅读3.1k次。在绑定某个端口到socket的时候报权限问题1,使用sudo 去执行Python2,关闭selinux的权限_cannot bind netlink socket: permission denied

28、Flutter之Navigator进行局部跳转页面_navigator.of-程序员宅基地

文章浏览阅读5.1k次。NavigatorNavigator 是管理路由的控件,通常情况下直接使用Navigator.of(context)的方法来跳转页面,之所以可以直接使用Navigator.of(context)是因为在WidgetsApp中使用了此控件,应用程序的根控件通常是MaterialApp,MaterialApp包含WidgetsApp,所以可以直接使用Navigator的相关属性。基本用法:class MyNavigator extends StatefulWidget { const MyNa_navigator.of

ue4 android 交互,Android、IOS与Unity、UE4桥接详解-程序员宅基地

文章浏览阅读1.8k次。1.介绍业务需求需要提供较多native接口(Android、IOS)给Unity、Unreal来进行使用。为了方便开发,提供类似于阉割版的JSBridge的框架来实现通信。native需要给engine提供大量接口,即主要讨论Engine如果调用Native接口为主。2.原理Unity调用Android、IOS接口。Unity提供AndroidJavaClass工具类来进行通信,IOS则是直接通..._android ue4通讯

TCP / IP_tcp 127.0.0.1:62283 127.0.0.1:62284 established 13-程序员宅基地

文章浏览阅读729次。分层模型应用层一般为程序员经常使用的,就是和具体的协议,具体的程序打交道的层级_tcp 127.0.0.1:62283 127.0.0.1:62284 established 13764

Androidx Fragment两种懒加载_androidx.fragment懒加载-程序员宅基地

文章浏览阅读217次。1.viewPagerList<LazyFragment> fragmentList=new ArrayList<>();fragmentList.add(new MainFragment1(0));fragmentList.add(new MainFragment1(1));fragmentList.add(new MainFragment1(2));fragmentList.add(new MainFragment1(3));fragmentList.add(ne_androidx.fragment懒加载

推荐文章

热门文章

相关标签