? ? ? ? Keepalived的設計目標是構建高可用的LVS負載均衡群集,可以調用ipvsadm工具來創建虛擬服務器,管理服務器池,而不僅僅用作雙機熱備。使用Keepalived構建LVS群集更加簡便易用,主要優勢體現在:對LVS負責調度器實現熱備切換,提高可用性;對服務器池中的節點進行健康檢查,自動移除失效節點,恢復后再重新加入。
? ? ? ? 在基于LVS+Keepalived實現的LVS群集結構中,至少包括兩臺熱備的負載調度器,兩臺以上的節點服務器。
? ? ? ? ?使用Keepalived構建LVS群集時,也需要用到ipvsadm管理工具。但大部分工作會由Keepalived自動完成,不需要手動執行ipvsadm(除了查看和監控群集以外)。下面主要講解Keepalived的服務器池設置,關于NFS共享服務的配置、Keepalived的熱備配置等在此不再詳細述。
配置過程:
1.配置主調度器
(1)全局配置,熱備配置
? ? ? ? 首先為主,從調度器實現熱備功能,漂移地址使用LVS集群的地址
?(2)web服務地址池配置
? ? ? ? 在Keepalived的熱備配置基礎上添加“virtual_server VIP 端口 {……}”區段來配置虛擬服務器,主要包括對負載調度算法,群集工作模式,健康檢測間隔,真實服務器地址等參數的設置。
?(3)重新啟動Keepalived服務
systemctl restart Keepalived
(4)?主服務器內核參數的配置
[root@localhost ~]# vi /etc/sysctl.conf
在末尾添加:
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@localhost ~]# sysctl -p
?2.配置從調度器
(1)從調度器的配置和主調度器的配置大致一致,只需要調整router_id(從調度器名稱),start(從調度器的熱備狀態),priority(優先級)參數即可。配置完成后重啟Keepalived服務。
?(2)從服務器內核參數的配置
[root@localhost ~]# vi /etc/sysctl.conf
在末尾添加:
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@localhost ~]# sysctl -p
?3.配置web節點服務器
(1)web網絡設置
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vi ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.10.172
NETMASK=255.255.255.255
ONBOOT=yes[root@localhost network-scripts]# systemctl restrt network
[root@localhost network-scripts]# vi /etc/rc.local
/sbin/route add -host 192.168.10.172 dev lo:0[root@localhost network-scripts]# route add -host 192.168.10.172 dev lo:0
(2)在web節點服務器上安裝httpd
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# vi /var/www/html/index.html
test web01
(3)內核參數的設置
[root@localhost ~]# vi /etc/sysctl.confnet.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2net.ipv4.conf.default.arp_ignore = 1net.ipv4.conf.default.arp_announce = 2net.ipv4.conf.lo.arp_ignore = 1net.ipv4.conf.lo.arp_announce = 2
(4)開啟httpd服務
[root@localhost ~]# systemctl start httpd
4.測試LVS+Keepalived高可用性
1:用客戶端訪問網站
http://192.168.10.172
刷新頁面并觀察網頁的變化
2:在客戶端使用腳本測試
[root@localhost ~]# for i in $(seq 10); do curl http://192.168.10.172??;done
3:注意事項
(1)生產環境中可以使用NFS服務器保證網站代碼的一致性,在測試環境中為了觀察效果,web服務器池中的網站代碼可以不一樣,更加便于觀察實驗效果。
(2)測試計算機不要使用master調度器,在master調度器上訪問VIP時,調度器不會將訪問的請求調度到web服務器,而是自己嘗試解析;在web服務器上測試時只能訪問到自己的網頁,無法實現調度。所以客戶端一定要使用獨立的測試計算機,或者使用處于BACKUP狀態的調度器。