目錄
一、什么是高可用HA?
二、負載均衡和高可用的區別?
三、keepalived的vrrp協議
四、keepalived實作高可用的實驗
五、高可用keepalive的雙vip的實作
一、什么是高可用HA?
高可用HA(High Availability)是分布式系統架構設計中必須考慮的因素之一,它通常是指通過設計,減少系統服務不可用的時間,也就是,一個業務不會因為某個設備或者點出現問題而導致整個業務不能正常運轉,不能單點故障,
單點故障: 某些重要的應用,只有1個節點,如果這個節點出現故障,導致服務不可用,
高可用: high availability :至少有2個以上的節點提供服務,互相備份,其中的一個壞了,另外一個可用頂替,
master :主要的,對外提供服務的
backup :備份的,不對外提供服務,在master是好的情況下,一旦master掛了,backup馬上就會接替master的作業,成為master
高可用的軟體:keepalived 、HA Proxy、heartbeat
出現任何情況都可以運用到——HA
高可用的背后需要付出的代價: 投入很多的機器,互相之間做備份——資金投入高
二、負載均衡和高可用的區別?
負載均衡:將很多的請求分散到后端很多的服務器上,化解壓力的一個軟體
高可用: 有2個或者多個服務器(人)做相同的事情,互相備份,
三、keepalived的vrrp協議
keepalived的核心的技術點: vrrp協議和vip
虛擬路由器冗余協議(vrrp)原理:
VRRP將局域網內的一組路由器劃分在一起,稱為一個備份組,備份組由一個Master路由器和多個Backup路由器組成,功能上相當于一臺虛擬路由器,局域網內的主機只需要知道這個虛擬路由器的IP地址,并不需知道具體某臺設備的IP地址,將網路內主機的預設網關設定為該虛擬路由器的IP地址,主機就可以利用該虛擬網關與外部網路進行通信,
Master路由的選舉
備份組中路由器的優先級:
-
VRRP根據優先級來確定備份組中每臺路由器的角色(Master路由器或Backup路由器),優先級越高,則越有可能成為Master路由器,
-
當兩臺優先級相同的路由器同時競爭Master時,比較介面IP地址大小,介面地址大者當選為Master,
四、keepalived實作高可用的實驗
一、nginx負載均衡器的安裝以及設定
準備2臺linux服務器 硬體配置盡量一致,兩臺server服務器,
1、安裝2臺nginx負載均衡器,需要安裝nginx,使用腳本一鍵安裝nginx所有的機器,server也要安裝nginx,
先vim一個nginx的腳本,在bash執行腳本一鍵安裝nginx,注意兩臺設備配置要一樣!
[root@LB-2 nginx]# vim nginx-geoip.sh #創建腳本
[root@LB-2 nginx]# bash nginx-geoip.sh #執行腳本,編譯安裝nginx
#!/bin/bash
#解決軟體的依賴關系,需要安裝的軟體包
yum -y install epel-release
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel gcc gcc-c++ autoconf automake make psmisc net-tools lsof vim geoip geoip-devel
#新建luogan用戶和組
id xiayuzhen || useradd xiayuzhen -s /sbin/nologin
#下載nginx軟體
mkdir /xiayuzhen99 -p
cd /xiayuzhen99
wget http://nginx.org/download/nginx-1.21.1.tar.gz
#解壓軟體
tar xf nginx-1.21.1.tar.gz
#進入解壓后的檔案夾
cd nginx-1.21.1
#編譯前的配置
./configure --prefix=/usr/local/scxiayuzhen99 --user=xiayuzhen --group=xiayuzhen --with-http_ssl_module --with-threads --with-http_v2_module --with-http_stub_status_module --with-stream --with-http_geoip_module
#如果上面的編譯前的配置失敗,直接退出腳本
if (( $? != 0));then
exit
fi
#編譯
make -j 2
#編譯安裝
make install
#修改PATH變數
echo "PATH=/usr/local/scxiayuzhen99/sbin:$PATH" >>/root/.bashrc
#執行修改了環境變數的腳本
source /root/.bashrc
#firewalld and selinux
#stop firewall和設定下次開機不啟動firewalld
service firewalld stop
systemctl disable firewalld
#臨時停止selinux和永久停止selinux
setenforce 0
sed -i '/^SELINUX=/ s/enforcing/disabled/' /etc/selinux/config
#開機啟動
chmod +x /etc/rc.d/rc.local
echo "/usr/local/scxiayuzhen99/sbin/nginx" >>/etc/rc.local
#修改nginx.conf的配置,例如:埠號,worker行程數,執行緒數,服務域名
sed -i '/worker_processes/ s/1/2/' /usr/local/scxiayuzhen99/conf/nginx.conf
sed -i '/worker_connections/ s/1024/2048/' /usr/local/scxiayuzhen99/conf/nginx.conf
sed -i -r '36c \\tlisten 80;' /usr/local/scxiayuzhen99/conf/nginx.conf
sed -i -r '37c \\tserver_name www.xiayuzhen.com;' /usr/local/scxiayuzhen99/conf/nginx.conf
#killall nginx行程
#killall -9 nginx
#啟動nginx
#/usr/local/scxiayuzhen99/sbin/nginx
2、配置nginx的負載均衡功能
找到修改nginx.conf 的組態檔:
[root@LB-2 nginx]# vim /usr/local/scxiayuzhen99/conf/nginx.conf
這里是LB負載均衡器的配置:

這里是sever服務器的配置:

3、啟動nginx

4、注意一定要關掉防火墻和selinux

nginx的負載均衡配置完成之后,可以開始安裝keepalived高可用軟體了,
二、安裝配置keepalived軟體,兩臺負載均衡都要安裝,配置一定要一樣
1、安裝keepalived軟體

2、配置keepalived.conf檔案,添加vip和相關資訊
vip是virtual ip——虛擬ip

一臺backup的keepalived的配置:
注意!!!里面的vrrp_strict 一定要注釋掉!!!在global_defs模塊里面!

一臺master的keepalived的配置:

操作內容解釋:
#vrrp_strict 注釋掉
vrrp_instance VI_1 { 啟動一個vrrp的實體 VI_1 實體名,可以自定義
state MASTER --》角色是master
interface ens33 --》在哪個介面上監聽vrrp協議,同時系結vip到那個介面
virtual_router_id 66 --》虛擬路由id(幫派) 0~255范圍
priority 120 ---》優先級 0~255
advert_int 1 --》advert interval 宣告訊息 時間間隔 1秒
authentication { 認證
auth_type PASS 認證的型別是密碼認證
auth_pass 11112222 具體的密碼,可以自己修改
}
virtual_ipaddress { --》vip的配置,vip可以是多個ip
192.168.138.198
}
}
3、啟動keepalived軟體并且看行程
service keepalived start 啟動keepalived
不需要看埠, keepalived不監聽具體的那個埠號,因為vrrp是組播通信
4、查看ip add 是否生效vip
首先看master配置的那臺:

backup那臺:
測驗:可以通過瀏覽器訪問設定好的虛擬vip 192.168.138.198 ,在后臺查看日志看訪問的到底是哪臺,

上述就完成了高可用的vip設定!!
五、高可用keepalive的雙vip的實作
跟單vip的方法差不多,再加一個master配置就可以了,

1、修改keepalived檔案:
[root@LB-2 keepalived]# vim keepalived.conf

另外一臺:

2、配置完之后,啟動keepalived
3、查看ip add 是否生效兩個vip


這樣就實作高可用的雙vip啦!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/291998.html
標籤:其他
上一篇:小程式除錯技術導讀
