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

Keepalived系列導讀

Keepalived入門學習編程

keepalived安裝及配置文件詳解
vim

前言

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

Keepalived單實例主備模式實戰

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

一、準備兩臺機器

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

二、安裝 Keepalived軟件

yum -y install keepalived

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

三、修改Keepalived配置文件

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

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

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

keepalived 配置文件詳解
學習

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

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

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

四、啓動Keepalived服務

systemctl start keepalived

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

五、驗證虛擬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上是主模式,下面就以雙實例爲例講解不一樣業務實現雙主的配置。

一、準備兩臺機器

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

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

二、安裝 Keepalived軟件

yum -y install keepalived

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

三、修改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(優先級,數值越大優先級越高)

四、驗證

首先關閉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高可用服務配置實例

相關文章
相關標籤/搜索