HA集羣-keepalived+LVS\DR部署

 一 . keepalived簡介


keepalived是什麼?

keepalived是集羣管理中保證集羣高可用的一個服務軟件,其功能類似於heartbeat,用來防止單點故障

keepalived工作原理


keepalived是以VRRP協議爲實現基礎的,VRRP全稱Virtual Router Redundancy Protocol,即虛擬路由冗餘協議。

       虛擬路由冗餘協議,可以認爲是實現路由器高可用的協議,即將N臺提供相同功能的路由器組成一個路由器組,這個組裏面有一個master(主)和多個backup(備份),master上面有一個對外提供服務的vip(該路由器所在局域網內其他機器的默認路由爲該vip),master會發組播(224.0.0.18),當backup收不到vrrp包時就認爲master宕掉了,這時就需要根據VRRP的優先級(priority)來選舉一個backup當master。這樣的話就可以保證路由器的高可用了。

       keepalived主要有三個模塊,分別是core(核心)、check(檢測)和vrrp(虛擬路由冗餘協議)。core模塊爲keepalived的核心,負責主進程的啓動、維護以及全局配置文件(keepalived.conf)的加載和解析。check負責健康檢查,包括常見的各種檢查方式(TCP、腳本檢測進程狀態等)。vrrp模塊是來實現VRRP協議的。


keepalived的常見組合
keepalived+LVS
keepalived+nginx
keepalived+mysql-proxy
keepalived+mycat

keepalived+LVS
       Keepalived 是一個基於VRRP協議來實現的LVS服務高可用方案,可以利用其來避免單點故障。一個LVS服務會有2臺服務器運行Keepalived,一臺爲主服務器(MASTER),一臺爲備份服務器(BACKUP),但是對外表現爲一個虛擬IP,主服務器會發送特定的消息給備份服務器,當備份服務器收不到這個消息的時候,即主服務器宕機的時候, 備份服務器就會接管虛擬IP,繼續提供服務,從而保證了高可用性。


 二 . keepalived+LVS\DR的搭建


實驗拓撲圖


image.png


實驗準備

客戶端/服務器 IP地址
Client192.168.11.1
Director master (node11)
192.168.11.11/24
Director Backup (node12)192.168.11.12/24
Real  Server (node13)192.168.11.13/24
Real  Server (node14)192.168.11.14/24


四臺服務器均關閉防火牆和selinux

systemctl  stop  firewalld                  #關閉防火牆

systemctl  status  firrewalld              #查看防火牆

setenforce  0                                   #關閉selinux

getenforce                                      #查看selinux是否關閉


服務部署流程


首先簡單部署後端服務器(real  server) , 後端web服務器可以是apache , nginx 等服務


在node13和node14上部署apache服務 , 並設置主頁


node13(192.168.11.13)上的操作

yum  install  -y  httpd                                                                     #用yum安裝httpd軟件

echo  'www.node13.com' > /var/www/html/index.html                 #設置apache主頁 , node13上做

systemctl  start  httpd                                                                   #重啓服務

curl  192.168.11.13                                                                        #內測httpd服務

vim  lo.sh                                                                                     #編輯腳本,內容如下

#!/bin/bash
ifconfig lo:1 192.168.11.100  netmask 255.255.255.255
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
chmod  +x  lo.sh                                           #給腳本執行權限

bash  lo.sh                                                    #運行腳本 , 出現下圖片中的IP則表示正確
scp  lo.sh  [email protected]:/root/            #把lo.sh上傳到192.168.11.14的root家目錄中

image.png

image.png


node14(192.168.11.14)上的操作

yum  install  -y  httpd                                                                     #用yum安裝httpd軟件

echo  'www.node14.com' > /var/www/html/index.html                 #設置apache主頁 , node13上做

systemctl  start  httpd                                                                   #重啓服務

curl  192.168.11.13                                                                        #內測httpd服務

bash  lo.sh


image.png

image.png


部署Master  Director  Server 服務(192.168.11.11)


yum  install  -y  keepalived  ipvsadm                    #安裝keepalived軟件和ipvsadm命令

cd  /etc/keepalived

cp  -av  keepalived.conf{,.bak}                              #備份keepalived主配置文件

image.png

vim  keepalived.conf       #編輯keepalived配置文件 , 如下圖

配置文件詳解:

image.png

image.png


配置好keepalived文件定義集羣后 , 重啓服務 , 查看IP和ipvsadm集羣信息


systemctl  restart  keepalived              #重啓服務

ip  a                         #此處查看ip信息 , 會多出一個vrrp的虛擬IP(VIP地址)

image.png

ipvsadm  -Ln                      #查看ipvsadm集羣VIP所對應的後端web服務器IP信息

image.png


把配置文件keepalived.conf配置文件傳到192.168.11.12備服務器上


[root@node11 keepalived]# scp keepalived.conf   [email protected]:/etc/keepalived/

image.png


部署Backup  Director  Server 服務(192.168.11.12)


yum  install  -y  keepalived  ipvsadm

vim  /etc/keepalived/keepalived.conf

image.png


systemctl  restart  keepalived        #重啓keepalived服務

修改好配置文件重啓服務後 , 此時ip  a 查看ip地址信息 , 發現VIP地址併爲出現 , 原因是主服務器未down掉

image.png


配置好主備服務後 , 進行測試

image.png

測試結果每訪問3次192.168.11.14 , 再訪問一次192.168.11.13 ,(LVS調度算法權重)成功負載均衡進行輪詢


此時假裝把主服務器192.168.11.11down掉 , 查看192.168.11.12的IP狀態 ,並再次執行測試

關閉node11的keepalived服務

image.png

查看192.168.11.12上的IP信息 , 發現成功繼承VIP:192.168.11.100,並繼續承當起負載均衡器 , 實現高可用

image.png

再次測試:

image.png


抓包分析:

keepalived通過vrrp協議進行組播的作用是爲了競選出由哪臺keepalived主機接管業務(使用VIP的)。誰的priority優先級高(即票數多),誰就有VIP地址。


當master和backup都在運行keepalived服務時:在備服務器node12抓取vrrp包 , 發現是192.168.11.11在不間斷髮送vrrp組播node11(master)發送的組播信息:
node12(backup)接收的組播信息
src:192.168.11.11
dest:224.0.0.18

keepalived集羣中其他主機接收的組播信息
src:192.168.11.11
dest:224.0.0.18

image.png

image.png


當192.168.11.11down掉後 , 192.168.11.12競選 ,開始由192.168.11.11不間斷髮送vrrp包變成192.168.11.12開始不間斷髮送vrrp組播

node12發送的組播信息
src:192.168.11.12
dest:224.0.0.18
keepalived集羣中其他主機接收的組播信息:
src:192.168.11.12
dest:224.0.0.18

image.png

image.png



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