(服务运维)负载均衡LVS实战:轮询算法和tunnel模式

Posted 林炜玮_51CTO

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(服务运维)负载均衡LVS实战:轮询算法和tunnel模式相关的知识,希望对你有一定的参考价值。


前言

LVS理论和用户空间工具ipvsadm说明传送门  ​​https://blog.51cto.com/linweiwei/4917991​

NAT模式实战配置 ​​https://blog.51cto.com/linweiwei/4958609​

DR模式实战配置 ​​https://blog.51cto.com/linweiwei/4961540​

由于LVS不具备健康性检查,即一台服务挂了,仍然根据对应算法发送请求。因此常和keepalive连用

tunnel模式配置(跨广播域)

实验环境

参与设备有五台

  • client 配置IP网关指向192.168.1.200
  • router 配置IP开启转发(用centos替代)
  • LVS配置IP和回环口VIP、网关指向172.16.1.200
  • RS1配置IP和回环口VIP、网关指向172.16.1.200
  • RS2配置IP和回环口VIP、网关指向172.16.1.200
  • 修改RS1和RS的网关为路由设备的172.16.10.200(生产环境按正常网关做执行,这里是实验环境)

(服务运维)负载均衡LVS实战:轮询算法和tunnel模式_隧道模式


Client配置

(服务运维)负载均衡LVS实战:轮询算法和tunnel模式_负载均衡_02

route配置

(服务运维)负载均衡LVS实战:轮询算法和tunnel模式_跨网段传输_03

echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf

sysctl -p    #开启IP转发

RS1配置

(服务运维)负载均衡LVS实战:轮询算法和tunnel模式_负载均衡_04

网络配置和简单web搭建

yum -y install httpd mariadb-server

systemctl enable --now httpd mariadb.service 

hostnamectl set-hostname rs1.linweiwei.com

hostname -I > /var/www/html/index.html

ifconfig tunl0 172.16.10.100 netmask 255.255.255.255 up

lsmod |grep ipip

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

echo "0" > /proc/sys/net/ipv4/conf/tunl0/rp_filter   #0关闭数据原路返回,1还需要经过LVS

echo "0" > /proc/sys/net/ipv4/conf/all/rp_filter #0关闭数据原路返回,1还需要经过LVS

ifconfig lo:1 172.16.10.100/32 

ip a  #避免VIP地址相同的问题就是关闭免费ARP


RS2配置

(服务运维)负载均衡LVS实战:轮询算法和tunnel模式_跨网段传输_05

网络配置和简单web搭建

yum -y install httpd mariadb-server

systemctl enable --now httpd mariadb.service 

hostnamectl set-hostname rs2.linweiwei.com

hostname -I > /var/www/html/index.html

ifconfig tunl0 172.16.10.100 netmask 255.255.255.255 up

lsmod |grep ipip

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

echo "0" > /proc/sys/net/ipv4/conf/tunl0/rp_filter

echo "0" > /proc/sys/net/ipv4/conf/all/rp_filter

ifconfig lo:1 172.16.10.100/32 

ip a  #避免VIP地址相同的问题就是关闭免费ARP

LVS配置

(服务运维)负载均衡LVS实战:轮询算法和tunnel模式_负载均衡_06

ifconfig tunl0 172.16.10.100 netmask 255.255.255.255 up

lsmod |grep ipip

yum install ipvsadm -y  

systemctl enable --now ipvsadm.service #开机加载服务

systemctl status ipvsadm.service #查看服务状态

#实现LVS 规则,添加集群服务真实提供方,端口一致的话后者可以省略端口

ipvsadm -A -t 172.16.10.100:80 -s rr

ipvsadm -a -t 172.16.10.100:80 -r 172.16.10.18 -i

ipvsadm -a -t 172.16.10.100:80 -r 172.16.10.19 -i

ipvsadm -Sn > /etc/sysconfig/ipvsadm  #保存配置

查看效果,完美收尾~

while :;do curl 172.16.10.100;sleep 0.3;done

(服务运维)负载均衡LVS实战:轮询算法和tunnel模式_LVS_07

以上是关于(服务运维)负载均衡LVS实战:轮询算法和tunnel模式的主要内容,如果未能解决你的问题,请参考以下文章

(服务运维)负载均衡LVS实战:NAT和DR模式

LVS和Nginx负载均衡调度算法

LVS负载均衡地址转换使用轮询算法实验(结尾代码随记)

企业运维之 Lvs 负载均衡和高可用

企业运维之 Lvs 负载均衡和高可用

Lvs负载均衡群集