通常情況下,都是啟動2臺相同的業務系統,一台故障,另外一台自動接管。後端一般情況下我們使用集群,排除了單點故障造成的影響,前段7層負載的高可用就尤為重要了
keepalived使用vrrp協議,虛擬路由冗餘協議。依靠vmac和vip實現高可用技術方案,俗稱位址漂移。
搶占式高可用配置
1.實踐環境,配置實現虛ip轉移
狀態 ip 角色
節點1 10.0.0.5 master
節點2 10.0.0.6 backup
vip 10.0.0.3
安裝keepalived
yum install keepalived -y
配置master的keepalived
global_defs
vrrp_instance vi_1
virtual_ipaddress }
配置backup的keepalived
global_defs
vrrp_instance vi_1
virtual_ipaddress
}#注意事項優先順序要設定的不一樣,vip位址是虛擬出來的,當然公網位址要真實存在
非搶占式區別
1、兩個節點的state都必須配置為backup
2、兩個節點在vrrp層加上配置 nopreempt
3、其中乙個節點的優先順序必須要高於另外乙個節點的優先順序。
兩台伺服器都角色狀態啟用nopreempt後,必須修改角色狀態統一為backup,唯一的區分就是優先順序。
為keepalived嵌入指令碼執行
2.修改keepalived配置檔案
[root@lb01 conf.d]# cat /etc/keepalived/keepalived.conf
global_defs
#定義指令碼存放的位置
vrrp_script check_web
vrrp_instance vi_1
virtual_ipaddress
#呼叫並執行該指令碼
track_script
}
檢測nginx並試圖拉起的指令碼
#!/bin/bash
nginx_status=systemctl status nginx|awk '/active/ '
if [ ! $nginx_status == "active" ];then
systemctl start nginx
sleep 3
nginx_status=systemctl status nginx|awk '/active/ '
case $nginx_status in
active)
echo "start nginx succes,nginx is running"
;;inactive)
pkill keepalived
if [ $? -eq 0 ]; then
echo "nginx is down ,kill keepalived"
else
echo "keepalived cannot killed ,please go go"
fi;;
*)pkill keepalived
if [ $? -eq 0 ]; then
echo "nginx is down ,kill keepalived"
else
echo "keepalived cannot killed ,please go go"
fiesac
fi
備用機上,監控腦裂,並解決的指令碼
#!/bin/bash
vip=10.0.0.3
master_ip=10.0.0.5
date=date +%f--%x
ip=ifconfig eth0|awk '/inet /'
echo "$date$hostname$_spiltbarin,do kill suessed" >/scripts/spilt.txt
while true;
do
ping -c 2 -w 2 $master_ip &>/dev/null
result=$?
ip add|grep $vip &>/dev/null
if [ $result -eq 0 -a $? -eq 0 ];then
pkill keepalived &>/dev/null
echo "warining..spilt barin"
if [ $? -eq 0 ];then
mail -s " warning" "[email protected]" < /scripts/spilt.txt
else
mail -s "spiltbrain ,please go go go" "[email protected]" < /scripts/spilt.txt
fi
fi
sleep 5
ping -c 2 -w 2 $vip &>/dev/null
if [ ! $? -eq 0 ];then
systemctl start keepalived
echo "$vip laqi"
fidone
使用keepalived實現nginx高可用機制
在上面的篇章中使用了nginx 多個web伺服器,之後訪問nginx服務的ip就可以 訪問到真實的web伺服器,但是如果你的這台nginx伺服器死掉 宕機 此時所有有該nginx 的所有web容器將會無法訪問,此時需要配置多個nginx伺服器作為備用機,但是多個nginx伺服器之間需要乙個元件來進行...
使用Keepalived實現linux高可用集群
apt install libipset dev keepalived yuseradd s usr sbin nologin m g root keepalived scriptvim etc sysctl.conf 在末尾追加一行 net.ipv4.ip nonlocal bind 1vim e...
Keepalived 實現高可用
對於主負載均衡伺服器,修改配置檔案 vim etc keepalived keepalived.conf configuration file for keepalived global defs vrrp instance vi 1 virtual ipaddress 備用負載均衡伺服器 vim ...