日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux lnmp分布式集群,LNMP 分布式集群(六):keepalived 高可用方案

發(fā)布時間:2024/9/19 linux 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux lnmp分布式集群,LNMP 分布式集群(六):keepalived 高可用方案 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

LNMP 分布式集群的部署實踐 系列文章:

衡量一個集群的高可用性在于沒有單點故障,即其中任何一臺服務(wù)器宕機都不會造成整個服務(wù)中斷。

之前的LNMP分布式集群的實踐中,顯然在將Nginx作為負(fù)載均衡服務(wù)器時,upstream機制能檢測出后端服務(wù)器是否可用,如果其中一臺服務(wù)器宕機,Nginx能自動轉(zhuǎn)移到后端正常的服務(wù)器中,以保持系統(tǒng)持續(xù)可用。

但現(xiàn)在只有一臺負(fù)載均衡服務(wù)器,一旦該服務(wù)器發(fā)生故障,就會造成整個集群服務(wù)中斷,為此,使用 keepalived 部署備用服務(wù)器,實現(xiàn)故障轉(zhuǎn)移。

Keepalived 內(nèi)置了 VRRP(Virtual Router Redundancy Protocol,虛擬路由冗余協(xié)議)功能,用于解決靜態(tài)路由出現(xiàn)的單點故障問題,它通過IP多播的方式通信,當(dāng)發(fā)現(xiàn)路由故障時,通過選舉策略將備用路由更換為主路由,從而繼續(xù)提供服務(wù)。

Keepalived 實現(xiàn)了將提供對外訪問的IP地址(Virtual IP)自動在主服務(wù)器(Master)和備用服務(wù)器(Backup)之間切換,正常情況下用Master,當(dāng)它故障了那么監(jiān)控它的Backup會通過優(yōu)先級機制競爭接管Virtual IP繼續(xù)對外服務(wù),其他落選的就繼續(xù)監(jiān)控當(dāng)前使用的 Virtual IP 服務(wù)器。

高可用環(huán)境中的服務(wù)器:

角色

Real IP(RIP)

Virtual IP(VIP)

說明

Master

192.168.177.21

192.168.177.11

Nginx + Keepalived

Backup

192.168.177.22

192.168.177.11

Nginx + Keepalived

-

192.168.177.1X

-

后端服務(wù)器集群

然后我們對之前的LNMP分布式集群架構(gòu)做出更改:

這就是LNMP高可用分布式集群!

但是為了演示我們不加入集群,使用兩個簡單的后端服務(wù)器,RIP分別為192.168.177.23和192.168.177.24,Keepalived 服務(wù)的虛擬IP改為192.168.177.20:

角色

Real IP(RIP)

Virtual IP(VIP)

說明

Master

192.168.177.21

192.168.177.20

Nginx + Keepalived

Backup

192.168.177.22

192.168.177.20

Nginx + Keepalived

-

192.168.177.23

-

后端服務(wù)器1

-

192.168.177.24

-

后端服務(wù)器2

部署

安裝和配置 keepalived 服務(wù)

部署和配置主服務(wù)器

cd /usr/local/nginx/html

echo 'This is Master' > index.html

curl http://localhost

tar -zxvf keepalived-1.2.24.tar.gz

cd keepalived-1.2.24

./configure

make && make install && cd ..

cd /usr/local/etc/rc.d/init.d

cp keepalived /etc/init.d/keepalived

chmod +x /etc/init.d/keepalived

chkconfig keepalived on

cd /usr/local/etc/sysconfig

ln -s `pwd`/keepalived /etc/sysconfig/keepalived

cd /usr/local/sbin

ln -s `pwd`/keepalived /usr/sbin/keepalived

# 配置主服務(wù)器的 keepalived

less /usr/local/etc/keepalived/keepalived.conf # 查看配置文件模板

mkdir /etc/keepalived # 手動創(chuàng)建默認(rèn)加載的配置文件

vi /etc/keepalived/keepalived.conf

vrrp_instance VI_1 { # 配置一個虛擬路由

state MASTER

interface ens33 # 指定監(jiān)測的網(wǎng)卡

virtual_router_id 21 #虛擬路由的標(biāo)識,同一個 VRRP 的 Master 和 Backup 應(yīng)一致

mcast_src_ip 192.168.177.21 # 設(shè)置 real IP,可省略,有默認(rèn)自動使用主IP

priority 100 # 優(yōu)先級、權(quán)重(權(quán)重最高的主機將接管 Virtual IP),范圍0-254

advert_int 1 # MASTER 和 BACKUP 之間同步檢查的時間間隔,單位秒

authentication {

auth_type PASS # 驗證類型,PASS表示密碼驗證

auth_pass 123456 # 設(shè)置密碼

}

virtual_ipaddress { # 配置 虛擬IP地址池,每行一個

192.168.177.20 # 為 MASTER 和 Backup 設(shè)置相同的虛擬IP

}

}

# 啟動 keepalived 服務(wù)

service keepalived start

ps aux | grep keepalived

ip a | grep 192.168.177.20

#### 配置備用服務(wù)器的 keepalived

基于主服務(wù)器克隆出一臺備用服務(wù)器,IP為192.168.177.22。然后打開 keepalived 配置:

```bash

vrrp_instance VI_1 {

state BACKUP # 修改身份為 BACKUP

priority 90 # 修改優(yōu)先級為90(低于MASTER)

……

}

# Master 和 Backup 通過 VRRP 的 112 端口通信

iptables -I INPUT -s192.168.177.21 -p112 -jACCEPT

service iptables save

iptables -I INPUT -s192.168.177.22 -p112 -jACCEPT

service iptables save

service keepalived start # 啟動 Backup服務(wù)器的 Keepalived 服務(wù)

# 區(qū)分當(dāng)前訪問的是哪一臺服務(wù)器

cd /usr/local/nginx/html

echo 'This is Backup' > index.html

# 測試,訪問192.168.177.20

service network stop

service network start

復(fù)制代碼

至此就部署完畢了。

使用Keepalived 監(jiān)控本機服務(wù)

除了可以監(jiān)控其他服務(wù)器中的Keepalived是否正常,也可以監(jiān)控本機中的某個服務(wù)是否正常:

監(jiān)控本機Nginx服務(wù)

vrrp_script chk_nginx {

script "/chk_nginx.sh"

interval 2

weight -20

}

vrrp_instance VI_1 {

……

track_script {

chk_nginx

}

}

vi /chk_nginx.sh # 創(chuàng)建監(jiān)控腳本

# !/bin/bash

if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then

service nginx start

sleep 2

if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then

service keepalived stop

fi

fi

chmod +x /chk_nginx.sh

service keepalived reload

復(fù)制代碼

高可用測試

service nginx stop # 手動停用

ps -C nginx --no-header # 等待2秒,查看是否恢復(fù)啟動

# 創(chuàng)建停止 Nginx 服務(wù)并立即取消 Nginx 程序執(zhí)行權(quán)限的腳本

cd /usr/local/nginx/sbin

vi test.sh

#! /bin/bash

service nginx stop

chmod -x nginx

chmod +x test.sh

./test.sh

# 看是否自動切換到備用服務(wù)器

復(fù)制代碼

LNMP 分布式集群的部署實踐 系列文章:

dfface 的版權(quán)聲明:所有文章除特別聲明外,均采用 CC BY-NC-SA 4.0

許可協(xié)議。轉(zhuǎn)載請注明出處,嚴(yán)禁商業(yè)用途!

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的linux lnmp分布式集群,LNMP 分布式集群(六):keepalived 高可用方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。