CentOS7 搭建LVS+keepalived负载均衡


1、实验环境

4台节点
Keepalived1 + lvs1(Director1):192.168.31.4
Keepalived2 + lvs2(Director2):192.168.31.3
Real server1:192.168.31.2
Real server2:192.168.31.7
IP: 192.168.31.38

 

2、安装

Lvs + keepalived的2个节点安装:
yum install ipvsadm keepalived -y
Real server + nginx服务的2个节点安装:
yum install -y nginx

 

3、设置配置脚本

Real server节点2台配置脚本:
vim /opt/lvs_dr_rs.sh
#!/bin/bash

vip=192.168.31.38
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null 2>&1

复制到另外一台

scp lvs_dr-rs.sh root@192.168.31.3:/opt

执行脚本
bash /opt/lvs_dr_rs.sh
查看
ip a

 

 

keepalived节点配置(2节点):

主节点( MASTER )配置文件

vim /etc/keepalived/keepalived.conf

global_defs{
router_id LVS_DEVEL
}
vrrp_instance
VI_1 { state MASTER
interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.31.38 } } virtual_server 192.168.31.38 80 { delay_loop 6 lb_algo rr lb_kind DR persistence_timeout 0 protocol TCP
real_server
192.168.31.2 80 { weight 1 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 80 } }
real_server
192.168.31.7 80 { weight 1 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } }

从节点( BACKUP )配置文件

拷贝主节点的配置文件keepalived.conf:

scp keepalived.conf  root@192.168.31.3:/etc/keepalived

然后修改如下内容:

state MASTER -> state BACKUP
priority 100 -> priority 90

 keepalived的2个节点执行如下命令,开启转发功能:

# echo 1 > /proc/sys/net/ipv4/ip_forward

 

4、启动nginx

systemctl start nginx

 

5、启动keepalived

 

 先主后从分别启动keepalive

systemctl start keepalived.service

 

6、重启日志记录服务

修改vim /etc/sysconfig/keepalived日志保存路径

把KEEPALIVED_OPTIONS="-D" 修改为:KEEPALIVED_OPTIONS="-D -d -S 0"

 在vim /etc/rsyslog.conf 末尾添加

local0.*                  /var/log/keepalived.log

 重启日志服务

systemctl restart rsyslog

重启keepalived

systemctl restart keepalived.service

 

 

7、排查

  • 查看/var/log/keepalived.log日志是否启动成功??
  • ipvsadm -ln查看是否正常
  • ipvsadm -ln --stats查看是否主才有数据,备没有数据
  • curl vip,然后查看ipvsadm -lnc数据是否异常
  •  

 

 

8、删除

ifconfig lo:0 down

route del 192.168.31.38

 

LVS DR模式的特性:

1、CIP必须能够和VIP通讯,所以通常VIP是外网地址 2、DIP和RIP为同一物理网络,否则无法向RS发送ARP广播
3、RS上必须配置VIP地址,否则响应报文无法送达客户端,RS上的VIP对外界是不可见的,但RS可以接收目标地址为VIP的网络请求,并在回应数据包时将源地址设置为该VIP地址
4、RS上必须做ARP抑制,使RS不响应来自CIP的请求,相当于指定Director来响应CIP的请求
5、调度器几乎支持所有的UNIX、LINUX系统,但不支持windows,但是RS可以为windows
6、RS的网关不能指向DIP,应该指向出口网关
7、DR模式下,不支持端口映射,即Director不能更改请求报文的端口
8、DR模式效率很高,但配置麻烦,访问量不是非常大的情况下推荐使用haproxy或者nginx。标准:日访问量2000W PV以下,或者并发请求1W以下的可以考虑使用haproxy或nginx或使用LVS-NAT模式。
9、直接对外的访问业务,例如:web服务做RS节点,RS最好使用外网IP,如果不直接对外的业务,例如MySQL、存储系统RS节点,最好使用内网IP

 

 

 

参考:https://www.cnblogs.com/edisonchou/p/4281978.html

https://blog.csdn.net/Ki8Qzvka6Gz4n450m/article/details/79119665

https://blog.csdn.net/u012852986/article/details/52412174


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM