簡單快速搭建LVS+Keepalived 叢集
LVS+Keepalived 群集
Keepalived起初是專門針對LVS設計的一款強大的複製工具。
主要用來提供故障切換和健康檢查功能——判斷LVS負載排程器、節點伺服器的可用性,及時隔離並替換新的伺服器。
測試環境:
排程器兩臺(雙機熱備)IP
192.168.30.30
192.168.30.31
Web伺服器 IP
192.168.30.33
192.168.30.34
安裝所需軟體
centos7系統中已經自帶modprobe ip_vs 只需開啟即可使用
modprobe ip_vs #載入IP_vs模組
yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel ipvsadm #安裝編譯工具、外掛和ipvsadm
在兩臺排程器上編譯安裝 keepalived
tar xf keepalived-1.4.2.tar.gz
cd keepalived-1.4.2
./configure --prefix=/
make && make install
cp keepalived/etc/init.d/keepalived /etc/init.d/ #加入系統管理服務
[[email protected] keepalived-1.4.2]# systemctl enable keepalived #設為開機自啟
另一臺安裝方式相同
修改第一臺master keepalived.conf檔案
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_01 #本伺服器的名稱
}
vrrp_instance VI_1 { #定義VRRP熱備例項
state MASTER #熱備狀態,MASTER表示主伺服器,BACKUP表示從伺服器
interface ens33 #承載VIP地址的物理介面
virtual_router_id 51 #虛擬路由器的ID號,每個熱備組保持一致
priority 110 #優先順序,數值越大優先順序越高
advert_int 1 #通告間隔秒數(心跳頻率)
authentication { #熱備認證資訊,每個熱備組保持一致
auth_type PASS #認證型別
auth_pass 6666 #密碼字串
}
virtual_ipaddress { #指定漂移地址(VIP),可以有多個
192.168.30.100
}
}
virtual_server 192.168.30.100 80 { #虛擬伺服器地址(VIP)、埠
delay_loop 6 #健康檢查的間隔時間(秒)
lb_algo rr #輪詢(rr)排程演算法
lb_kind DR #直接路由(DR)群集工作模式
persistence_timeout 60 #連線保持時間(秒)
protocol TCP #應用伺服器採用的是TCP協議
real_server 192.168.30.33 80 { #第一個Web伺服器節點的地址、埠
weight 1 #節點的權重
TCP_CHECK { #健康檢查方式
connect_port 80 #檢查的目標埠
connect_timeout 3 #連線超時(秒)
nb_get_retry 3 #重試次數
delay_before_retry 3 #重試間隔
}
}
real_server 192.168.30.34 80 { #第二個Web伺服器節點的地址、埠
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
[[email protected] keepalived-1.4.2]# service keepalived start
[[email protected] keepalived-1.4.2]# ip addr show dev ens33 //驗證綁定了的虛擬地址
備服務配置keepalived.conf檔案
! Configuration File for keepalived
global_defs {
router_id LVS_02
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 105
advert_int 1
authentication {
auth_type PASS
auth_pass 6666
}
virtual_ipaddress {
192.168.30.100
}
}
virtual_server 192.168.30.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 60
protocol TCP
real_server 192.168.30.33 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.30.34 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
啟動服務
配置主伺服器LVS
[[email protected] keepalived-1.4.2]# modprobe ip_vs #載入ip_vs模組
配置主伺服器LVS
備伺服器相同
web伺服器也要虛擬出192.168.30.100這個虛擬VIP
ifconfig lo:0 192.168.30.100 broadcast 192.168.30.100 netmask 255.255.255.255 up
route add -host 192.168.30.100 dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p 重新整理
檢視網絡卡狀態
另一臺web伺服器配置相同