企業實戰(3)-主從實現基於Keepalived高可用集羣網站架構

企業實戰:逐步實現企業各類情景下的需求前端

企業情景三:
網站的訪問量愈來愈大,網站訪問量已經從原來的1000QPS,變爲3000QPS,目前業務已經經過集羣LVS架構可作到隨時拓展,後端節點已經經過集羣技術保障了可用性,但對於前端負載均衡器來講,是個比較大的安全隱患,由於當前端負載均衡器出現故障時,整個集羣就處於癱瘓狀態,所以,負載均衡器的可用性也顯得相當重要,那麼怎麼來解決負載均衡器的可用性問題呢?linux

項目三:主從實現基於Keepalived高可用集羣網站架構vim

實現keepalived企業級高可用基於LVS-DR模式的應用實戰: 後端

1、環境準備:
兩臺centos系統作DR、一主一從,兩臺實現過基於LNMP的電子商務網站centos

2、安裝步驟:
一、兩臺服務器都使用yum 方式安裝keepalived服務
二、iptables -F && setenforing 清空防火牆策略,關閉selinux安全

實現前分配各個角色bash

機器名稱 IP配置 服務角色 備註
lvs-server-master VIP:172.17.252.110 DIP:172.17.250.223 主負載均衡器 開啓路由功能 配置keepalived
lvs-server-backup VIP:172.17.252.110 DIP:172.17.251.37 從負載均衡器 開啓路由功能 配置keepalived
rs01 RIP:172.17.252.87 後端服務器 網關指向DIP(橋接)
rs02 RIP:172.17.250.45 後端服務器 網關指向DIP(橋接)

3、配置基於DR模式的LVS負載均衡集羣:服務器

主(master):
一、修改keepalived主(lvs-server-master)配置文件實現virtual_instance
vrrp_instance VI_1 {
    state MASTER  #狀態狀況
    interface eth1   #接口
    virtual_router_id 51
    priority 100   #權重
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass magedu
    }
    virtual_ipaddress {
    172.17.252.110   #VIP
    }
}
二、修改keepalived主(lvs-server-backup)配置文件實現virtual_server
virtual_server VIP 端口 {
    delay_loop 6
    ld_algo rr
    lb_kind DR
    protocol TCP
    real_server 172.17.252.87 80 {   #RIP
        weight 1
        TCP_CHECK {
            connect_timeout 3
        }
    }
    real_server 172.17.250.45 80 {   #RIP
    weight 1
    TCP_CHECK {
        connect_timeout 3
        }
}
從(back-up):
一、修改keepalived從(lvs-server-backup)配置文件實現virtual_instance
vrrp_instance VI_1 {
    state BACKUP  #狀態狀況
    interface eth1  #接口
    virtual_router_id 51
    priority 98  #權重,注意從要比主的權重小
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass grr02
        }
        virtual_ipaddress {
            172.17.252.110
            }
}
二、修改keepalived從(lvs-server-backup)配置文件實現virtual_server
virtual_server VIP 端口 {
    delay_loop 6
    ld_algo rr
    lb_kind DR  #LVS-DR模式
    protocol TCP
    real_server 172.17.252.87 80 {
        weight 1
        TCP_CHECK {
        connect_timeout 3
            }
        }
    real_server 172.17.250.45 80 {
    weight 1
    TCP_CHECK {
        connect_timeout 3
        }
}

企業應用
(1)實現keeaplived故障通知機制
在企業中,高可用服務,是保證整個系統穩定性的重要前提,確保高可用服務能正常工做和運轉,也是很是重要的工做。除了服務上線前的充分測試以外,也須要確保對高可用服務的監控機制,keepalived 自身具有監控和通知機制,可在發生主從切換、故障轉移時,經過自定義命令或者腳本,實現通知功能,從而讓管理員在第一時間得知系統運行狀態,確保整個服務的穩定性和可用性。
可在配置文件中,在instance配置中,經過keepalived 通知功能notify,可實現定製化腳本功能,以下所示:架構

notify_backup "/etc/keepalived/notify.sh backup"
notify_master "/etc/keepalived/notify.sh master"
notify_fault "/etc/keepalived/notify.sh fault" ```

腳本示範:

vim /etc/keepalived/notify.shbr/>#!/bin/bash
contact='root@localhost'
notify() {
mailsubject="$(hostname) to be $1: vip floating"
mailbody="$(date +'%F %H:%M:%S'): vrrp transition, $(hostname) changed to be $1"
echo $mailbody | mail -s "$mailsubject" $contact
}
case $1 in
master)
notify master
exit 0
;;
backup)
notify backup
exit 0
;;
fault)
notify fault
exit 0
;;
*)
echo "Usage: $(basename $0) {master|backup|fault}"
exit 1
;;
esac負載均衡

(2)實現keeaplived自定義腳本功能
在配置文件中,可實現如下配置,定義一個腳本,並在對應的實例instance中調用,以後就可經過手動創建down 文件,使得keepalived 實例減小權重,實現主從切換,經常使用於在線修改keepalived 配置文件時使用
腳本示範:

    ```vrrp_script chk_down {
    script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0 "
    interval 2 # check every 2 seconds
    weight -5
    }   ```

對應實例中調用
track_script {
chk_down
}
在配置文件中,也可實現如下配置,定義一個腳本,並在對應的實例中調用,也能夠用於檢測服務是否有異常,異常的話進行切換。
腳本示範:

vrrp_script chk_sshd {
script "killall -0 sshd" # cheaper than pidof
interval 2 # check every 2 seconds
weight -4 # default prio: -4 if KO
fall 2 # require 2 failures for KO
rise 2 # require 2 successes for OK
}

track_script {
    chk_sshd

}

主從實現完成,若想要實現主主方式,能夠理解爲互爲主從,一個server端配置爲主從,另外一server端也配置爲主從(注意IP的變換以及權重值)
企業實戰系列,逐步瞭解,逐步提高,不足之處煩請各位大佬指出(抱拳)
相關文章
相關標籤/搜索