LVS-DR+Keepalived 高可用群集
LVS 實際上相當于基于IP地址的虛擬化應用, 為基于IP地址和內容請求分發的負載均衡提出了一種高效的解決方法
Keepalived
1、支持故障自動切換(Failover)
2、支持節點健康狀態檢查(Health Checking)
判斷LVS負載調度器、節點服務器的可用性,當master主機出現故障及時切換到backup節點保證業務正常,當 master 故障主機恢復后將其重新加入群集并且業務重新切換回 master 節點。
Keepalived實現原理剖析
1、keepalived采用VRRP熱備份協議實現Linux 服務器的多機熱備功能
2、VRRP(虛擬路由冗余協議)是針對路由器的一種備份解決方案。
3、由多臺路由器組成一個熱備份組,通過共用的虛擬IP地址對外提供服務
4、每個熱備組內同時只有一臺主路由器提供服務,其他路由器處于冗余狀態
5、若當前在線的路由器失效,則其他路由器會根據設置的優先級自動接替虛擬IP地址,繼續提供服務
LVS+Keepalived 高可用群集部署
實驗環境
主機 操作系統 IP地址 軟件/安裝包/工具
主負載調度器(Director1)CentOS7ens33:192.168.172.10ipvsadm、keepalived
備負載調度器(Director2)CentOS7ens33:192.168.172.20ipvsadm、keepalived
Web節點服務器1 CentOS7ens33:192.168.172.30lo:0 (VIP)192.168.172.100 rpcbind、httpd
Web節點服務器2CentOS7ens33:192.168.172.40lo:0 (VIP):192.168.172.100 rpcbind、httpd
客戶機Windows10192.168.172.88
1、配置節點服務器
Web節點服務器1:192.168.172.30 lo:0 (VIP):192.168.172.100
Web節點服務器2:192.168.172.40 lo:0 (VIP):192.168.172.100
配置虛擬 IP 地址(VIP:192.168.172.100)
兩臺web節點服務器都要配置
#設置臨時的路由,重啟失效
route add -host 192.168.172.100 dev lo:0#開機自動添加路由
vim /etc/rc.local /sbin/route add -host 192.168.172.100 dev lo:0 chmod +x /etc/rc.d/rc.local調整內核的ARP 響應參數
阻止更新 VIP 的MAC 地址,避免發生沖突
vim /etc/sysctl.conf net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2sysctl -p編輯網頁主頁
Web節點服務器1:192.168.172.30
Web節點服務器2:192.168.172.40
操作和Web1一樣安裝httpd服務
echo 'this is yyy web!' > /var/www/html/index.html2、配置負載調度器
主負載調度器:192.168.172.10
備負載調度器:192.168.172.20
關防火墻,加載ip_vs模塊
systemctl stop firewalld.service systemctl disable firewalld.service setenforce 0modprobe ip_vs cat /proc/net/ip_vs yum -y install ipvsadm調整 proc 響應參數
vim /etc/sysctl.conf net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.ens33.send_redirects = 0sysctl -p配置負載分配策略
ipvsadm-save > /etc/sysconfig/ipvsadm systemctl start ipvsadm.service ipvsadm -C#這里-t指定的虛擬地址為本機ens33網卡ip
ipvsadm -A -t 192.168.172.10:80 -s rr ipvsadm -a -t 192.168.172.10:80 -r 192.168.172.30:80 -g ipvsadm -a -t 192.168.172.10:80 -r 192.168.172.40:80 -g ipvsadmipvsadm -ln 配置keeplived192.168.172.10 or 192.168.172.20yum -y install keepalived cd /etc/keepalived/ cp keepalived.conf keepalived.conf.bak pvsadm -lnglobal_defs { 定義全局參數 router_id LVS_01 指定服務器(路由器)的名稱,主備服務器名稱須不同,主為LVS_01,備為LVS_02 #vrrp_strict } vrrp_instance VI_1 { 定義VRRP熱備實例參數 state MASTER 指定熱備狀態,主為MASTER,備為BACKUP interface ens33 指定承載vip地址的物理接口 virtual_router_id 10 指定虛擬路由器的ID號,每個熱備組保持一致 priority 100 指定優先級,數值越大優先級越高,主為100,備為90 advert_int 1 通告間隔秒數(心跳頻率) authentication { 定義認證信息,每個熱備組保持一致 auth_type PASS 認證類型 auth_pass 123456 指定驗證密碼,主備服務器保持一致 } virtual_ipaddress { 指定群集vip地址 192.168.172.100 } } virtual_server 192.168.172.100 80 { 指定虛擬服務器地址(VIP)、端口,定義虛擬服務器和Web服務器池參數 delay_loop 6 健康檢查的間隔時間(秒) lb_algo rr 指定調度算法,輪詢(rr) lb_kind DR 指定群集工作模式,直接路由(DR) persistence_timeout 50 連接保持時間(秒) protocol TCP 應用服務采用的是TCP協議 real_server 192.168.172.30 80 { 指定第一個Web節點的地址、端口 weight 1 節點的權重TCP_CHECK { 添加以下健康檢查方式connect_port 80 添加檢查的目標端口connect_timeout 3 添加連接超時(秒)nb_get_retry 3 添加重試次數delay_before_retry 4 添加重試間隔} } real_server 192.168.172.40 80 { 添加第二個 Web節點的地址、端口weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 4} } }systemctl start keepalived #查看虛擬網卡vip ip addr show dev ens33
3、測試結果
這邊我們將192.168.172.10主負載調度器將keepalived服務關閉
這邊我們將192.168.172.10主負載調度器將keepalived服務關閉
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的LVS-DR+Keepalived 高可用群集的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nginx优化服务
- 下一篇: 一、MySQL日志与备份