keepalived實現(xiàn)ipvs高可用集群

實驗環(huán)境

image.png

VIP:172.16.80.201
VS1:172.16.80.101
VS2:172.16.80.103
RS1:172.16.80.100
RS2:172.16.80.102
操作系統(tǒng)CentOS龙助。
VS1和VS2之間通過keepalived實現(xiàn)高可用的ipvs集群葱椭。后端RS1和RS2運行Nginx服務(wù)顽聂。


VS1和VS2配置

一、通過keepalived實現(xiàn)高可用
1绷跑、安裝keepalived

[root@VS1 ~]#yum install keepalived ipvsadm  -y
[root@VS2 ~]#yum install keepalived ipvsadm  -y

2、配置VRRP實例,VS1為master坷备,VS2為backup。
VS1配置:

[root@VS1 ~]#vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
   root@localhost
}
   notification_email_from keadmin@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id CentOS7A.luo.com
   vrrp_mcast_group4 224.0.0.22
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass haha
    }
    virtual_ipaddress {
        172.16.80.201/16
    }

}

VS2配置

[root@VS2 ~]#vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {                                            <==全局配置段開始
   notification_email {                                  
   root@localhost                                        <==故障郵件的收件人
}                                                    
   notification_email_from keadmin@localhost             <==故障郵件的發(fā)件人
   smtp_server 127.0.0.1                                 <==故障郵件的發(fā)件服務(wù)器
   smtp_connect_timeout 30
   router_id CentOS7B.luo.com                            <==路由器ID
   vrrp_mcast_group4 224.0.0.22                          <==組播地址
}                                                        <==全局配置段結(jié)束 

vrrp_instance VI_1 {                                     <==實例名字為VI_1氧秘,備節(jié)點的實例名字要和主節(jié)點的相同
    state BACKUP                                         <==狀態(tài)為backup
    interface ens33                                      <==通信的接口
    virtual_router_id 51                                 <==實例ID
    priority 100                                         <==優(yōu)先級
    advert_int 1                                         <==通信檢查時間間隔
    authentication {
        auth_type PASS                                   <==認(rèn)證類型
        auth_pass haha                                   <==認(rèn)證密碼
    }
    virtual_ipaddress {
        172.16.80.201/16                                 <==虛擬IP
    }
}

配置完后年鸳,啟動VS1和VS2的keepalived

VS1
VS1
VS2

這里我們關(guān)停VS1的keepalived服務(wù)器模仿VS1故障,此時就能看到VIP漂移到VS2去了:

虛擬IP漂移

二丸相、通過keepalived實現(xiàn)lvs調(diào)度
以上我們實現(xiàn)通過keepalived實現(xiàn)了ip漂移搔确,接下來我們可以通過keepalived配置lvs調(diào)度。當(dāng)客戶端訪問虛擬ip 172.16.80.201時灭忠,我們可以把客戶端的請求調(diào)度到后端的RS1和RS2去膳算。

在/etc/keepalived/keepalived.conf文件內(nèi),添加virtual_server模塊

[root@VS1 ~]#vim /etc/keepalived/keepalived.conf
virtual_server 172.16.80.201 80 {                  <==虛擬IP地址
        delay_loop 3
        lb_algo rr                                 <==調(diào)度方法
        lb_kind DR                                 <==調(diào)度類型DR
        protocol TCP

        real_server 172.16.80.100 80 {             <==RS1服務(wù)器
                weight 1                           <==權(quán)重
                HTTP_GET {                         <==檢查后端服務(wù)狀態(tài)
                url {
                        path /
                        status_code 200            <==如果后端RS服務(wù)器返回200狀態(tài)碼弛作,則表示正常
                }
                connect_timeout 1                  <==連接超時時間
                nb_get_retry 3                         
                delay_before_retry 1
                }
        }
        real_server 172.16.80.102 80 {             <==RS2服務(wù)器
                weight 1
                HTTP_GET {
                url {
                        path /
                        status_code 200
                }
                connect_timeout 1
                nb_get_retry 3
                delay_before_retry 1
                }
        }
}

VS2配置與VS1的配置一樣涕蜂。保存配置后重啟VS1和VS2的keepalived服務(wù)。

lvs
image.png

可以看到映琳,調(diào)度配置已完成机隙。

RS1和RS2配置

1、安裝Nginx

[root@RS1 ~]#yum install nginx -y
[root@RS2 ~]#yum install nginx -y

2萨西、配置訪問頁面有鹿,并啟動RS1和RS2的Nginx服務(wù)

[root@RS1 ~]#vim /usr/share/nginx/html/index.html 
RS1 172.16.80.100
[root@RS2 ~]#vim /usr/share/nginx/html/index.html 
RS2 172.16.80.102

客戶端訪問RS1和RS2效果如下:

image.png

3、配置RS
編寫腳本lvs_dr.sh 谎脯,該腳本可以設(shè)置內(nèi)核參數(shù)以及vip信息葱跋。

[root@RS1 bin]#vim lvs_dr.sh 
#!/bin/bash

vip=172.16.80.201
mask=255.255.255.255
iface="lo:0"

case $1 in
start)
    ifconfig $iface $vip netmask $mask broadcast $vip up
    route add -host $vip dev $iface
    echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
    echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
    echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
    echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
    ;;
stop)
    echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
    echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
    echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
    echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
    ifconfig $iface down
    ;;
*)
    echo "Usage:$(basename $0) start|stop"
    exit 1
    ;;
esac

[root@RS1 bin]#chmod u+x  lvs_dr.sh
[root@RS1 bin]#bash -x  lvs_dr.sh start
+ vip=172.16.80.201
+ mask=255.255.255.255
+ iface=lo:0
+ case $1 in
+ ifconfig lo:0 172.16.80.201 netmask 255.255.255.255 broadcast 172.16.80.201 up
+ route add -host 172.16.80.201 dev lo:0
+ echo 1
+ echo 1
+ echo 2
+ echo 2

RS1和RS2的ip信息

驗證

當(dāng)用戶訪問http://172.16.80.201時,VS服務(wù)器輪詢方式調(diào)度到后端的RS服務(wù)器穿肄。


image.png

當(dāng)VS其中一臺服務(wù)器宕機(jī)年局,另一臺VS可以迅速接管172.16.80.201的功能。從而實現(xiàn)了高可用咸产。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末矢否,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子脑溢,更是在濱河造成了極大的恐慌僵朗,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屑彻,死亡現(xiàn)場離奇詭異验庙,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)社牲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門粪薛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人搏恤,你說我怎么就攤上這事违寿∨冉唬” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵藤巢,是天一觀的道長搞莺。 經(jīng)常有香客問我,道長掂咒,這世上最難降的妖魔是什么才沧? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮绍刮,結(jié)果婚禮上温圆,老公的妹妹穿的比我還像新娘。我一直安慰自己录淡,他們只是感情好捌木,可當(dāng)我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嫉戚,像睡著了一般刨裆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上彬檀,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天帆啃,我揣著相機(jī)與錄音,去河邊找鬼窍帝。 笑死努潘,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的坤学。 我是一名探鬼主播疯坤,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼深浮!你這毒婦竟也來了压怠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤飞苇,失蹤者是張志新(化名)和其女友劉穎菌瘫,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體布卡,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡雨让,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了忿等。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片栖忠。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出娃闲,到底是詐尸還是另有隱情虚汛,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布皇帮,位于F島的核電站,受9級特大地震影響蛋辈,放射性物質(zhì)發(fā)生泄漏属拾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一冷溶、第九天 我趴在偏房一處隱蔽的房頂上張望渐白。 院中可真熱鬧,春花似錦逞频、人聲如沸纯衍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽襟诸。三九已至,卻和暖如春基协,著一層夾襖步出監(jiān)牢的瞬間歌亲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工澜驮, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留陷揪,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓杂穷,卻偏偏與公主長得像悍缠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子耐量,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容