天天看點

如何部署LVS-DR + keepalived ?群集負載均衡一、keepalived實作原理二、LVS + keepalived高可用叢集部署

一、keepalived實作原理

在實際的企業應用中,單台伺服器承擔應用存在單點故障的危險。

1、keepalived工具介紹

  • 專為LVS和HA設計的一款健康檢查工具

    支援節點健康狀态檢查(health checking)

    支援故障自動切換(failover)

    官網:http://www.keepalived.org/

2、keepalived實作原理剖析

  • keepalive采用VRRP熱備份協定

    實作Linux伺服器的多機熱備功能

  • VRRP(虛拟路由備援協定):是針對路由器的一種備份解決方案

    由多台路由器組成一個熱備組,通過共用的虛拟IP位址對外提供服務

    每一個熱備組内同時隻有一台主路由器提供服務,其他路由器處理備援狀态

    若目前線上的路由器失效,則其他路由器會根據設定的優先級自動接替虛拟IP位址,繼續提供服務

3、keepalived配置檔案

keepalived可實作多機熱備,每一個熱備組可有多台伺服器

雙機熱備的故障切換是由虛拟IP位址的飄逸來實作的,适用于各種應用伺服器

  • keepalived安裝與啟動:在LVS群集環境中,還會用到ipvsadm工具

    yum安裝即可

    配置檔案在/etc/keepalived下

配置keepalived master伺服器

常用配置選項:

router_id HA_TEST_R1 :本伺服器的名稱

vrrp_instance VI_1 :定義VRRP熱備執行個體

state MASTER :熱備狀态,MASTER表示主伺服器

interface ens33 :承載VIP位址的實體接口

virtual_router_id 1 :虛拟路由器的ID号,每一個熱備組保持一緻

priority 100 :優先級,數值越大優先級越高

advert_int 1:通告間隔秒數(心跳頻率)

auth_type PASS :認證類型

auth_pass 123456 :密碼字串

virtual_ipaddress {vip} :指定漂移位址,可以有多個

配置keepalived slave伺服器

與master伺服器的配置有三個選項不同:

router_id :設為自有的名稱

state :設為BACKUP

priority :值低于master

其他配置相同

二、LVS + keepalived高可用叢集部署

1、LVS-DR部署

前面實驗已經部署了https://blog.csdn.net/weixin_47152389/article/details/108352111

2、keepalived部署

實驗拓撲:

如何部署LVS-DR + keepalived ?群集負載均衡一、keepalived實作原理二、LVS + keepalived高可用叢集部署

部署步驟:

基于LVS_DR上面,添加keepalived的配置

主伺服器配置:

[[email protected] init.d]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
 ......
   smtp_server 127.0.0.1    ##指向本地
   smtp_connect_timeout 30
   router_id LVS_01   ##指向名稱,備份伺服器id不同
 ......
}
vrrp_instance VI_1 {
    state MASTER     ##備份伺服器為BACKUP
    interface ens33   ##此處修改為ens33實體接口
    virtual_router_id 10   ##組号,主備要相同
   ......
    authentication {
	auth_type PASS
               auth_pass 1111
               priority 100      ##優先級,競選主備伺服器 
    }
    virtual_ipaddress {
        192.168.200.100       ##虛拟IP位址
    }
}
virtual_server 192.168.200.100 80 {   ##修改
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP

    real_server 192.168.200.30 80 {   ##修改
        weight 1
        TCP_CHECK {
            connect_port 80     ##端口都為80
            connect_timeout 3
            nb_get_retry 3
                        delay_before_retry 3
        }
    }
    real_server 192.168.200.40 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}
[[email protected] init.d]# systemctl start keepalived
           

備用伺服器配置:

[[email protected] init.d]# vim /etc/keepalived/keepalived.conf
......
vrrp_instance VI_1 {
    state MASTER     ##備份伺服器為BACKUP
    interface ens33   ##此處修改為ens33實體接口
    virtual_router_id 10   ##組号,主備要相同
   ......
    authentication {
	auth_type PASS
               auth_pass 1111
               priority 92      ##優先級比主伺服器低
    }
    virtual_ipaddress {
        192.168.200.100       ##虛拟IP位址
    }
}
......
[[email protected] init.d]# systemctl start keepalived
           

測試:

如何部署LVS-DR + keepalived ?群集負載均衡一、keepalived實作原理二、LVS + keepalived高可用叢集部署

輪詢通路已經驗證過了,在DR實驗中

接下來,把主伺服器的虛拟IP給關閉了,再來檢視能不能通路。

如何部署LVS-DR + keepalived ?群集負載均衡一、keepalived實作原理二、LVS + keepalived高可用叢集部署
如何部署LVS-DR + keepalived ?群集負載均衡一、keepalived實作原理二、LVS + keepalived高可用叢集部署

還是可以通路,此時工作的備用伺服器

如何部署LVS-DR + keepalived ?群集負載均衡一、keepalived實作原理二、LVS + keepalived高可用叢集部署
如何部署LVS-DR + keepalived ?群集負載均衡一、keepalived實作原理二、LVS + keepalived高可用叢集部署

繼續閱讀