linux覆盤:keepalived+lvs實現高可用負載均衡

完整的架構須要兩臺服務器(角色爲dir),分別安裝Keepalived工具,目的是實現高可用,但Keepalived自己也有負載均衡功能,因此本次使用能夠只安裝一臺Keepalived。html

Keepalived內置了ipvsadm的功能,因此不須要安裝ipvsadm包,也不用編寫和執行lvs_dr腳本。算法

三臺機器:vim

這裏並無兩臺keepalived來搞高可用,lvs與keepalived可內置lvs功能:
IP:192.168.8.133;安裝Keepalived瀏覽器

機器1:
IP:192.168.8.134bash

機器2:
IP:192.168.8.135服務器

VIP:192.168.8.100架構

開始搭建配置文件

yum install keepalived

自定義Keepalived配置文件:
vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
    #備用服務器上爲 BACKUP
    state MASTER
    #綁定vip的網卡爲ens33,你的網卡和阿銘的可能不同,這裏須要你改一下
    interface ens33
    virtual_router_id 51
    #備用服務器上爲90
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        192.168.8.100
    }
}
virtual_server 192.168.8.100 80 {
    #(每隔10秒查詢realserver狀態)
    delay_loop 10
    #(lvs 算法) 
    lb_algo wlc 
    #算法(DR模式)
    lb_kind DR
    #(同一IP的鏈接60秒內被分配到同一臺realserver)
    persistence_timeout 0 
    #(用TCP協議檢查realserver狀態)
    protocol TCP 
    real_server 192.168.8.134 80 {
        #(權重) 
        weight 100
        TCP_CHECK {
        #(10秒無響應超時)
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }   
    real_server 192.168.8.135 80 {
        weight 100
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
     }  
}    

啓動Keepalived服務:
[root@director ~]# systemctl start keepalived

查看網卡信息:
ip add
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:be:0e:17 brd ff:ff:ff:ff:ff:ff
    inet 192.168.8.133/24 brd 192.168.8.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.8.100/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::592f:39cc:1b50:1d07/64 scope link 
       valid_lft forever preferred_lft forever
#虛擬IP(VIP)在ens33網卡上

查看ipvsadm規則:
[root@director ~]# 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.8.100:80 wlc
  -> 192.168.8.134:80             Route   100    0          0         
  -> 192.168.8.135:80             Route   100    0          0

兩臺機器134和135上執行此腳本

配置路由轉發腳本:
vim /usr/local/sbin/lvs_rs.sh
#/bin/bash
vip=192.168.8.100
#把vip綁定在lo上,是爲了實現rs直接把結果返回給客戶端
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

配置完成,在瀏覽器訪問VIP:192.168.8.100,刷新網頁,訪問結果由real一、real2交替回覆負載均衡

Keepalived+LVS做用

  • Keepalived搭建高可用保證LVS中機器宕機後服務器不癱瘓
  • 若是隻使用LVS,那麼當LVS架構中某個機器,仍然會繼續向其發送請求,添加Keepalived後會自動將宕機的機器清除出rs列表。
相關文章
相關標籤/搜索