设为首页 收藏本站
查看: 996|回复: 0

[经验分享] LINUX集群LVS负载均衡配置

[复制链接]

尚未签到

发表于 2019-1-2 12:34:19 | 显示全部楼层 |阅读模式
LINUX集群LVS负载均衡配置


基础原理篇:
LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器。

负载均衡一般是指一群计算机的集合,通过一个虚拟ip去根据某种算法,去不停分配到这集合的计算机当中,假如有 主机A 主机B 主机C 主机A作为一个负载均衡机,主机B和主机C都是web应用服务器,主机A是负载均衡机,主机A会虚拟一个IP出来作为这个负载均衡的IP,假定主机A的IP 192.168.1.1 主机B的IP是192.168.10.2 主机C的IP 192。168.10.3 这个负载均衡虚拟IP的192.168.1.10 就是访问这web服务器的IP地址 当外部来访问web站点的时候,主机A(负载均衡机)会把这个虚拟IP通过作为NAT地址转换,分发主机A和主机B,采用一种算法,通常一般采用轮询的方式,当外部网络来访问时候,主机A(负载均衡机)首先任意分开给主机A ,有主机A把页面访问给来至外部网络的访问,当有下一个来外部网络的访问,主机A(负载均衡机)在分发给主机B,按照这样的机制,一次分发给主机A,一次分发给主机B。





LVS有三种负载均衡的模式,分别是VS/NAT(nat模式) VS/DR(路由模式) VS/TUN(隧道模式)
   




VS/NAT模式介绍
这种模式当来访问这个网络的时候,负载均衡机会会通过NAT的转换分别分发给应用服务器A或应用服务器B。应用服务器返回给来至外部的访问,要在次通过负载机访问给来至外部的访问。这种模式通常是应用服务器是IP是私有IP地址,需要通过NAT地址来转换成公网IP地址。











VS/DR模式介绍
   路由模式,负载均衡机和应用服务器同属于一个IP范围,并且负载均衡虚拟的IP也属于这个IP范围,通常都是配置的公网IP地址,这种方式我们可以采用路由模式。当外部网络来访问时候,首先肯定是通过负载均衡机来分发给这个集合的应用服务器,但是应服务器,返回给外部网络的不在通过这个负载均衡机出去,而且自己通过路由返回给外部网络,自己去查路由,去返回。



vs/tun模式介绍
隧道模式,负载均衡机和集群集合的服务器和负载均衡虚拟出来IP不属于同一个网段,分别分布在不同网段,这时候我需要隧道模式,好比这个负载均衡机和这个集群集合的服务器建议一条用来专门用来负载均衡隧道,隧道模式首先外部网络访问时候,经负载均衡机来分发到应用服务器,应用服务器也是和路由模式一样的方式,自己路由出去返回结果给来至外部的访问,也不经在过负载均衡机出返回给来至外部网络的访问。


VS/NAT、VS/DR、 VS/TUN、这三种模式区别
VS/NAT这种模式返回给来至外部的访问的数据时候,需要在经过负载均衡的那台服务器,这种模式给负载均衡服务器带来负重,如果集群集合的服务器效果,访问量过大,这样负载均衡服务器这样有所谓负担,而另外2种模式不在通过负载均衡机,自己本身通过路由出去,这样也给负载均衡服务器,降低了负担。



配置篇:
lvs 需要2.4.24 以后版本的内核源代码才能支持 下载地址:http://www.kerner.org 不过在通常版本都支支持lvs 功能
需要下载ipvsadm用户工具 下载地址http://www.linuxvirtualserver.org/software/ipvs.html
这里使用的是ipvsadm-1.24.的版本


安装ipvsadm
tar -zxvf ipvsadm-1.24.tar.gz
cd ipvsadm-1.24
make all
make install

ln –s   /usr/src/kernels/2.6.18-194.el5-xen-i686 /usr/src/linux


VS/NAT模式配置




200.200.200.1这台机


192.168.10.2 这台机网卡配置:
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.10.2
NETNASK=255.255.255.0
GATEWAY=192.168.10.1


192.168.10.3 这台机网卡配置:
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.10.3
NETNASK=255.255.255.0
GATEWAY=192.168.10.1


回到 200.200.200.1这台机




首先
echo "1" >/proc/sys/net/ipv4/ip_forward 开启路由功能
ipvsadm –C 清楚配置信息

设置这个IP为负载均衡的IP    -s rr为轮询的方式负载均衡


添加这个负载集群IP的成员    -m伪装(NAT转换) -w权重值



ipvsadm –ln 查询集群情况




测试效果










  




代表访问的负载均衡次数



VS/DR 配置模式




200.200.200.101这台机网卡配置
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=200.200.200.101
NETNASK=255.255.255.0
GATEWAY=200.200.200.254


200.200.200.102这台机网卡配置
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=200.200.200.102
NETNASK=255.255.255.0
GATEWAY=200.200.200.254

200.200.200.103这台机网卡配置
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=200.200.200.103
NETNASK=255.255.255.0
GATEWAY=200.200.200.254


200.200.200.101 这台机
vi /ect/sysctl.conf
添加或修改如下配置
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.eth0.send_redirects = 1



执行sysctl  –p 命令 立即生效

设置这个IP为负载均衡的IP    -s rr为轮询的方式负载均衡
# ipvsadm -A -t 200.200.200.200:80 -s rr
添加这个负载集群IP的成员     -g 路由模式 -w权重值


# ipvsadm -a -t 200.200.200.200:80 -r 200.200.200.102 -g -w 1
# ipvsadm -a -t 200.200.200.200:80 -r 200.200.200.103 -g -w 1

配置负载均衡虚拟IP地址
# ifconfig eth0:0 200.200.200.200 broadcast 200.200.200.200 netmask 255.255.255.255 up   
配置主机路由
# route add -host 200.200.200.200 dev eth0:0

200.200.200.102 和 200.200.200.103这两台机配置(配置相同)


vi /ect/sysctl.conf
添加或修改如下配置
net.ipv4.ip_forward = 0
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

执行sysctl  –p 命令 立即生效

配置负载均衡虚拟IP地址
# ifconfig lo:0 200.200.200.200 broadcast 200.200.200.200 netmask 255.255.255.255 up
配置主机路由
# route add -host 200.200.200.200 dev lo:0




测试效果
























VS/TUN模式配置





192.168.10.2 这台机网卡配置:
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.10.2
NETNASK=255.255.255.0
GATEWAY=192.168.10.1

200.200.200.101这台机网卡配置
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=200.200.200.101
NETNASK=255.255.255.0
GATEWAY=200.200.200.254

200.200.200.102这台机网卡配置
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=200.200.200.102
NETNASK=255.255.255.0
GATEWAY=200.200.200.254



200.200.200.101这台机
vi /ect/sysctl.conf
添加或修改如下配置
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.eth0.send_redirects = 1

执行sysctl  –p 命令 立即生效

配置负载均衡虚拟IP地址
#ifconfig tunl0 200.200.200.200 broadcast 200.200.200.200 netmask 255.255.255.255 up

ipvsadm –C 清楚ipvsamd

设置这个IP为负载均衡的IP    -s rr为轮询的方式负载均衡
ipvsadm -A -t 200.200.200.200:80 –s  rr

添加这个负载集群IP的成员 –i 隧道模式 –w 权重值
ipvsadm –a  -t 200.200.200.200:80 –r 200.200.200.102 –i –w 1
ipvsadm –a  -t 200.200.200.200:80 –r 192.168.10.2 –i –w 1



200.200.200.102 和 200.200.200.103这两台机配置(配置相同)
vi /ect/sysctl.conf
添加或修改如下配置
net.ipv4.ip_forward = 0
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

执行sysctl  –p 命令 立即生效

配置负载均衡虚拟IP地址
#ifconfig tunl0 200.200.200.200 broadcast 200.200.200.200 netmask 255.255.255.255 up


测试效果












运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-658649-1-1.html 上篇帖子: LVS TUN 模式配置 下篇帖子: 集群及LVS简介
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表