大數據學習系列(四)負載均衡--keepalived配置及入門使用

一、概述

keepalived,是一種更強大的lvs負載均衡配置。可以解決lvs服務器發生故障而產生的問題,還可以驗證RS服務器是否正常,如果不正常就不會在往該RS服務器轉發請求。

配置多臺LVS負載均衡服務器,如果一臺發生故障,自動啓用另一臺繼續執行負載均衡操作,兩臺LVS服務器是主從關係。

二、配置

1.環境準備,四臺虛擬機,兩臺作LVS服務器,兩臺RS服務器

LVS服務器-1(DS) --eleven-2  DIP:192.168.40.33 VIP:192.168.40.100(在keepalived配置文件中配置)
LVS服務器-2(DS) --eleven-3  DIP:192.168.40.34 VIP:192.168.40.100(在keepalived配置文件中配置)
真實後端服務器(RS)--eleven-4 RIP:192.168.40.35 VIP:192.168.40.100
真實後端服務器(RS)--eleven-5 RIP:192.168.40.36

VIP:192.168.40.100

2.兩臺RS服務器配置響應級別和通告級別

echo 1  > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 2  > /proc/sys/net/ipv4/conf/eth0/arp_announce
echo 1  > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2  > /proc/sys/net/ipv4/conf/all/arp_announce

3.兩臺RS服務器在迴環接口lo上新開闢個接口配置VIP

ifconfig  lo:7  192.168.40.100  netmask 255.255.255.255

4.兩臺RS服務器安裝httpd,供待會測試

#安裝httpd
yum  install httpd -y

#創建index.html文件供測試
vi /var/www/html/index.html

#輸入內容
    #eleven-4
        from eleven-4
    #eleven-5
        from eleven-5

5.兩臺LVS服務器安裝keepalived,可以不用再單獨安裝ipvsadm,但是爲了方便我們查看相關信息,也把ipvsadm安裝上。

##安裝keepalived
yum install keepalived -y

##安裝ipvsadm 
yum install ipvsadm -y

6.keepalived.conf配置文件講解,keepalived的配置文件在/etc/keepalived/keepalived.conf

##keepalived.conf配置文件主要有三塊配置區域global_defs ,vrrp_instance ,virtual_server 


! Configuration File for keepalived
###主要是配置故障發生時的通知對象以及機器標誌
global_defs {
   notification_email {##故障發生時給誰發郵件通知
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected] ##通知郵件從哪個地址發出
   smtp_server 192.168.200.1  ##通知郵件的smtp地址
   smtp_connect_timeout 30  ##連接smtp服務器的超時時間
   router_id LVS_DEVEL  ##標誌本節點的字符串,通常爲ip地址,故障發生時郵件會通知到
}

##用來配置是主機還是從機,權重值,LVS服務器的健康驗證,當檢查失敗時會將vrrp_instance的priority減少相應的值
vrrp_instance VI_1 {
    state MASTER   ##配置是主機還是從機,MASTER爲工作狀態,BACKUP是備用狀態
    interface eth0  ##配置的vip所要掛在的網卡接口,默認爲eth0
    virtual_router_id 51  #3虛擬路由標誌。同組的virtual_router_id應該保持一致。它將決定多播的MAC地址
    priority 100  ##權重
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {  ##配置VIP,如何使用可查看幫助文檔,命令:man keepalived.conf
        192.168.200.16
        192.168.200.17
        192.168.200.18
        192.168.200.100
    }
}

###根據上面配置的VIP執行對應的虛擬服務。
virtual_server 192.168.200.100 443 {  ##虛擬IP,來源與上面的虛擬IP地址,後面加空格加端口號
    delay_loop 6  ###健康檢查間隔,單位爲秒,默認6s進行一次健康檢查
    lb_algo rr   ###配置負載規則,默認爲rr輪詢
    lb_kind NAT  ###負載均衡轉發規則。一般包括DR,NAT,TUN 3種。
    nat_mask 255.255.255.0  
    persistence_timeout 50 ###同一個IP地址在50秒內lvs轉發給同一個後端服務器

    protocol TCP   ###轉發協議,有TCP和UDP兩種。
 
    real_server 192.168.201.100 443 {  ##真實服務器,包括IP和端口號
        weight 1  ##權重
        SSL_GET {  #通過什麼請求規則判斷RealServer的健康狀態,HTTP_GET/SSL_GET:相當於HTTPS
            url {
              path /
              digest ff20ad2481f97b1754ef3e12ecd3a9cc
            }
            url {
              path /mrtg/
              digest 9b3a0c85a887a256d6939da88aabd8cd
            }
            connect_timeout 3  ##連接超時時間
            nb_get_retry 3  ##重連次數
            delay_before_retry 3  ##重連時間間隔
        }
    }
}

7.實操,兩臺LVS服務器是主從關係,先配置主機的keepalived.conf,再配置從機的,將從機的priority 配的低於主機的。

! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state MASTER  #從機配置BACKUP
    interface eth0
    virtual_router_id 51
    priority 100  #權重,用於區分主從關係,高的爲主機,低的爲從機,會根據全權重來區分各LVS服務器的優先級,從機這裏配置50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
      192.168.40.100/24 dev eth0 label eth0:3
    }
}

virtual_server 192.168.40.100 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    persistence_timeout 50
    protocol TCP

    real_server 192.168.40.35 80 {
        weight 1
        HTTP_GET {
            url {
              path /
              status_code  200
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.40.36 80 {
        weight 1
        HTTP_GET {
            url {
              path /
              status_code  200
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

8.重啓兩臺LVS服務器的keepalived

service keepalived restart

9.查看ip,會發現自動創建了VIP,輸入ipvsadm -lm 查看主機真是效果,此時從機不會有效果,當主機發生故障後,從機會自動變成這樣的效果。

10.測試,瀏覽器請求,192.168.40.100:80

 

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