功能:
lvs+keepalived高可用負載均衡集羣中:
·keepalived負責後端real server健康狀態檢查
如果一臺real server服務出現故障,則會從集羣服務中剔除,等恢復之後再自動加入到集羣。
·keepalived負責負載均衡器(directory server)高可用
A和B兩臺虛擬機裝lvs+keepalived(主)和lvs+keepalived(備),但是對外表現爲一個虛擬IP,主服務器會發送消息給備服務器,當備服務器收不到消息的時候,認爲主出現故障,然後接管虛擬IP繼續提供服務,如果主節點恢復,則再次接管虛擬IP,提供服務。
原理:
·使用layer3工作時,keepalived定期向服務器羣組中發送icmp的數據包,如果某臺服務器IP地址沒有激活,則認爲失效,並剔除(典型例子就是 這臺服務器被非法關機)
·使用layer4工作時,比如是web 80端口的負載均衡,keepalived檢測後端服務器羣組中的80端口有沒有啓動,如果沒有,則認爲失效,並剔除
·使用layer7工作時,根據用戶設定,如果與用戶設定的不符,則認爲失效,並剔除
三個模塊:
·core:負責主進程的啓動、維護,全局配置文件的加載和解析
·health_check:負載健康狀態檢查
·vrrp:實現vrrp協議
實驗:
·主節點和備節點把keepalived啓動,web1和web2啓動httpd,
架構設計:
利用keepalived來實現lvs的Directory server的高可用,再利用lvs和keepalived的高可用,來實現Web服務的負載均衡!架構圖如下
本文中的keepalived是檢測Real server的健康狀態以及負載均衡器的主和備之間的故障轉移。
檢測real server健康狀態:如果有一臺web服務器宕機或者出現故障,keepalived會檢測到,並從集羣羣組中剔除,等恢復後,再自動添加進來
負載均衡器故障轉移:一個web服務器至少需要兩臺keepalived,一臺爲主節點(Master),一臺爲備節點(backup),但對外表現爲一個虛擬IP,主服務器會發送組播,如果備服務器收不到vrrp包就認定主服務器出現故障,就會接管虛擬IP,繼續對外提供服務,從而保證了高可用性。
搭建:
重點 時間同步
各個節點能互相解析
(1)準備環境
1.主備節點都裝lvs和keepalived
2.web1和web2都裝httpd
3.關閉防火牆
4.關閉SELinux
5.web1和web2都要抑制ARP
(2)主節點
(3)備節點
(4)web1和web2
測試
測試健康檢查:主節點和備節點啓動keepalived,web1和web2啓動httpd,主節點上查看ipvs規則,能看到web1和web2,ip addr 查看主節點vip,停止web1的httpd服務,主節點上再次查看ipvs規則,web1規則消失,測試成功
測試故障轉移:主節點和備節點啓動keepalived,web1和web2啓動httpd。停止主節點上的keepalived,查看備節點是否接管VIP,繼續提供web服務,如果能,測試成功
測試故障恢復:主節點出現故障,keepalived出現故障停止,備節點接管VIP,繼續提供web服務。如果主節點恢復,重新啓動keepalived,查看vip是否漂移回來,主節點接管備節點服務,繼續提供服務。