1. 程式人生 > >keepalive高可用

keepalive高可用

keepalived高可用

準備兩臺主備主機,都安裝keepalived yum install -y keepalived
master上前期已安裝nginx
backup 上使用yum 安裝nginx yum install -y nginx
提示錯誤時沒有可用軟件包nginx,解決辦法: yum install -y epel-release

在主(master)上編輯配置文件
vim /etc/keepalived/keepalived.conf
global_defs {
notification_email { #如果有異常,發送郵件[email protected]

br/>[email protected]
notification_email_from [email protected] #編輯郵箱信息
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/usr/local/sbin/check_ng.sh" #編輯自定義檢查腳本
interval 3
}
vrrp_instance VI_1 {
state MASTER
interface ens33 #編輯網卡名稱
virtual_router_id 51 #編輯路由ID信息
priority 100
advert_int 1
authentication {
auth_type PASS #訪問類型是密碼加密
auth_pass aminglinux>com
}
virtual_ipaddress {
192.168.188.100 #VIP服務ip地址
}
track_script { #加載上面的自定義檢查腳本
chk_nginx
}
}

再編輯自定義檢查腳本
vim /usr/local/sbin/check_ng.sh
技術分享圖片
給腳本 755權限 ,重啟keepalived服務,查看keepalived進程是否開啟
技術分享圖片
因為腳本上定義了開啟keepalived服務,即使關閉了nginx,也會自動重啟
技術分享圖片

在備上編輯keepalived配置文件
vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {[email protected]
br/>[email protected]
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/usr/local/sbin/check_ng.sh"
interval 3
}
vrrp_instance VI_1 {
state BACKUP
interface eno16777736 #指定備的網卡名稱,指定監聽的網卡
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass aminglinux>com
}
virtual_ipaddress {
192.168.188.100 #服務IP VIP
}
track_script {
chk_nginx
}
}
編輯檢查腳本
技術分享圖片
跟主一樣,給腳本文件賦值755權限,並重啟keepalived服務
技術分享圖片
重啟時keepalived時發現沒有啟動,檢測是因為從配置上的網卡名稱沒有及時修改。
順便查看下主從的網卡信息,發現服務ip已經生效
主(master)網卡信息:
技術分享圖片
備網卡信息:
技術分享圖片
打開瀏覽器輸入 主從地址,服務地址,查看nginx結果
技術分享圖片
技術分享圖片技術分享圖片

技術分享圖片

推測從上IP不成功可能是php還沒配置。

測試高可用
先確定好兩臺機器上nginx差異,比如可以通過curl -I 來查看nginx版本
測試1:關閉master上的nginx服務
測試2:在master上增加iptabls規則
iptables -I OUTPUT -p vrrp -j DROP
技術分享圖片
訪問主 和服務ip,仍有效
技術分享圖片
技術分享圖片

查看主從ip網卡信息,100的服務IP 也還沒釋放
iptable -F 取消策略

測試3:關閉master上的keepalived服務
技術分享圖片
主上的服務ip已經釋放了
技術分享圖片

從上的服務ip還在
監測下服務ip,網頁不通,curl已經發生了改變,說明master掛掉後,服務ip自動選擇備服務器,高可用已經生效
技術分享圖片
看起來有必要在從上安裝個php....

測試4:啟動master上的keepalived服務
起來之後會發現 主上服務ip已起來了,訪問也ok

keepalive高可用