lvs+keepalvied的實現

lvs+keepalvied的實現


系統
#cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core)


主機列表:
keepalvie1:10.1.41.62
keepalvie2:10.1.41.63
vip:10.1.41.89
realserver1:10.1.41.66
realserver2:10.1.41.67


lvs模式: DR


1.在主備keepalived服務器都安裝lvs和keepalived
ln -sv /usr/src/kernels/3.10.0-327.el7.x86_64 /usr/src/linux
tar -xf ipvsadm-1.28.tar.gz -C /usr/local
cd ipvsadm-1.28
ls
tar -xf ipvsadm-1.28.tar.gz -C /usr/local
yum install libnl* popt* -y  
make && make install
lsmod | grep ip_vs  
/sbin/ipvsadm
lsmod | grep ip_vs
cd ..




tar zxf keepalived-1.3.0.tar.gz  -C  /usr/local
cd keepalived-1.3.0
cd  /usr/local/keepalived-1.3.0/
yum install openssl-devel libnfnetlink-devel -y
./configure  --prefix=/usr/local/keepalived --sbindir=/usr/sbin --sysconfdir=/etc
make && make install
service keepalived start
systemctl enable keepalived


2.主keepalived服務器配置文件
vim /etc/keepalived/keepalived.conf 
! Configuration File for keepalived


global_defs {
   router_id lvs_62
   vrrp_mcast_group4 224.0.0.19
}


vrrp_instance VI_1 {
    state MASTER
    interface ens160
    virtual_router_id 62
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.1.41.89/24
    }
}


virtual_server 10.1.41.89 80 {
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    persistence_timeout 50
    protocol TCP
#ipvsadm -A -t 10.1.41.89:80 -s wrr -p 20
    real_server 10.1.41.66 80 {
        weight 1
        TCP_CHECK {
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
    real_server 10.1.41.67 80 {
        weight 1
        TCP_CHECK {
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
}
#ipvsadmin -a -t 10.1.41.89:80 -r 10.1.41.66 -g -w 1
#ipvsadmin -a -t 10.1.41.89:80 -r 10.1.41.67 -g -w 1


3.備keepalived服務器配置文件
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived


global_defs {
   router_id lvs_63
   vrrp_mcast_group4 224.0.0.19
}


vrrp_instance VI_1 {
    state BACKUP
    interface ens160
    virtual_router_id 62
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.1.41.89/24
    }
}


virtual_server 10.1.41.89 80 {
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    persistence_timeout 50
    protocol TCP
#ipvsadm -A -t 10.1.41.89:80 -s wrr -p 20
    real_server 10.1.41.66 80 {
        weight 1
        TCP_CHECK {
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
    real_server 10.1.41.67 80 {
        weight 1
        TCP_CHECK {
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
}
#ipvsadmin -a -t 10.1.41.89:80 -r 10.1.41.66 -g -w 1
#ipvsadmin -a -t 10.1.41.89:80 -r 10.1.41.67 -g -w 1


 
4.主從keepalived服務器配置文件都更改後重啓keepalived服務
service keepalived restart


5.我們在主keepalived查看配置完成後的結果


# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.1.41.89:80 wrr persistent 50
  -> 10.1.41.66:80                Route   1      0          0         
  -> 10.1.41.67:80                Route   1      0          0   
        
# ip addr | grep 10.1.41.89
    inet 10.1.41.89/24 scope global secondary ens160
    
    
    
6.Realserver配置
在2臺realserver(10.1.41.66;10.1.41.67)上都執行下面的命令


ifconfig ens160:0 10.1.41.89 broadcast 10.1.41.89 netmask 255.255.255.255
route add -host 10.1.41.89 dev ens160: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




ok 整個lvs+keepalvied實驗完成


用瀏覽器訪問10.1.41.89 並可以順便停任何一臺都不會影響對網站的訪問 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章