乾貨 | Keepalived高可用服務配置實例

Keepalived系列導讀

Keepalived入門學習

keepalived安裝及配置文件詳解

前言

在前面的章節中,我們學習了Keepalived簡介、原理、以及Keepalived 配置文件的詳細解讀;今天我們通過幾個配置實例來幫助大家掌握Keepalived的高可用性。

Keepalived單實例主備模式實戰

配置Keepalived實現單實例單IP自動漂移接管

1、準備兩臺機器

乾貨 | Keepalived高可用服務配置實例

2、安裝 Keepalived軟件

yum -y install keepalived

需要在qll251和qll252兩臺服務器上同時安裝Keepalived

3、修改Keepalived配置文件

3.1 qll251爲MASTER,配置文件如下:

vim /etc/keepalived/keepalived.conf
乾貨 | Keepalived高可用服務配置實例

配置文件詳細說明,參考:

keepalived 配置文件詳解

這裏我們只注意一點:服務器qll251 作爲實例VI_1的master,實例ID爲60,實例優先級150,浮動IP地址爲10.43.187.201

3.2 qll252爲BACKUP,配置文件如下:

vim /etc/keepalived/keepalived.conf
乾貨 | Keepalived高可用服務配置實例

4、啓動Keepalived服務

systemctl start keepalived

注意:MASTER跟BACKUP節點都要啓動Keepalived服務

5、驗證虛擬IP自動漂移

由於VI_1實例中,qll251優先級高於qll252,因此qll251爲MASTER

在服務器qll251上,可以看到虛擬IP10.43.187.201

乾貨 | Keepalived高可用服務配置實例

而qll252作爲Keepalive備節點,無浮動ip:

乾貨 | Keepalived高可用服務配置實例

進行高可用主備服務器切換實驗:

(1)將qll251節點Keepalived服務停止,模擬MASTER宕機

乾貨 | Keepalived高可用服務配置實例

(2)關閉qll251節點服務後,備節點接管綁定VIP

乾貨 | Keepalived高可用服務配置實例

(3)通過日誌,查看Keepalived主備切換過程
乾貨 | Keepalived高可用服務配置實例

通過日誌,發現備節點qll252已經接管綁定了10.43.187.201這個VIP,期間備節點發送ARP廣播,讓所有客戶端更新本地的ARP表,以便客戶端訪問新接管VIP服務的節點。

此時備節點已接管VIP,若再次啓動主節點的Keepalived服務,主節點是否會接管回VIP?我們驗證下

(啓動主節點qll251 Keepalived服務過程省略,我們通過日誌觀察切換現象)

乾貨 | Keepalived高可用服務配置實例

通過日誌得知:
由於主節點優先級高於備節點,因此主節點搶佔爲MASTER,同時備節點成爲BACKUP,並且移除VIP。

以上遍實現了單實例Keepalived服務IP自動漂移接管;VIP漂移至新機器,用戶的訪問請求自然就會找新機器了。

Keepalived雙實例雙主模式配置實戰

前面給出的是Keepalived單實例主備模式的高可用演示;Keepalived還支持多實例多業務雙向主備模式,即A業務在qll251上是主模式,在qll252上是備模式,而B業務在qll251上是備模式,在qll252上是主模式,下面就以雙實例爲例講解不同業務實現雙主的配置。

1、準備兩臺機器

下圖爲Keepalived雙實例雙主模式IP及VIP規劃表:

乾貨 | Keepalived高可用服務配置實例

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_1qll251節點上的角色爲,實例VI_2qll251節點上的角色爲

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_1qll252節點上的角色爲,實例VI_2qll252節點上的角色爲

如果您是手機閱讀的,配置文件查看起來應該不方便吧。這裏我們就通過截圖對比下主備節點配置文件差別項:

乾貨 | Keepalived高可用服務配置實例

通過對比可以看出,主備節點配置文件實際就兩項區別:

  • 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的系列書籍,期待與你相遇。

乾貨 | Keepalived高可用服務配置實例

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章