先了解常识,负载均衡集群典型的开源软件:LVS,haproxy,nginx.
高可用性集群的软件:keepalived,heartbeat.
配置准备:
1.三台服务器或者虚拟机(我用的centos7)
Server1:用作LVS负载均衡器,即(LB)
IP:192..168.202.101
Server2:作为RS
IP:192.168.202.103
Server3:作为RS
IP:192.168.202.104
2.下载LVS(软件包名字为ipvsadm)
大家可以根据自己的内核版本,从LVS官网下载,或者直接YUM直接安装(我采取的YUM)
内核版本:3.10.0-327.el7.x86_64
软件版本:ipvsadm-1.27-7.el7.x86_64
LB配置:
1.首先,启动ipvsadm。 ———————————————————————————————————————————————————————— 2.执行lsmod | grep ip_vs ##ip_vs是LVS在内核中的一个模块 出现如下样式则代表启动成功 ip_vs_rr 12600 1 ip_vs 140944 3 ip_vs_rr nf_conntrack 105745 6 ip_vs,nf_nat,nf_nat_ipv4,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_ipv4 libcrc32c 12644 2 xfs,ip_vs ———————————————————————————————————————————————————————— 3.确定启动成功后,根据原理,需要在网卡上添加VIP ifconfig eno16777736:0 192.168.202.29 up 添加后查看: 2: eno16777736:mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:fe:6e:2e brd ff:ff:ff:ff:ff:ff inet 192.168.202.101/24 brd 192.168.202.255 scope global eno16777736 valid_lft forever preferred_lft forever inet 192.168.202.29/24 brd 192.168.202.255 scope global secondary eno16777736:0 ##此IP为添加的虚拟IP valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fefe:6e2e/64 scope link valid_lft forever preferred_lft forever ———————————————————————————————————————————————————————— 4.执行命令添加VIP的网关 ##经本人测试,不添加此处的网关也可以实验成功。 route add -host 192.168.202.29 eno16777736 查看:route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 192.168.202.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736 192.168.202.29 0.0.0.0 255.255.255.255 UH 0 0 0 eno16777736 ##所添加的网关 ———————————————————————————————————————————————————————— 5.执行ipvsadm -A -t 192.168.202.29:80 -s rr 将VIP与LVS绑定 ipvsadm -Ln查看: IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.202.29:80 rr ##绑定成功 ##-A表示添加绑定的VIP,-t指定VIP,-s指定算法。 ———————————————————————————————————————————————————————— 6.执行 ipvsadm -a -t 192.168.202.29:80 -r 192.168.202.103:80 -g ipvsadm -a -t 192.168.202.29:80 -r 192.168.202.104:80 -g 添加RS。 ##-a表示添加,-t指定添加的RS所对应的VIP地址,-r表示指定RS的IP,-g表示DR模式,-m表示NAT模式,-i表示TUN模式。具体可以--help查看。 ipvsadm -Ln 添加后检查: IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.202.29:80 rr -> 192.168.202.103:80 Route 1 0 0 -> 192.168.202.104:80 Route 1 0 0 ##添加成功
RS配置:
根据原理,RS上需要添加VIP,并且需要抑制ARP,以防止从原本从客户端发送到LB的数据请求,与RS的VIP发生冲突。 1.添加VIP,注意是添加到lo网卡。 ifconfig lo:29 192.168.202.29/32 up ————————————————————————————————————————————————————— 2.添加网关 ##不执行这一步也执行成功 route add -host 192.168.202.29 eno16777736 ————————————————————————————————————————————————————— 3.抑制ARP,防止VIP冲突。 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
之后,通过网页访问VIP:192.168.202.29即可测试。
DR模式不需要开启内核转发功能,与NAT不同