LVS + Keepalived 高可用群集部署
keepalived是專門針對LVS設計的一款強大的輔助工具,主要用來提供故障切換(Failover)和健康檢查(Health Checking)功能——判斷LVS負載調度器、節點服務器的可用性,及時隔離並替換為新的服務器,當故障主機修復後將其重新加入群集。
Keepalived采用VRRP(Virtual Router Redundancy Protocl,虛擬路由冗余協議)熱備份協議,以軟件的方式實現Linux服務器的多機熱備功能。
實驗拓撲:
實驗環境:
序號 | 名稱 | 類型 | IP地址 |
---|---|---|---|
1 | keepalived 主 | centos7 | 192.168.10.10 |
2 | keepalived 從 | centos7 | 192.168.10.20 |
3 | 節點服務器 web1 | centos7 | 192.168.10.100 |
4 | 節點服務器 web2 | centos7 | 192.168.10.200 |
5 | 客戶機 client | centos7 | 192.168.10.15 |
實驗過程:
一、調度服務器
1、安裝環境部署、關閉防火墻、安全功能,兩臺調度服務器相同操作
[root@localhost ~]#yum install keepalived ipvsadm -y [root@localhost ~]#systemctl stop firewalld.service [root@localhost ~]#setenforce 0
2、修改網卡為僅主機模式,配置靜態IP,兩臺調度服務器相同操作,DR 1:192.168.10.10 DR 2:192.168.10.20
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost ~]#service network restart
3、開啟路由功能、關閉重定向功能,兩臺調度服務器相同操作
[root@localhost ~]#vi /etc/sysctl.conf
[root@localhost ~]#sysctl -p
4、配置虛擬IP,並開啟。註意:如果DR開啟虛擬網卡時報錯,可用 service network restart 重啟網卡,再次開啟即可成功。
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]#cp ifcfg-ens33 ifcfg-ens33:0
[root@localhost network-scripts]#vim ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.10.2
NETMASK=255.255.255.0
[root@localhost ~]#ifup ens33:0
DR 1:
DR 2:
5、編輯服務腳本,並執行,兩臺調度服務器相同操作
[root@localhost ~]# cd /etc/init.d/
[root@localhost ~]#vim dr.sh
[root@localhost ~]#chmod +x dr.sh
[root@localhost ~]#service dr.sh start
二、節點服務器
1、安裝環境部署,關閉防火墻、安全功能,兩臺節點服務器同樣操作
[root@localhost ~]#yum install httpd -y
[root@localhost ~]#systemctl stop firewalld.service
[root@localhost ~]#setenforce 0
2、開啟網頁服務,並設置測試頁面,web1和web2測試頁面加以區分
[root@localhost ~]#systemctl start httpd.service
[root@localhost ~]#cd /var/www/html/
[root@localhost html]#echo "this is aaa" > index.html #web1
[root@localhost html]#echo "this is bbb" > index.htm #web2
3、修改網卡為僅主機模式,web1配置靜態IP為192.168.10.100,web2:192.168.10.200,並配置回環網卡的虛擬IP
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost ~]#service network restart
[root@localhost ~]#cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]#cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]#vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.10.2
NETMASK=255.255.255.0
ONBOOT=yes
web1:
web2:
4、編輯服務腳本,並執行,兩臺節點服務器相同操作
[root@localhost ~]#cd /etc/init.d/
[root@localhost ~]#vim web.sh
[root@localhost ~]#chmod +x web.sh
[root@localhost ~]#service web.sh start
[root@localhost ~]#ifup lo:0
5、用火狐瀏覽器進行自測:firefox "http://127.0.0.1/" & ,訪問後重啟腳本服務
web1:
web2:
*到此部分,節點服務器服務部署完成,DR調度服務器配置完成,便可用客戶機檢測:通過訪問調度服務器虛擬IP,可以訪問到web1、web2的測試頁面
三、在兩臺調度服務器上配置keepalived服務
1、在192.168.10.10上配置主服務器
[root@localhost ~]#cd /etc/keepalived/
[root@localhost ~]#vim keepalived.conf
2、開啟服務,並查看狀態
[root@localhost ~]#systemctl start keepalived
[root@localhost ~]#systemctl status keepalived
3、在192.168.10.20上配置備用服務器
[root@localhost ~]#cd /etc/keepalived/
[root@localhost ~]#vim keepalived.conf
4、開啟服務,並查看狀態
5、測試,如果客戶機無法訪問,此時只需要將其防火墻重新關閉,並重啟相關服務即可。
訪問到網頁後,down掉keepalived的主服務器,再次訪問,如果成功,說明熱備冗余設置成功。
到此實驗已全部完成,其中報錯較多,可以試著用重啟服務等方式進行調整,並註意是否是虛擬網卡的問題!
LVS + Keepalived 高可用群集部署