keepalived高可用lvs集群,主/备和主/主模型
利用keepalived高可用lvs集群,主/備和主/主;
vrrp_script高可用雙主nginx;
keepalived主備:lvs-dr工作模型
網(wǎng)絡(luò)搭建:
在前端2臺調(diào)度器:
DR1:172.18.11.111
DR2:172.18.11.112
VIP:172.18.11.7
后端2臺web服務(wù)器,運行nginx;
RS1:172.18.11.11
RS2:172.18.11.12
搭建web服務(wù)器:
提供簡單的測試頁面,以便容易觀測到哪臺RS被調(diào)度響應(yīng):
在RS1上:
]#?yum -y install nginx
]#?systemctl start nginx.service
]#?cd /usr/share/nginx/html/
]#?cp index.html{,.bak}
]#?vim index.html
<h1> RS2-172.18.11.11</h1>
在RS2上:
]#?yum -y install nginx
]#?systemctl start?nginx.service
]#?cd /usr/share/nginx/html/
]#?cp index.html{,.bak}
]#?vim index.html
<h1> RS2-172.18.11.12</h1>
在RS1上為方便設(shè)置內(nèi)核參數(shù),編寫自動設(shè)置腳本:
]# vim skp.sh
]# chmod +x skp.sh
]# ./skp.sh start
查看內(nèi)核參數(shù),確保生效:
]# cat /proc/sys/net/ipv4/conf/all/arp_ignore
]# cat /proc/sys/net/ipv4/conf/all/arp_announce
此腳本傳遞給RS2:
]# scp skp.sh root@172.18.11.12:/root
在RS2主機運行:
]# ./skp.sh start
查看是否arp設(shè)置成功
]# cat /proc/sys/net/ipv4/conf/all/arp_ignore
]# cat /proc/sys/net/ipv4/conf/all/arp_announce
在兩個調(diào)度器上安裝keepalived程序并編輯配置文件
]# yum -y install keepalived
分別編輯兩個調(diào)度器keepalived配置文件
DR1配置:
]# vim /etc/keepalived/keepalived.conf
DR2配置:
只需修改state為備用和優(yōu)先級即可,其它都保存不變:
]# vim /etc/keepalived/keepalived.conf
在兩臺調(diào)度器上安裝ipvsadm命令工具;
安裝ipvsadm并查看lvs集群:
]# yum -y install ipvsadm
]# ipvsadm -Ln
顯示內(nèi)容:
可在DR1查看接口上的VIP,已經(jīng)獲得:
找一臺主機多次執(zhí)行測試:
]# curl http://172.18.11.7
會發(fā)現(xiàn),訪問請求是由兩臺RS交替響應(yīng)的服務(wù);即:
使DR1掉線即手動停止keepalived服務(wù),觀察DR2獲得VIP負(fù)責(zé)集群調(diào)度;也可同時手動關(guān)閉一臺RS上的web服務(wù);仍能正常請求web服務(wù);
這就是keepalived基于主備工作模式健康狀態(tài)檢測,來提供高可用nginx的lvs集群服務(wù);
再做keepalived的主/模式主,來提供高可用nginx的lvs集群服務(wù);
只不過就是兩個vrrp實例,一個是A的主B的備,一個是B的主A的備;
DR1:172.18.11.111
DR2:172.18.11.112
VIP1:172.18.11.7
VIP2:172.18.11.77
RS1:172.18.11.11
RS2:172.18.11.12
在DR1上配置keepalived:
注意:centos7中可能沒有killall命令需要安裝psmisc程序包,才能使用;
]# yum -y install psmisc
在DR2上配置keepalived:
編輯腳本通知機制:
配置RS:
在RS1上為方便設(shè)置內(nèi)核參數(shù),編寫自動設(shè)置腳本:
注意:此處有一大坑!要在兩臺RS上分別添加lo:1的本機路由條目:
以便實現(xiàn)172.18.11.77能夠被訪問調(diào)度:
]# ifconfig lo:1 172.18.11.77 netmask 255.255.255.255 broadcast 172.18.11.77
]# route add -host 172.18.11.77 dev lo:1
]# chmod +x skp.sh
]# ./skp.sh start
查看內(nèi)核參數(shù),確保生效:
]# cat /proc/sys/net/ipv4/conf/all/arp_ignore
]# cat /proc/sys/net/ipv4/conf/all/arp_announce
此腳本傳遞給RS2:
]# scp skp.sh root@172.18.11.12:/root
在RS2主機運行:
]# ./skp.sh start
查看是否arp設(shè)置成功
]# cat /proc/sys/net/ipv4/conf/all/arp_ignore
]# cat /proc/sys/net/ipv4/conf/all/arp_announce
兩臺DR上的keepalived都啟動,兩臺RS上的web服務(wù)都啟動,分別查看兩臺DR的ip地址:
分別獲取到不同VIP,即DR1是VIP1的主用,是VIP2的備用,DR2是VIP1的備用,是VIP2的主用;
測試:訪問VIP1和VIP2
可繼續(xù)測試,手動停止DR1上的keepalived,查看DR2上的ip地址:
在另一臺主機curl測試兩個VIP:在一臺調(diào)度器掉線時,對于兩個VIP提供的服務(wù),使用curl測試兩個VIP,沒有任何影響;
同時,再手動停止RS2的nginx服務(wù),在另一臺主機curl測試兩個VIP:
此時,一臺調(diào)度器掉線,一臺RS掉線,仍能能保持兩個VIP提供客戶端的服務(wù);
實現(xiàn)了keepalived高可用lvs-dr集群調(diào)度,雙主nginx的應(yīng)用。
轉(zhuǎn)載于:https://blog.51cto.com/linsj/1774560
總結(jié)
以上是生活随笔為你收集整理的keepalived高可用lvs集群,主/备和主/主模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python通过LDAP验证、查找用户(
- 下一篇: 为html.EditorFor添加样式