lvs+keepalived實現高可用的web負載均衡

拓撲圖


安裝keepalived

[root@node1 ~]# yum install -y keepalived

修改keepalived MASTER    配置文件

[root@node1 ~]# vim /etc/keepalived/keepalived.conf 
! Configuration File for keepalived
 
global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   router_id LVS_DEVEL
}
 
vrrp_instance VI_1 {
    state MASTER  ##定義主節點
    interface eth0 
    virtual_router_id 51  ##識別虛擬路由的id,相同的id則會被識別爲1組
    priority 100  ##優先級,優先級高的會選舉爲主節點
    advert_int 1
    authentication {
        auth_type PASS   ##認證方式爲PASS 還有AH
        auth_pass 1111
    }
    virtual_ipaddress {
        172.16.30.100   ##vip即虛擬IP
        }
}
 
virtual_server 172.16.30.100 80 {
    delay_loop 6
    lb_algo rr   ##調度模式rr,輪詢
    lb_kind DR   ##負載均衡模型爲DR  另外還有NAT
    persistence_timeout 0   ##超時時長,在每個節點停留的時間,此處設爲0,默認爲50s,則會在單一節點停留50秒在去另一節點
    protocol TCP
 
    real_server 172.16.30.10 80 {      ##後端rs主機
        weight 1
        TCP_CHECK {
                connect_port 80   ##連接端口
            connect_timeout 3  ##連接超時時間
            nb_get_retry 3   ##重試次數
            delay_before_retry 3   ##每次重試之間的間隔時間
        }
 real_server 172.16.30.11 80 {
        weight 1
        TCP_CHECK {
                connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}


將配置文件複製到另一節點

[root@node1 ~]# scp /etc/keepalived/keepalived.conf
172.16.30.2:/etc/keepalived/keepalived.conf

修改  state   priority 如下圖


啓動keepalived測試vip

MASTER ip,停掉MASTER keepalived服務

BACKUP ip

VIP成功轉移

配置web服務器

安裝httpd

[root@node10 ~]# yum install -y httpd

提供網頁文件

[root@node10 ~]# vim /var/www/html/index.html
<h1>page from node10</h1>


node11同樣的操作

配置rs模型

[root@node10 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore    ##關閉arp轉發
[root@node10 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@node10 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
[root@node10 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce 
[root@node10 ~]# ifconfig lo:0 172.16.30.100 netmask 255.255.255.255 broadcast 172.16.30.100 up ##在lo:0口設置VIP 並只對自己廣播
[root@node10 ~]# ifconfig 
eth0      Link encap:Ethernet  HWaddr 08:00:27:02:A7:9A  
          inet addr:172.16.30.10  Bcast:172.16.255.255  Mask:255.255.0.0
          inet6 addr: fe80::a00:27ff:fe02:a79a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5319 errors:0 dropped:0 overruns:0 frame:0
          TX packets:685 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:485435 (474.0 KiB)  TX bytes:55938 (54.6 KiB)
 
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
 
lo:0      Link encap:Local Loopback  
          inet addr:172.16.30.100  Mask:255.255.255.255
          UP LOOPBACK RUNNING  MTU:65536  Metric:1


node11同樣操作

分別啓動httpd服務

訪問測試

現在將node1上的keepalived服務停掉

再次訪問還是同樣的結果,我們再來看一下node2上的ip,vip已經轉移過來了

這樣便實現了lvs+keepalived的高可用負載均衡,lvs負責web服務器的負載均衡,而keepalived可以保證lvs不會發生單點故障。


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