1.linux系統中配置四臺虛擬機,主機名可以自己定義
2.給四臺主機配置和ip和dns地址解析,是的四臺主機可ping通
可以參考以下配置,由於我的母盤ip爲1。所以我的ip是從2開始
host1
host2
host3
host4
做完之後在你的主機中做dns地址解析
vim /etc/hosts
配置本地yum源,關閉firewalld和selinux
lvs實現http的負載均衡
dr:直接路由模式
tun:隧道模式
nat:路由轉發模式
fullnat模式
性能比較:DR>TUN>NAT>FULLNAT
操作步驟:
安裝所需要的軟件
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設計的,專門用來監控集羣系統中各個服務節點的狀態,它根據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)
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服務
查看虛擬ip
查看日誌文件
可以看到現在host1爲master主機
當host2上的keepalive服務啓動成功時不會去搶佔資源並且虛擬ip也沒有發生飄轉問題