Keepalive+LVS實現負載均衡

實驗環境:

1.linux系統中配置四臺虛擬機,主機名可以自己定義
2.給四臺主機配置和ip和dns地址解析,是的四臺主機可ping通

可以參考以下配置,由於我的母盤ip爲1。所以我的ip是從2開始
host1
在這裏插入圖片描述
host2
在這裏插入圖片描述
host3
在這裏插入圖片描述
host4
在這裏插入圖片描述

做完之後在你的主機中做dns地址解析

vim /etc/hosts
在這裏插入圖片描述

配置本地yum源,關閉firewalld和selinux

lvs:linux virtual server

lvs實現http的負載均衡

dr:直接路由模式
tun:隧道模式
nat:路由轉發模式
fullnat模式

四種工作模式對比

性能比較:DR>TUN>NAT>FULLNAT

DR工作模式和輪詢調度實現httpd的負載均衡

操作步驟:
安裝所需要的軟件

yum install -y ipvsadm
安裝管理器

以下都爲參考數值(可以自行設置)

添加虛擬IP和調度算法
ipvsadm -A -t 172.25.25.100:80 -s rr
rr表示調度算法

添加虛擬ip給服務器
ipvsadm -a -t 172.25.15.100:80 -r 172.25.15.5:80 -g
ipvsadm -a -t 172.25.15.100:80 -r 172.25.15.4:80 -g
在這裏插入圖片描述

注意:第一個ip爲虛擬ip,第二個ip爲你服務端主機的ip

ipvsadm -l 查看ipvsadm設置
同時打開兩臺服務器中的http服務
在這裏插入圖片描述

查看兩臺服務器中的http服務沒有問題,進行下一步

在兩臺主機和調度機中添加虛擬ip(也稱VIP)
以一臺主機爲例添加虛擬ip在這裏插入圖片描述

下載arptables火牆
yum install -y arptables
安裝完成後啓動arptables服務,啓動後添加訪問原則
host3
arptables -A INPUT -d 172.25.15.120 -j DROP
arptables -A OUTPUT -d 172.25.15.120 -j mangle --mangle-ip-s 172.25.15.4
這裏的172.25.15.4的ip爲自己當前主機的ip
systemctl restart arptables 重新啓動服務
host4
arptables -A INPUT -d 172.25.15.120 -j DROP
arptables -A OUTPUT -d 172.25.15.120 -j mangle --mangle-ip-s 172.25.15.5
這裏的172.25.15.5的ip爲自己當前主機的ip
systemctl restart arptables 重新啓動服務
arptables-save > /etc/sysconfig/arptables 將寫的策略追加到arptables中

開始做測試:

測試結果如下:

如果訪問的不是這樣的結果,那麼在你的/var/www/html/index.html下寫入你想讓顯示的內容,建議兩個服務器都編輯以便於區分

在這裏插入圖片描述

keepalived+lvs

Keepalived起初是爲LVS設計的,專門用來監控集羣系統中各個服務節點的狀態,它根據TCP/IP參考模型的第三、第四層、第五層交換機制檢測每個服務節點的狀態,如果某個服務器節點出現異常,或者工作出現故障,Keepalived將檢測到,並將出現的故障的服務器節點從集羣系統中剔除,這些工作全部是自動完成的,不需要人工干涉,需要人工完成的只是修復出現故障的服務節點。
 後來Keepalived又加入了VRRP的功能,VRRP(VritrualRouterRedundancyProtocol,虛擬路由冗餘協議)出現的目的是解決靜態路由出現的單點故障問題,通過VRRP可以實現網絡不間斷穩定運行,因此Keepalvied一方面具有服務器狀態檢測和故障隔離功能,另外一方面也有HAcluster功能。
 健康檢查和失敗切換是keepalived的兩大核心功能。所謂的健康檢查,就是採用tcp三次握手,icmp請求,http請求,udp echo請求等方式對負載均衡器後面的實際的服務器(通常是承載真實業務的服務器)進行保活;而失敗切換主要是應用於配置了主備模式的負載均衡器,利用VRRP維持主備負載均衡器的心跳,當主負載均衡器出現問題時,由備負載均衡器承載對應的業務,從而在最大限度上減少流量損失,並提供服務的穩定性。

在你的host1和host2安裝keepalive
yum install -y keepalive 安裝完成之後編輯配置文件(選擇一臺主機作爲主機)
vi /etc/keepalived/keepalived.conf 編輯配置文件(我讓我的host2爲master)

修改host2中的keepalive主配置文件

master是主機的意思
priority爲優先級
後面的這個ipaddress爲需要添加的ip是多少(vip)
在這裏插入圖片描述

real_serer爲服務器的IP
weight權重
TCP_CKECK,tcp檢測
connect_timeout 連接超時設置爲3秒
nb_get_retry 重啓
delay_before_retry 重啓前延時

在這裏插入圖片描述

編輯完成之後編輯副的keepalive,兩個keepalive差不多所以只需將host2上的scp到host1中即可

拷貝完成之後只需在副的keepalive中稍加修改

修改權重(priority)和state(狀態)

在這裏插入圖片描述

配置完成之後查看日誌

在這裏插入圖片描述

當我們停止我們host2上的keepalive時我們的ip會給host1
測試:

我們可以看到虛擬ip(vip)飄到了host1上

在這裏插入圖片描述

查看日誌可以看到host1現在成爲了master主機

在這裏插入圖片描述

當我們重新啓動host2上的keepalive時我們會發現資源又回到了host2上

在這裏插入圖片描述

注意:這裏的lb_kind要設置成DR

在這裏插入圖片描述

如果我們不想讓虛擬ip飄來飄去那麼我們需要修改狀態都爲backup

注意:此操作需要在優先級高的主機中做
修改狀態都爲BACKUP,添加nopreempt意思爲重新啓動是不搶佔資源

在這裏插入圖片描述

測試:

測試host2上現在keepalive狀態

虛擬ip現在在host2上

在這裏插入圖片描述

查看日誌

可以看出現在host2爲master主機

在這裏插入圖片描述

停止host2上的keepalive服務

查看host1上的keepalive

查看虛擬ip

在這裏插入圖片描述

查看日誌文件

可以看到現在host1爲master主機

在這裏插入圖片描述

啓動host2上的keepalive查看是否有搶佔資源問題

當host2上的keepalive服務啓動成功時不會去搶佔資源並且虛擬ip也沒有發生飄轉問題

在這裏插入圖片描述

本篇博客中出現的一切問題希望大家給出建議我會及時作出修改

end