keepalived 高可用安裝配置

環境:

HOST IP
vip 192.168.12.40
keepalived-01 192.168.12.41
keepalived-02 192.168.12.42

安裝:

yum install keepalived -y
systemctl enable keepalived.service

vrrp選舉是通過224.0.0.18發送組播的,先把這個加入iptables允許
-A RH-Firewall-1-INPUT -d 224.0.0.18/32 -j ACCEPT

配置參數介紹:

notification_email: 表示keepalived在發生諸如切換操作時需要發送email通知以及email發送給哪些郵件地址郵件地址可以多個每行一個
notification_email_from [email protected]: 表示發送通知郵件時郵件源地址是誰
smtp_server 127.0.0.1: 表示發送email時使用的smtp服務器地址這裏可以用本地的sendmail來實現
smtp_connect_timeout 30: 連接smtp連接超時時間
router_id node1: 機器唯一標識
notify_master /path/to/to_master.sh 表示當切換到master狀態時要執行的腳本
notify_backup /path_to/to_backup.sh 表示當切換到backup狀態時要執行的腳本
notify_fault "/path/fault.sh VG_1"  keepalived出現故障時執行的腳本
notify /path/to/notify.sh  
smtp_alert           表示切換時給global defs中定義的郵件地址發送郵件通知
state: state指定instance(Initial)的初始狀態就是說在配置好後這臺 服務器的初始狀態就是這裏指定的但這裏指定的不算還是得要通過競選通過優先級來確定裏如果這裏設置爲master但如若他的優先級不及另外一臺 那麼這臺在發送通告時會發送自己的優先級另外一臺發現優先級不如自己的高那麼他會就回搶佔爲master
interface: 實例綁定的網卡因爲在配置虛擬VIP的時候必須是在已有的網卡上添加的
dont track primary: 忽略VRRP的interface錯誤
track interface: 跟蹤接口設置額外的監控裏面任意一塊網卡出現問題都會進入故障(FAULT)狀態例如用nginx做均衡器的時候內網必須正常工作如果內網出問題了這個均衡器也就無法運作了所以必須對內外網同時做健康檢查
mcast src ip: 發送多播數據包時的源IP地址這裏注意了這裏實際上就是在那個地址上發送VRRP通告這個非常重要一定要選擇穩定的網卡端口來發送這裏相當於heartbeat的心跳端口如果沒有設置那麼就用默認的綁定的網卡的IP也就是interface指定的IP地址
garp master delay: 在切換到master狀態後延遲進行免費的ARP(gratuitous ARP)請求,默認5s
virtual router id: 這裏設置VRID這裏非常重要相同的VRID爲一個組他將決定多播的MAC地址
priority 100: 設置本節點的優先級優先級高的爲master
advert int: 設置MASTER與BACKUP負載均衡之間同步即主備間通告時間檢查的時間間隔,單位爲秒,默認1s
virtual ipaddress: 這裏設置的就是VIP也就是虛擬IP地址他隨着state的變化而增加刪除當state爲master的時候就添加當state爲backup的時候刪除這裏主要是有優先級來決定的和state設置的值沒有多大關係這裏可以設置多個IP地址
virtual routes: 原理和virtual ipaddress一樣只不過這裏是增加和刪除路由
lvs sync daemon interface: lvs syncd綁定的網卡,類似HA中的心跳檢測綁定的網卡
authentication: 這裏設置認證
auth type: 認證方式可以是PASS或AH兩種認證方式
auth pass: 認證密碼
nopreempt: 設置不搶佔master,這裏只能設置在state爲backup的節點上而且這個節點的優先級必須別另外的高,比如master因爲異常將調度圈交給了備份serve,master serve檢修後沒問題,如果不設置nopreempt就會將調度權重新奪回來,這樣就容易造成業務中斷問題
preempt delay: 搶佔延遲多少秒,即延遲多少秒後競選master
debug: debug級別
notify master: 和sync group這裏設置的含義一樣可以單獨設置例如不同的實例通知不同的管理人員http實例發給網站管理員mysql的就發郵件給DBA**

配置實例
keepalived-01

! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id 41
}

vrrp_instance lvs {
    state BACKUP
    interface eth0
    virtual_router_id 40
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.12.40
    }
}

keepalived-02

! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id 42
}

vrrp_instance lvs {
    state BACKUP
    interface eth0
    virtual_router_id 40
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.12.40
    }
}

Keepalived主備配置文件區別:
router_id 這個ID主備必須唯一
state 狀態初始信息可以不一致,建議都設置爲BACKUP,讓他們用過priority設置的值去選舉出MASTER。
priority 主備競選優先級數值不一致
以上爲實現高可用的配置,和華爲的vrrp配置差不對,思科的私有協議也差不多。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章