2018-4-11 16周1次课 LVS DR模式搭建keepalived + LVS
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018-4-11 16周1次课 LVS DR模式搭建keepalived + LVS相关的知识,希望对你有一定的参考价值。
18.11 LVS DR模式搭建
IPtunnel模式用到的不多,不再多赘述
1,准备工作
三台机器
分发器,也叫调度器(简写dir):192.168.65.128
rs1:192.168.65.129
rs2:192.168.65.130
vip:192.168.65.100
dir上编写脚本 vim /usr/local/sbin/lvs_dr.sh,内容如下:
[[email protected] ~]# vim /usr/local/sbin/lvs_dr.sh
#! /bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward ipv=/usr/sbin/ipvsadm vip=192.168.65.100 rs1=192.168.65.129 rs2=192.168.65.130 #注意这里的网卡名字 ifdown ens33 ifup ens33 ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up route add -host $vip dev ens33:2 $ipv -C $ipv -A -t $vip:80 -s wrr $ipv -a -t $vip:80 -r $rs1:80 -g -w 1 $ipv -a -t $vip:80 -r $rs2:80 -g -w 1 (-m是nat模式,-g是dr模式)
[[email protected] ~]# sh /usr/local/sbin/lvs_dr.sh 成功断开设备 'ens33'。 连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3)
两台rs上也编写脚本 vim /usr/local/sbin/lvs_rs.sh,内容如下:
[[email protected] ~]# vim /usr/local/sbin/lvs_rs.sh
#/bin/bash vip=192.168.65.100 #把vip绑定在lo上,是为了实现rs直接把结果返回给客户端 ifdown lo ifup lo ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up route add -host $vip lo:0 #以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端 #参考文档www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html 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
[[email protected] ~]# sh /usr/local/sbin/lvs_rs.sh [[email protected] ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.65.2 0.0.0.0 UG 100 0 0 ens33 192.168.65.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33 192.168.65.100 0.0.0.0 255.255.255.255 UH 0 0 0 lo2,测试
2,测试
访问192.168.65.100
再刷新一下
18.12 keepalived + LVS
为什么将 keepalived 加入到 lvs 中来的目的:
1,lvs 有 分发器的角色,一旦宕机,所有服务和访问都会被终止(所有入口在分发器 dir 上)
2,keepalived 有负载均衡的作用
3,lvs 并不聪明,哪怕后台有一个 rs 宕机,它依然会将请求转发过去,有 keepalived 的话,再一台rs宕机时,keepalived 不会再将请求转发过去
·keepalived内置了ipvsadm的功能,所以不需要再安装ipvsadm包,也不用编写和执行那个lvs_dir的脚本
1,准备:
三台机器分别为:
dir(安装keepalived)192.168.65.128
rs1 192.168.65.129
rs2 192.168.65.130
vip 192.168.65.100
·编辑keepalived配置文件 vim /etc/keepalived/keepalived.conf
关闭lvs的虚拟ip
启动nginx:
[[email protected] ~]# systemctl start nginx [[email protected] ~]# ps aux |grep nginx root 900 0.0 0.1 45992 1284 ? Ss 21:01 0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf nobody 903 0.0 0.3 48480 3928 ? S 21:01 0:00 nginx: worker process nobody 904 0.0 0.3 48480 3928 ? S 21:01 0:00 nginx: worker process root 1597 0.0 0.0 112680 984 pts/0 R+ 22:15 0:00 grep --color=auto nginx
[[email protected] ~]# systemctl stop keepalived [[email protected] ~]# ip addr
(vip被关闭)
[[email protected] ~]# ipvsadm -ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn [[email protected] ~]# systemctl start keepalived [[email protected] ~]# 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.65.100:80 wlc persistent 60 -> 192.168.65.129:80 Route 100 0 0 -> 192.168.65.130:80 Route 100 0 0
关闭第二台rs:keepalived自动将宕机的rs踢除
重启rs2后,可以再重新加回来:
2,配置:
配置keepalived + lvs
在两台rs上要执行lvs_rs.sh脚本
在dir上只要执行 echo 1 > /proc/sys/net/ipv4/ip_forward 即可
3,测试
访问192.168.65.100
再刷新一下
以上是关于2018-4-11 16周1次课 LVS DR模式搭建keepalived + LVS的主要内容,如果未能解决你的问题,请参考以下文章