keepalive高可用集群(nginx)

2022-02-13 05:05:16 字數 4621 閱讀 6115

一.keepalived服務概念說明

keepalived軟體能幹什麼?

keepalived軟體起初是專為lvs負載均衡軟體設計的,用來管理並監控lvs集群系統中各個服務節點的狀態,後來又加入了可以實現高可用的vrrp功能

keepalived軟體主要是通過vrrp協議實現高可用功能的。

vrrp是virtual router redundancy protocol(虛擬路由器冗餘協議)的縮寫,vrrp出現的目的就是為了解決靜態路由單點故障問題的,它能夠保證當個別節點宕機時,整個網路可以不間斷地執行

keepalived軟體工作原理?(重點)

原理 1)vrrp協議,全稱virtual router redundancy protocol,中文名為虛擬路由冗餘協議,vrrp的出現是為了解決靜態路由的單點故障。

2)vrrp是用過ip多播的方式(預設多播位址(224.0.0.18))實現高可用對之間通訊的。

3)工作時主節點發包,備節點接包,當備節點接收不到主節點發的資料報的時候,就啟動接管程式接管主節點的資源。備節點可以有多個,通過優先順序競選,但一般keepalived系統運維工作中都是一對。

二.   環境設定

1.普通web上修改, 其中一台的nginx的配置  3臺都一樣

[root@web01 extra1]# cat

www.conf bbs.conf

server

server

}

2.lb 上的nginx.conf的配置 2臺的配置是一樣的

3.在lb1 lb2上都做測試

curl -h host:www.augustyang.org 10.0.0.7

curl -h host:www.augustyang.org 10.0.0.8

curl -h host:www.augustyang.org 10.0.0.9

curl -h host:bbs.augustyang.org 10.0.0.7

curl -h host:bbs.augustyang.org 10.0.0.8

curl -h host:bbs.augustyang.org 10.0.0.9

三.安裝部署高可用keepalived服務

1.安裝keepalived服務

yum install -y keepalived

2.修改配置檔案

vim /etc/keepalived/keepalived.conf

man keepalived.conf   --- 配置檔案說明資訊

配置檔案結構:

global configuration --- 全域性配置(*)

vrrpd configuration --- vrrp配置(*)

lvs configuration --- lvs服務相關配置

lb01  主負載均衡器配置

! configuration file for

keepalived

global_defs

vrrp_instance gorup01

virtual_ipaddress

}

lb02  從負載均衡器配置

! configuration file for

keepalived

global_defs

vrrp_instance gorup01

virtual_ipaddress

}

基本實現高可用負載均衡, 但有缺陷

四 部署keepalived高可用問題

同時在keepalived高可用集群中, 出現2個虛擬ip位址資訊,這種腦裂情況

腦裂情況出現原因:

1.心跳線出現問題

.網絡卡配置有問題

交換裝置有問題

線纜連線有問題

2.有防火牆軟體阻止問題

3.virtual_router_id 配置數值不正確

只要備伺服器收不到組播包, 就會成為主, 二主資源沒有釋放,就會出現腦裂

利用shell指令碼實現監控管理

備用裝置有vip 就表示不正常

① 出現主備切換

②出現腦裂情況

#!/bin/bash

check_info=$(ip a|grep -c 10.0.0.3

)if [ $check_info -ne 0

]then

echo

"keepalived server error!!!

"fi

五 實現nginx反向**監控虛擬ip位址

1.需要實現監聽本地網絡卡上沒有的ip位址(lb1  lb2都修改)

echo

'net.ipv4.ip_nonlocal_bind = 1

' >>/etc/sysctl.conf

sysctl -p

2.編寫nginx反向**配置(lb1  lb2都修改)

server 

}server

}

[root@lb01 conf]# netstat -lntup|grep

nginx

tcp 00

10.0.0.3:80

0.0.0.0:* listen 63640/nginx

六 將keepalived服務和反向**nginx服務建立聯絡

當nginx 停止的時候那個 對應的keepalived也要停止

#!/bin/bash

web_info=$(ps -ef|grep [n]ginx|wc -l)

if [ $web_info -lt 2

]then

/etc/init.d/keepalived stop

fi

2.執行指令碼, 實現監控nginx服務

編輯keepalived服務配置檔案

! configuration file for

keepalived

global_defs

vrrp_script check_web

vrrp_instance gorup01

virtual_ipaddress

track_script

}

七 實現高可用集群架構中雙主配置(互為主備配置)

lb1

! configuration file for

keepalived

global_defs

vrrp_script check_web

vrrp_instance gorup01

virtual_ipaddress

track_script

} vrrp_instance gorup02

virtual_ipaddress

track_script

# }

lb2

! configuration file for

keepalived

global_defs

vrrp_script check_web

vrrp_instance gorup01

virtual_ipaddress

track_script

}vrrp_instance gorup02

virtual_ipaddress

track_script

}

server    

}server

}

}

[root@lb01 scripts]# netstat -tulnp | grep

nginx

tcp 00

10.0.0.4:80

0.0.0.0:* listen 65733/nginx

tcp 00

10.0.0.3:80

0.0.0.0:* listen 65733/nginx

高可用集群

高可用集群主要實現自動偵測 auto detect 故障 自動切換 故障轉移 failover 和自動恢復 failback 簡單來說就是,用高可用集群軟體實現故障檢查和故障轉移 故障 備份主機切換 的自動化,當然像負載均衡 dns分發也可提供高可性。active passive 主備模型 acti...

Keepalived Nginx高可用集群

安裝環境 centos6.6 x64 nginx版本 1.9.3 keepalived版本 1.2.18 ipvip 主節點192.168.11.21 192.168.11.20 備節點192.168.11.22 192.168.11.20 1.1 安裝openssl tar zxvf openss...

高可用集群 fence

一 物理機安裝fence 開啟服務,並做相應設定 刪除生成的鑰匙,重新擷取 rm fr etc cluster fence xvm.key dd if dev urandom of etc cluster fence xvm.key bs 128 count 1 重啟服務 systemctl res...