企業實戰:逐步實現企業各種情景下的需求
企業情景三:
網站的訪問量越來越大,網站訪問量已經從原來的1000QPS,變爲3000QPS,目前業務已經通過集羣LVS架構可做到隨時拓展,後端節點已經通過集羣技術保障了可用性,但對於前端負載均衡器來說,是個比較大的安全隱患,因爲當前端負載均衡器出現故障時,整個集羣就處於癱瘓狀態,因此,負載均衡器的可用性也顯得至關重要,那麼怎麼來解決負載均衡器的可用性問題呢?
項目三:主從實現基於Keepalived高可用集羣網站架構
實現keepalived企業級高可用基於LVS-DR模式的應用實戰:
一、環境準備:
兩臺centos系統做DR、一主一從,兩臺實現過基於LNMP的電子商務網站
二、安裝步驟:
1、兩臺服務器都使用yum 方式安裝keepalived服務
2、iptables -F && setenforing 清空防火牆策略,關閉selinux
實現前分配各個角色
機器名稱 | 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(橋接) |
三、配置基於DR模式的LVS負載均衡集羣:
主(master):
1、修改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
}
}
2、修改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):
1、修改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
}
}
2、修改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" ```
腳本示範:
(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的變換以及權重值)
企業實戰系列,逐步瞭解,逐步提升,不足之處煩請各位大佬指出(抱拳)