K8s - 札记 - 脑裂
生活随笔
收集整理的這篇文章主要介紹了
K8s - 札记 - 脑裂
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
K8s - 目錄
K8s - 札記 - 腦裂
- 一、問(wèn)題描述
- 1. 現(xiàn)象
- 2. 原因
- 二、解決方案
一、問(wèn)題描述
1. 現(xiàn)象
keepalived 高可用服務(wù)器互相搶占對(duì)方的資源和服務(wù)所有權(quán)。
2. 原因
由于某些原因,導(dǎo)致兩臺(tái)keepalived高可用服務(wù)器在指定時(shí)間內(nèi),無(wú)法檢測(cè)到對(duì)方存活心跳信息,從而導(dǎo)致互相搶占對(duì)方的資源和服務(wù)所有權(quán),然而此時(shí)兩臺(tái)高可用服務(wù)器有都還存活。
可能出現(xiàn)的原因:
- 服務(wù)器網(wǎng)線(xiàn)松動(dòng)等網(wǎng)絡(luò)故障;
- 服務(wù)器硬件故障發(fā)生損壞現(xiàn)象而崩潰;
- 主備都開(kāi)啟了firewalld 防火墻。
- 在Keepalived+nginx 架構(gòu)中,當(dāng)Nginx宕機(jī),會(huì)導(dǎo)致用戶(hù)請(qǐng)求失敗,但是keepalived不會(huì)進(jìn)行切換。
二、解決方案
編寫(xiě)一個(gè)檢測(cè)nginx的存活狀態(tài)的腳本,如果nginx不存活,則kill掉宕掉的nginx主機(jī)上面的keepalived。(所有的keepalived都要配置)
腳本:
cat /server/scripts/check_list #!/bin/shnginxpid=$(ps -C nginx --no-header|wc -l) #1.判斷Nginx是否存活,如果不存活則嘗試啟動(dòng)Nginx if [ $nginxpid -eq 0 ];thensystemctl start nginxsleep 3#2.等待3秒后再次獲取一次Nginx狀態(tài)nginxpid=$(ps -C nginx --no-header|wc -l) #3.再次進(jìn)行判斷, 如Nginx還不存活則停止Keepalived,讓地址進(jìn)行漂移,并退出腳本 if [ $nginxpid -eq 0 ];thensystemctl stop keepalivedfi fi配置文件:
cat /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs {router_id lb01 }vrrp_script check {script "/server/scripts/check_list"interval 10}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 50priority 150advert_int 1authentication {auth_type PASSauth_pass 1111 }virtual_ipaddress {10.0.0.3}track_script {check } }轉(zhuǎn)載地址:https://www.jianshu.com/p/a6b5ab36292a
總結(jié)
以上是生活随笔為你收集整理的K8s - 札记 - 脑裂的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何选择引流脚本,引流脚本哪家强?
- 下一篇: java error while lo