lvs负载均衡—高可用集群(keepalived)
基本概念:
什么是Keepalived呢,keepalived觀其名可知,保持存活,在網(wǎng)絡(luò)里面就是保持在線了,也就是所謂的高可用或熱備,用來防止單點故障(單點故障是指一旦某一點出現(xiàn)故障就會導(dǎo)致整個系統(tǒng)架構(gòu)的不可用)的發(fā)生,那說到keepalived時不得不說的一個協(xié)議就是VRRP協(xié)議,可以說這個協(xié)議就是keepalived實現(xiàn)的基礎(chǔ)。
VRRP( Virtual Router Redundancy Protocol )協(xié)議:
虛擬路由冗余協(xié)議(Virtual Router Redundancy Protocol,簡稱VRRP)是由IETF提出的解決局域網(wǎng)中配置靜態(tài)網(wǎng)關(guān)出現(xiàn)單點失效現(xiàn)象的路由協(xié)議,Keepalived就是巧用VRRP協(xié)議來實現(xiàn)高可用性(HA)的。
1.用于實現(xiàn)路由器冗余的協(xié)議
2.解決靜態(tài)路由單點故障問題
3.通過一種競選(election)協(xié)議來實現(xiàn)虛擬路由器的功能
LVS提供負載均衡,keepalived提供健康檢查,故障轉(zhuǎn)移,提高系統(tǒng)的可用性! 采用這樣的架構(gòu)以后,很容易對現(xiàn)有系統(tǒng)進行擴展,只要在后端添加或者減少realserver,更改lvs的配置文件,就能實現(xiàn)無縫配置變更!
實驗搭建:
server1:lvs調(diào)度服務(wù)器DS1:192.168.13.111
server2:后端服務(wù)器RS1:192.168.13.112
server3:后端服務(wù)器RS2:192.168.13.113
server4:lvs調(diào)度服務(wù)器DS2:192.168.13.114
VIP:192.168.13.100
1 . 在server1與server4上分別解壓keepalived并編譯安裝:
tar zxf keepalived-2.0.6.tar.gz # 解壓 yum install gcc openssl-devel -y # 解決依賴 cd keepalived-2.0.6 ./configure --prefix=/usr/local/keepalived --with-init=systemd # 編譯 make &&make install # 安裝
裝好之后會有這個keepalived目錄,
其實不用兩邊都這么裝,麻煩,一邊裝好之后直接scp傳過去就好了。
2 . 配置啟動配置文件 調(diào)度器(server1和server4)都進行相同操作:
ln -s /usr/local/keepalived/etc/sysconfig/keepalived/etc/sysconfig ##配置文件,腳本都做成軟鏈接 ln -s /usr/local/keepalived/etc/keepalived/ /etc/ ln -s /usr/local/keepalived/sbin/keepalived /sbin/3 . 配置keepalived:
編寫主節(jié)點server1的配置文件
cd /etc/keepalived vim keepalived.conf global_defs {notification_email {root@localhost #節(jié)點宕機了將會接收到異常郵件的主機}notification_email_from keepalived@localohost #郵件發(fā)送人smtp_server 127.0.0.1 #發(fā)送的服務(wù)器smtp_connect_timeout 30 #指定連接超時時間router_id LVS_DEVELvrrp_skip_check_adv_addrvrrp_garp_interval 0vrrp_gna_interval 0 }vrrp_instance VI_1 {state MASTER #主節(jié)點表示interface ens33 # 網(wǎng)卡名virtual_router_id 13priority 100 #權(quán)重advert_int 1 #檢查的間隔1sauthentication {auth_type PASS #認證方式auth_pass 1111 #認證的密碼}virtual_ipaddress {192.168.13.100} } virtual_server 192.168.13.100 80 {delay_loop 6 #連接失敗六次之后,發(fā)送郵件lb_algo rr #lvs調(diào)度算法lb_kind DR #lvs該工作方式protocol TCP # 端口real_server 192.168.13.112 80 {TCP_CHECK {weight 1connect_port 80connect_timeout 3}}real_server 192.168.13.113 80 {TCP_CHECK {weight 1connect_port 80connect_timeout 3}} }編好之后
systemctl start keepalived
systemctl enable keepalived
再給server4 scp 過去
scp keepalived.conf root@192.168.13.114:/etc/keepalived/在server4端只需要
state BACKUP priority 50 ##修改這兩個選項改好之后
systemctl start keepalived
systemctl enable keepalived
3 . 真實服務(wù)器設(shè)置
1). 安裝httpd 啟動設(shè)置訪問頁面
注意:該處為了驗證負載均衡的效果,后端真實服務(wù)器設(shè)置不同的訪問內(nèi)容,明顯標(biāo)示內(nèi)容來自不同的后端服務(wù)器。
2). 添加VIP到各自的物理網(wǎng)卡中
ip addr add 192.168.13.100/24 dev ens33 # 臨時添加ip到eth0網(wǎng)卡3). 設(shè)置arptable策略,解決將用戶所有針對VIP的請求發(fā)送到DS 而不是RS
yum install arptables -y # 安裝管理工具 arptables -A INPUT -d 192.168.13.100 -j DROP arptables -A OUTPUT -s 192.168.13.100 -j mangle --mangle-ip-s 192.168.13.112在另一端RS修改記著ip
4 . 測試:
1). 設(shè)置完成真實服務(wù)器之后,在兩個調(diào)度器上查看ipvsadm 全部自動生成負載均衡策略:
2). 使用客戶端主機測試:
負載均衡正常
3 ). 關(guān)閉真實服務(wù)器172.25.13.140的http的服務(wù)。模擬該服務(wù)器故障,測試該真實服務(wù)器被踢除出列表,當(dāng)服務(wù)正常的時候會自動添加到列表中
當(dāng)打開服務(wù)時,恢復(fù)正常
4 ) . 目前負載均衡服務(wù)器工作在主服務(wù)器,主服務(wù)器上會添加vip,關(guān)閉主服務(wù)器的keepalived,模擬負載均衡主服務(wù)器異常,這時候會切換到由服務(wù)器提供負載均衡服務(wù),并且vip會主動漂移到副服務(wù)器。
主服務(wù)器
負載均衡主服務(wù)器異常,將會由副服務(wù)器提供服務(wù),vip會自動漂移到副服務(wù)器:
客戶端測試服務(wù)正常:
總結(jié)
以上是生活随笔為你收集整理的lvs负载均衡—高可用集群(keepalived)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: anaconda如何更改环境配置_手把手
- 下一篇: python中xy坐标如何从十个中找到最