K8s - 札记 - 脑裂
生活随笔
收集整理的這篇文章主要介紹了
K8s - 札记 - 脑裂
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
K8s - 目錄
K8s - 札記 - 腦裂
- 一、問題描述
- 1. 現象
- 2. 原因
- 二、解決方案
一、問題描述
1. 現象
keepalived 高可用服務器互相搶占對方的資源和服務所有權。
2. 原因
由于某些原因,導致兩臺keepalived高可用服務器在指定時間內,無法檢測到對方存活心跳信息,從而導致互相搶占對方的資源和服務所有權,然而此時兩臺高可用服務器有都還存活。
可能出現的原因:
- 服務器網線松動等網絡故障;
- 服務器硬件故障發生損壞現象而崩潰;
- 主備都開啟了firewalld 防火墻。
- 在Keepalived+nginx 架構中,當Nginx宕機,會導致用戶請求失敗,但是keepalived不會進行切換。
二、解決方案
編寫一個檢測nginx的存活狀態的腳本,如果nginx不存活,則kill掉宕掉的nginx主機上面的keepalived。(所有的keepalived都要配置)
腳本:
cat /server/scripts/check_list #!/bin/shnginxpid=$(ps -C nginx --no-header|wc -l) #1.判斷Nginx是否存活,如果不存活則嘗試啟動Nginx if [ $nginxpid -eq 0 ];thensystemctl start nginxsleep 3#2.等待3秒后再次獲取一次Nginx狀態nginxpid=$(ps -C nginx --no-header|wc -l) #3.再次進行判斷, 如Nginx還不存活則停止Keepalived,讓地址進行漂移,并退出腳本 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 } }轉載地址:https://www.jianshu.com/p/a6b5ab36292a
總結
以上是生活随笔為你收集整理的K8s - 札记 - 脑裂的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何选择引流脚本,引流脚本哪家强?
- 下一篇: java error while lo