一個執着於技術的公眾號
在上一篇文章中,我們對Keepalived進行了簡單入門學習:
今天我們繼續學習Keepalived服務。
一、安裝Keepalived服務
兩種安裝方式:
(1)yum方式安裝
yum -y install keepalived
# 查看安裝路徑
rpm -ql keepalived
(2)源碼安裝
1)安裝依賴
yum -y install gcc openssl-devel libnfnetlink-devel
2)下載源碼
wget https://www.keepalived.org/software/keepalived-1.4.5.tar.gz
3)解壓
tar -zxvf keepalived-1.4.5.tar.gz -C /usr/src
4)編譯安裝
cd /usr/src/keepalived-1.4.5/
./configure && make -j 4 && make install
二、 keepalived配置文件解析
Keepalived 主配置文件的名稱為:
/etc/keepalived/keepalived.conf
一個功能比較完整的常用的 keepalived 配置文件,主要包含以下三塊:
! Configuration File for keepalived
#全局定義塊
global_defs {
...
}
#VRRP 實例定義塊
vrrp_instance VI_1 {
...
}
#虛擬服務器定義塊
virtual_server 10.10.10.2 1358 {
...
}
注意:全局定義塊是必須配置項;如果Keepalived只用來做HA,則虛擬服務器是可選配置。下面詳細介紹Keepalived配置文件:
(1)全局定義塊
這部分主要用來設置Keepalived的故障通知機制和Router ID標識。示例代碼如下:

參數說明:
1)第一行是注釋
2)第4~8行:email通知,用於服務有故障時發送郵件報警。可選項,不建議用。需系統開啟sendmail服務,建議用第三方獨立監控服務,如使用nagios監控代替。
3)第9行:指定發件人,可選配置。
4)第10行:指定發送郵件的smtp服務器地址,可選配置。
5)第11行:指定連接smtp的超時時間,可選配置。
6)第12行:用戶標識本節點的名稱,通常為 hostname
(2)VRRP 實例定義塊

參數說明:
1)第15行:定義一個vrrp_install實例,名稱為VI_1
2)第16行:表示該實例的角色狀態,有MASTER和BACKUP兩種主備狀態。
3)第17行:對外提供服務的網絡接口,如eth0,ens33
4)第18行:虛擬路由ID標識,主備服務器配置中相同實例的ID必須一致,否則將出現腦裂問題。
5)第19行:priority表示實例優先級。數字越大,優先級越高。
6)第20行:advert_int為同步通知間隔。主備之間通信檢查的時間間隔,默認為1秒。
7)第21~24行:權限認證配置。
8)第25~29行:虛擬IP地址;可以配置多個IP,每個IP占一行。注意,這里的IP就是在工作中需要和域名綁定的ip,即可配置的高可用服務監聽的ip保持一致。
(3)虛擬服務器定義塊

參數說明:
1)virtual_server:定義一個虛擬服務器,這個ip是virtual_address中定義的其中一個。語法格式:ip+空格+服務端口
第58行:delay_loop 6
健康檢查時間間隔,單位:秒
第59行:lb_algo rr
負載均衡調度算法,互聯網應用常用方式為 wlc或rr
第60行:lb_kind NAT
負載均衡轉發規則。包括DR、NAT、TUN 3種,一般使用路由(DR)轉發規則。
第61行:persistence_timeout 50
http服務會話保持時間,單位:秒
第62行:protocol TCP
轉發協議,分為TCP和UDP兩種
2)real_server:真實服務器IP和端口,可以定義多個
第67行:weight 1
負載權重,值越大,轉發的優先級越高
第81行:connect_timeout 3
服務連接超時時長,單位:秒
第82行:nb_get_retry 3
服務連接失敗重試次數
第83行:delay_before_retry 3 :重試連接間隔,單位:秒
往期精彩
◆ LVM邏輯卷學習