【IT老齊075】高可用架構避免單點經典方案Keepalived+VIP
規避單點是高可用架構設定最基本的考量
概念
Keepalived
Keepalived是Linux輕量級別的高可用解決方案
Keepalived主要是透過虛擬路由幾餘 (VRRP) 來實現高可用功能,Keepalived部署和使用非常的簡單,所有配置只需要一個配置檔案即可以完成
虛擬路由元餘協議(Virtual Router Redundancy Protocol,簡稱VRRP)是由IETF提出的解決區域網中配置靜態閘道器出現單點失效現象的路由協議
VIP
VIP(虛擬IP)是虛擬的IP,與實際網路卡繫結的的IP地址不同,VIP在內網中被動態的對映到不同的MAC地址上,也就是對映到不同的機器裝置上,Keepalived透過“心跳機制”監測伺服器狀態,Master主節點當機則自動將“IP漂移”到Backup備機上實現高可用
配置檔案
主機和備機只有狀態和優先順序不同
故障轉移
如果是Keepalived自身產生問題Master無法傳送心跳包,Backup自動升級為Master,產生IP漂移繼續提供服務
當Master恢復後,Keepalived自動IP漂移回原Master。新Master自動降級回backup
健康檢查
Nginx指令碼
#!/bin/bash
#檢查nginx的pid檔案是否存在或者檢查埠
NGINXPID="/usr/install/nginx/logs/nginx.pid'
if [ ! -f $NGINXPID ];then
killall keepalived
fi
配置
vrrp_script check_nginx {
#nginx服務檢查指令碼
script "/etc/keepalived/nginx_check.sh"
interval 2 #觸發間隔
weight 1 #權重
}
vrrp_instance VI_1 (
state MASTER
interface ens33
virtual_router_id 51
#優先順序 (主高於備)
priority 100
advert_int 2
authentication {
auth_type PASS
auth_pass 123456
}
track_script {
check_nginx
}
virtual ipaddress {
192.168.237.5/24
}
}
互為主備
非搶佔模式
配置檔案新增
nopreempt
,使得預設的主服務在掉線再恢復後不搶佔備機的服務,減少ip漂移
腦裂
- 禁止
pkill -9 keepalived
,使用pkill keepalived
正常結束,正確回收虛擬ip - 解決網路問題後
systemctl restart network
- 提高區域網可用性