17 LVS 4层负载均衡+ keepalive




1

sudo apt-get install ipvsadm

2 在lvs机器中

  • 1 写lvs_dr.sh添加虚拟网卡
    sudo vim /usr/local/bin/lvs_dr.sh
#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/sbin/ipvsadm
vip=192.168.220.130
rs1=192.168.220.135
rs2=192.168.220.139
case $1 in
start)
    echo "Start LVS"
    ifconfig eth0:0 $vip broadcast $vip netmask 255.255.255.255 up #添加虚拟网卡
    route add -host $vip dev eth0:0          #添加到虚拟主机的路由
    $ipv -A -t $vip:80 -s lc                 #添加虚拟服务器,-s:调度算法
    $ipv -a -t $vip:80 -r $rs1:80 -g -w 1    #添加真实服务器,-g:DR,-w:权重
    $ipv -a -t $vip:80 -r $rs2:80 -g -w 1
;;
stop)
    echo "Stop LVS"
    route del -host $vip dev eth0:0  #删除虚拟网卡
    ifconfig eth0:0 down             #删除路由
    $ipv -C                          #删除虚拟主机
;;
*)
echo "Usage:$0 {start|stop}"
exit 1
esac

启动
./lvs_dr.sh start

  • 2 编写lvs_rs.sh
    sudo vim /usr/local/bin/lvs_dr.sh
#!/bin/bash
vip=192.168.220.130
case $1 in
start)
    echo "Start LVS"
    ifconfig eth0:0 $vip broadcast $vip netmask 255.255.255.255 up
    route add -host $vip dev eth0: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
;;
stop)
    echo "Stop LVS"
    route del -host $vip dev eth0:0
    /sbin/ifconfig eth0:0 down
    echo "0" > /proc/sys/net/ipv4/conf/lo/arp_ignore
    echo "0" > /proc/sys/net/ipv4/conf/lo/arp_announce
    echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore
    echo "0" > /proc/sys/net/ipv4/conf/all/arp_announce
    sysctl -p > /dev/null 2>&1
;;
*)
echo "Usage:$0 {start|stop}"
exit 1
esac

启动
./lvs_dr.sh start

3 在real server中开放路由

同理添加
./lvs_rs.sh start
启动
./lvs_dr.sh start

4 查看

  • 1 执行ipvsadm
  • 2 执行ipvsadm -ln

5 关闭防火墙

iptables
iptables -F

6 测试效果

7 lvs + keepalive

8 在master和backup主机上安装Keepalived

tar zxcf keepalived-2.2.2.tar.gz
cd keepalived-2.2.2
# yum install ipvsadm openssl-devel popt-devel  libnl libnl-devel  libnfnetlink-devel -y
sudo apt-get install ipvsadm libssl-dev libpopt-dev  libnl-3-dev libnl-genl-3-dev  libnfnetlink-dev
sudo ./configure --prefix=/usr/local/keepalived
sudo make
sudo make install 

  • 报错
    说找不到ssl,
  • 解决:
    sudo apt-get install libssl-dev
    以及源码安装了openssl
  • 报错说没有Popt库,
  • 解决: 按照以往的做法,缺什么装什么,可以解决99%的bug
    sudo apt-get install libpopt-dev

sudo make

sudo make install

posted @ 2021-07-10 22:01  weidalin  阅读(56)  评论(0)    收藏  举报