Keepalived系列導讀
前言
在前面的章節中,我們學習了Keepalived簡介、原理、以及Keepalived 配置文件的詳細解讀;今天我們通過幾個配置實例來幫助大家掌握Keepalived的高可用性。
Keepalived單實例主備模式實戰
配置Keepalived實現單實例單IP自動漂移接管
1、準備兩臺機器
2、安裝 Keepalived軟件
yum -y install keepalived
需要在qll251和qll252兩臺服務器上同時安裝Keepalived
3、修改Keepalived配置文件
3.1 qll251爲MASTER,配置文件如下:
vim /etc/keepalived/keepalived.conf
配置文件詳細說明,參考:
這裏我們只注意一點:服務器qll251 作爲實例VI_1的master,實例ID爲
60
,實例優先級150
,浮動IP地址爲10.43.187.201
3.2 qll252爲BACKUP,配置文件如下:
vim /etc/keepalived/keepalived.conf
4、啓動Keepalived服務
systemctl start keepalived
注意:MASTER跟BACKUP節點都要啓動Keepalived服務
5、驗證虛擬IP自動漂移
由於VI_1實例中,qll251優先級高於qll252,因此qll251爲MASTER
在服務器qll251上,可以看到虛擬IP10.43.187.201
而qll252作爲Keepalive備節點,無浮動ip:
進行高可用主備服務器切換實驗:
(1)將qll251節點Keepalived服務停止,模擬MASTER宕機
(2)關閉qll251節點服務後,備節點接管綁定VIP
(3)通過日誌,查看Keepalived主備切換過程
通過日誌,發現備節點qll252已經接管綁定了
10.43.187.201
這個VIP,期間備節點發送ARP廣播,讓所有客戶端更新本地的ARP表,以便客戶端訪問
新接管VIP服務的節點。
此時備節點已接管VIP,若再次啓動主節點的Keepalived服務,主節點是否會接管回VIP?我們驗證下
(啓動主節點qll251 Keepalived服務過程省略,我們通過日誌觀察切換現象)
通過日誌得知:
由於主節點優先級高於備節點,因此主節點搶佔爲MASTER,同時備節點成爲BACKUP,並且移除VIP。
以上遍實現了單實例Keepalived服務
IP自動漂移接管
;VIP漂移至新機器,用戶的訪問請求自然就會找新機器了。
Keepalived雙實例雙主模式配置實戰
前面給出的是Keepalived單實例主備模式的高可用演示;Keepalived還支持多實例多業務雙向主備模式,即A業務在qll251上是主模式,在qll252上是備模式,而B業務在qll251上是備模式,在qll252上是主模式,下面就以雙實例爲例講解不同業務實現雙主的配置。
1、準備兩臺機器
下圖爲Keepalived雙實例雙主模式IP及VIP規劃表:
2、安裝 Keepalived軟件
yum -y install keepalived
需要在qll251和qll252兩臺服務器上同時安裝Keepalived
3、修改Keepalived配置文件
3.1 qll251配置文件修改如下:
[root@qll251 ~]# vim /etc/keepalived/keepalived.conf
14 state MASTER
15 interface eth0
16 virtual_router_id 60
17 priority 150
18 advert_int 1
19 authentication {
20 auth_type PASS
21 auth_pass 1111
22 }
23 virtual_ipaddress {
24 10.43.187.201/24 dev eth0 label eth0:1
25 }
26 }
27
28 vrrp_instance VI_2 {
29 state BACKUP
30 interface eth0
31 virtual_router_id 61
32 priority 100
33 advert_int 1
34 authentication {
35 auth_type PASS
36 auth_pass 1111
37 }
38 virtual_ipaddress {
39 10.43.187.202/24 dev eth0 label eth0:2
40 }
41 }
實例
VI_1
在qll251節點上的角色爲主
,實例VI_2
在qll251節點上的角色爲備
。
3.2 qll252配置文件修改如下:
[root@qll252 ~]# vim /etc/keepalived/keepalived.conf
14 state BACKUP
15 interface eth0
16 virtual_router_id 60
17 priority 100
18 advert_int 1
19 authentication {
20 auth_type PASS
21 auth_pass 1111
22 }
23 virtual_ipaddress {
24 10.43.187.201/24 dev eth0 label eth0:1
25 }
26 }
27
28 vrrp_instance VI_2 {
29 state MASTER
30 interface eth0
31 virtual_router_id 61
32 priority 150
33 advert_int 1
34 authentication {
35 auth_type PASS
36 auth_pass 1111
37 }
38 virtual_ipaddress {
39 10.43.187.202/24 dev eth0 label eth0:2
40 }
41 }
實例
VI_1
在qll252節點上的角色爲備
,實例VI_2
在qll252節點上的角色爲主
。
如果您是手機閱讀的,配置文件查看起來應該不方便吧。這裏我們就通過截圖對比下主備節點配置文件差別項:
通過對比可以看出,主備節點配置文件實際就兩項區別:
- state(狀態)
- priority(優先級,數值越大優先級越高)
4、驗證
首先關閉
qll251和qll252的Keepalived服務,然後再進行如下操作:
//在qll251上進行如下操作:
[root@qll251 ~]# systemctl start keepalived
[root@qll251 ~]# ip a | egrep "10.43.187.201|10.43.187.202"
inet 10.43.187.201/24 scope global secondary eth0:1
inet 10.43.187.202/24 scope global secondary eth0:2
//由於qll252還沒開服務,主備VIP都綁定在qll01上
//在qll252上進行如下操作:
[root@qll252 ~]# systemctl start keepalived
[root@qll252 ~]# ip a | egrep "10.43.187.201|10.43.187.202"
inet 10.43.187.202/24 scope global secondary eth0:2
//開啓qll252服務,由於在實例VI_2中其優先級高於qll251,因此VIP10.43.187.202綁定在qll252
//再次在qll251上進行如下操作:
[root@qll251 ~]# ip a | egrep "10.43.187.201|10.43.187.202"
inet 10.43.187.201/24 scope global secondary eth0:1
//qll251上只有10.43.187.201了
經驗證,我們發現qll251,qll252主備節點已經實現了當任意一端宕機時,VIP可以實現互相切換接管。在實際工作中,可以把www.cloud.com解析到VIP 10.43.187.201提供服務,把bbs.cloud.com解析到10.43.187.202提供服務。當然,qll251,qll252也要配置相應服務,例如:Nginx反向代理服務等。
結語
歡迎關注微信公衆號『開源Linux
』,專注於分享Linux/Unix相關內容,包括Linux運維、Linux系統開發、網絡編程、以及虛擬化和雲計算等技術乾貨。後臺回覆『學習
』,送你一套學習Linux的系列書籍,期待與你相遇。