LVS + Keepalived群集
- Keepalived 雙機熱備
- LVS + Keepalived 高可用群集
- 構建 LVS + Keepalived高可用群集
- 部署網路環境
- 配置新增負載調度器(192.168.100.20)
- 配置 負載調度器(192.168.100.21)
- 配置兩臺節點服務器、NFS共享服務器 中配置將不作改變
- 真機測驗
Keepalived 雙機熱備
-
Keepalived 簡介
Keepalived 起初是專門針對 LVS 設計的一款強大的輔助工具,主要用來提供故障切換(Failover)和健康檢查(Health Checking)功能 ;它可以判斷 LVS 負載均衡調度器、節點服務器的可用性,及時隔離并替換為新的服務器,當主機恢復后將其重新加入群集, -
Keepalived 的熱備方式
1、Keepalived 采用 VRRP(Virtual Router Redundancy Protocol, 虛擬路由冗余協議)熱備份協議,以軟體的方式實作 Linux 服務器的多機熱備功能,2、VRRP 是針對路由器的一種備份解決方案——由對臺路由器組成一個熱備組,通過共用的虛擬 IP地址對外提供服務;
每個熱備組內同一時刻只有一臺主路由提供服務,其他路由器處于冗余狀態,若當前的路由器失效,則其他路由會自動接替(優先級決定接替順序)虛擬IP地址,以繼續提供服務,3、熱備組內的每臺路由器都可能成為主路由器,虛擬路由器的IP地址(VIP)可以在熱備組內的路由器之前進行轉移,所以也稱為漂移IP地址,使用 keepalived 時,漂移地址的實作不需要手動建立虛擬介面的配置,而是由 keepalived 根據組態檔自動管理,
LVS + Keepalived 高可用群集
-
Keepalived 的設計目標是構建高可用的 LVS 負載均衡群集,可以呼叫 ipvsadm 工具來創建虛擬服務器、管理服務器池,而不僅僅用作雙機熱備
-
使用 Keepalived 構建 LVS 群集更加簡便易用
-
主要優勢:對 LVS負載調度器實作熱備切換,提高可用性;對服務器池中的節點進行健康檢查,自動移除失效節點,恢復后再重新加入
-
在基于 LVS + Keepalived 實作的 LVS 群集結構中,至少包括兩臺熱備的負載調度器,三臺以上的節點服務器
-
使用 Keepalived 構建 LVS 群集時,也需要用到 ipvsadm 工具,但大部分作業會由 Keepalived 自動完成,不需要手動執行 ipvsadm (除了查看和監控群集以外)
構建 LVS + Keepalived高可用群集
本次演示將以 DR模式的 LVS 群集為基礎,增加一臺 負載調度器,使用 keepalived 來實作 主、從調度器的熱備,從而構建兼有負載均衡、高可用兩種能力的 LVS 網站群集平臺
本次演示以此為基礎:LVS負載均衡 – DR模式
部署網路環境
并不需要 eNsp 拓撲圖來實作,只需要新增一臺 負載調度器 即可,
1、一臺調度器(vm1連接方式)
更改 ip :192.168.100.21/24 網關:192.168.100.1 重啟網卡;
2、兩臺節點服務器(vm1連接方式)
更改 ip :192.168.100.22/24 網關:192.168.100.1 重啟網卡;
更改 ip :192.168.100.23/24 網關:192.168.100.1 重啟網卡;
3、一臺NFS共享存盤器(vm1連接方式)
更改 ip :192.168.100.24/24 網關:192.168.100.1 重啟網卡
4、新增一臺調度器(vm1連接方式)
更改 ip :192.168.100.20/24 網關:192.168.100.1 重啟網卡
關閉防火墻、核心防護、安裝本地 yum源
除了兩臺調度器需要更改配置外,其余的不需要再配置
配置新增負載調度器(192.168.100.20)
- 此負載調度器將作為 master 主調度器
【1】調整/proc回應引數
[root@localhost network-scripts]# vi /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@localhost network-scripts]# sysctl -p ###生效
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
【2】調整keepalived引數
[root@localhost ~]# yum -y install keepalived ipvsadm
[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak ####必須要備份一下
[root@localhost keepalived]# vi keepalived.conf ####為了防止改錯,將原內容全部洗掉,插入添加以下內容
global_defs {
router_id HA_TEST_R1
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 1
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.100.100
}
}
virtual_server 192.168.100.100 80 {
delay_loop 15
lb_algo rr
lb_kind DR
persistence 60
protocol TCP
real_server 192.168.100.22 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 4
}
}
real_server 192.168.100.23 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 4
}
}
}
[root@localhost keepalived]# systemctl start keepalived ####啟動keepalived
[root@localhost keepalived]# systemctl enable keepalived ####開機啟動keepalived
[root@localhost keepalived]# ip addr show dev ens33 ####查看主控制IP地址和漂移地址

- !!!下面內容只是上述腳本的解釋,不作輸出 ,只作參考 !!!
global_defs {
router_id HA_TEST_R1 ####本路由器(服務器)的名稱 HA_TEST_R1
}
vrrp_instance VI_1 { ####定義VRRP熱備實列
state MASTER ####熱備狀態,master表示主服務器
interface ens33 ####表示承載VIP地址的物理介面
virtual_router_id 1 ####虛擬路由器的ID號,每個熱備組保持一致
priority 100 ####優先級,優先級越大優先級越高
advert_int 1 ####通告間隔秒數(心跳頻率)
authentication { ####認證資訊,每個熱備組保持一致
auth_type PASS ####認證型別
auth_pass 123456 ####認證密碼
}
virtual_ipaddress { ####漂移地址(VIP),可以是多個
192.168.100.100
}
}
virtual_server 192.168.100.100 80 { ####虛擬服務器地址(VIP)、埠
delay_loop 15 ####健康檢查的時間間隔(秒)
lb_algo rr ####輪詢調度演算法
lb_kind DR ####直接路由(DR)群集作業模式
persistence 60 ####連接保持時間(秒),若啟用請去掉!號
protocol TCP ####應用服務采用的是TCP協議
real_server 192.168.100.22 80 { ####第一個WEB站點的地址,埠
weight 1 ####節點的權重
TCP_CHECK { ####健康檢查方式
connect_port 80 ####檢查埠目標
connect_timeout 3 ####連接超時(秒)
nb_get_retry 3 ####重試次數
delay_before_retry 4 ####重試間隔(秒)
}
}
real_server 192.168.100.23 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 4
}
}
}
配置 負載調度器(192.168.100.21)
- 此負載調度器將作為 backup 備用調度器
【1】清除負載分配策略
[root@localhost /]# ipvsadm -C ####因為 keepalived 會自動分配,不清除的可能會沖突
【2】調整keepalived引數
[root@localhost ~]# yum -y install keepalived ipvsadm
[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak
[root@localhost keepalived]# vi keepalived.conf
global_defs {
router_id HA_TEST_R2
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 1
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.100.100
}
}
virtual_server 192.168.100.100 80 {
delay_loop 15
lb_algo rr
lb_kind DR
persistence 60
protocol TCP
real_server 192.168.100.22 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 4
}
}
real_server 192.168.100.23 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 4
}
}
}
[root@localhost keepalived]# systemctl start keepalived ####啟動keepalived
[root@localhost keepalived]# systemctl enable keepalived ####開機啟動keepalived
[root@localhost keepalived]# ip addr show dev ens33 ####查看主控制IP地址和漂移地址

此時主服務器仍然在線,VIP地址實際上仍然由主服務器控制,其他服務器處于備用狀態,因此在備用服務器中將不會為 ens33 介面添加 VIP 地址
-
!!! 在 backup 備用調度器中 腳本 只要調整幾個引數值就行了,下面不作輸出,只作為參考 !!!
global_defs { router_id HA_TEST_R2 #### 本路由器(服務器)的名稱 HA_TEST_R2 } ......... ... vrrp_instance VI_1 { state BACKUP #####熱備狀態,backup 表示備用服務器 interface ens33 virtual_router_id 1 priority 99 #####優先級,數值應低于主服務器 ....... .....
配置兩臺節點服務器、NFS共享服務器 中配置將不作改變
配置請參考:LVS 負載均衡群集 ---------- DR(直連路由)模式
真機測驗
-
web 訪問測驗


-
測驗連通性
主調度器啟用時,ARP請求 MAC地址 為 主調度器的地址

主調度器禁用時,ARP請求 MAC地址 為 備用調度器的地址

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/128768.html
標籤:其他
上一篇:談談對人工智能影像處理的認識
