其實KeepAlived在我之前關(guān)于nginx的學(xué)習(xí)帖子【nginx 高可用HA keepalived學(xué)習(xí)】就已經(jīng)講到過使用了,這里就算是重復(fù)的講一下吧,另:在上幾篇帖子中是有一個安裝文檔的,朋友們需要是可以去找一下
1.介紹



2、Keepalived安裝
PS:下載地址:[http://www.keepalived.org/download.html](http://www.keepalived.org/download.html)
//安裝所需軟件包
yum install -y openssl openssl-devel
//下載
wget http://www.keepalived.org/software/keepalived-1.2.18.tar.gz
//解壓、編譯、安裝
tar -zxvf keepalived-1.2.18.tar.gz -C /usr/local/
cd keepalived-1.2.18/ && ./configure --prefix=/usr/local/keepalived
make && make install
//將keepalived安裝成Linux系統(tǒng)服務(wù),因為沒有使用keepalived的默認安裝路徑(默認路徑:/usr/local),安裝完成之后,需要做一些修改工作
//首先創(chuàng)建文件夾,將keepalived配置文件進行復(fù)制:
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
//然后復(fù)制keepalived腳本文件:
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/sbin/keepalived /usr/sbin/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
//可以設(shè)置開機啟動:chkconfig keepalived on,到此我們安裝完畢!
chkconfig keepalived on
3、Keepalived配置
PS:修改keepalived.conf配置文件
vim /etc/keepalived/keepalived.conf
PS: 79節(jié)點(Master)配置如下
! Configuration File for keepalived
global_defs {
router_id bhz79 ##標(biāo)識節(jié)點的字符串,通常為hostname
}
vrrp_script chk_haproxy {
script "/etc/keepalived/haproxy_check.sh" ##執(zhí)行腳本位置
interval 2 ##檢測時間間隔
weight -20 ##如果條件成立則權(quán)重減20
}
vrrp_instance VI_1 {
state MASTER ## 主節(jié)點為MASTER,備份節(jié)點為BACKUP
interface eth0 ## 綁定虛擬IP的網(wǎng)絡(luò)接口(網(wǎng)卡),與本機IP地址所在的網(wǎng)絡(luò)接口相同(我這里是eth0)
virtual_router_id 79 ## 虛擬路由ID號(主備節(jié)點一定要相同)
mcast_src_ip 192.168.11.79 ## 本機ip地址
priority 100 ##優(yōu)先級配置(0-254的值)
nopreempt
advert_int 1 ## 組播信息發(fā)送間隔,倆個節(jié)點必須配置一致,默認1s
authentication { ## 認證匹配
auth_type PASS
auth_pass bhz
}
track_script {
chk_haproxy
}
virtual_ipaddress {
192.168.11.70 ## 虛擬ip,可以指定多個
}
}
PS: 80節(jié)點(backup)配置如下
! Configuration File for keepalived
global_defs {
router_id bhz80 ##標(biāo)識節(jié)點的字符串,通常為hostname
}
vrrp_script chk_haproxy {
script "/etc/keepalived/haproxy_check.sh" ##執(zhí)行腳本位置
interval 2 ##檢測時間間隔
weight -20 ##如果條件成立則權(quán)重減20
}
vrrp_instance VI_1 {
state BACKUP ## 主節(jié)點為MASTER,備份節(jié)點為BACKUP
interface eno16777736 ## 綁定虛擬IP的網(wǎng)絡(luò)接口(網(wǎng)卡),與本機IP地址所在的網(wǎng)絡(luò)接口相同(我這里是eno16777736)
virtual_router_id 79 ## 虛擬路由ID號(主備節(jié)點一定要相同)
mcast_src_ip 192.168.11.80 ## 本機ip地址
priority 90 ##優(yōu)先級配置(0-254的值)
nopreempt
advert_int 1 ## 組播信息發(fā)送間隔,倆個節(jié)點必須配置一致,默認1s
authentication { ## 認證匹配
auth_type PASS
auth_pass bhz
}
track_script {
chk_haproxy
}
virtual_ipaddress {
192.168.1.70 ## 虛擬ip,可以指定多個
}
}
4、執(zhí)行腳本編寫
PS:添加文件位置為/etc/keepalived/haproxy_check.sh(79、80兩個節(jié)點文件內(nèi)容一致即可)
#!/bin/bash
COUNT=`ps -C haproxy --no-header |wc -l`
if [ $COUNT -eq 0 ];then
/usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg
sleep 2
if [ `ps -C haproxy --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
5、執(zhí)行腳本賦權(quán)
PS:haproxy_check.sh腳本授權(quán),賦予可執(zhí)行權(quán)限.
chmod +x /etc/keepalived/haproxy_check.sh
#6、啟動keepalived
PS:當(dāng)我們啟動倆個haproxy節(jié)點以后,我們可以啟動keepalived服務(wù)程序:
//啟動兩臺機器的keepalived
service keepalived start | stop | status | restart
//查看狀態(tài)
ps -ef | grep haproxy
ps -ef | grep keepalived
7、高可用測試
PS:vip在27節(jié)點上

PS:27節(jié)點宕機測試:停掉27的keepalived服務(wù)即可。

PS:查看28節(jié)點狀態(tài):我們發(fā)現(xiàn)VIP漂移到了28節(jié)點上,那么28節(jié)點的haproxy可以繼續(xù)對外提供服務(wù)!
