概念
一、 keepalived 工作原理,tcp會在空閒了一定時間後傳送資料給對方:
1.如果主機可達,對方就會響應ack
應答,就認為是存活的。
2.如果可達,但應用程式退出,對方就發fin
應答,傳送tcp撤消連線。
3.如果可達,但應用程式崩潰,對方就發rst
訊息。
4.如果對方主機不響應ack、rst
,繼續傳送直到超時,撤消連線, 預設超時時間為2小時。
二、 說到 keepalived,需要先明確一點,這個 keepalived 說的是tcp的
還是http的
。
1 tcp的keepalived
以檢測web伺服器為例,keepalived從3個層次來檢測伺服器的狀態
(1)ip層看網路是否正常keepalived定期ping目標伺服器,如果此ip位址沒有啟用,keepalived便報告這台伺服器失效,進行移除
(2)tcp層看web伺服器端口是否正常例如一般web服務的埠為80,keepalived定期檢視80埠,如果沒有啟動,報告失效
(3)應用層看應用程式是否正常keepalived將根據使用者的設定,檢查伺服器程式的執行是否正常,如果與使用者的設定不相符,則keepalived將把伺服器從伺服器群中剔除
2 http的keep-alive
http層有個keep-alive, 它主要是用於客戶端告訴服務端,這個連線我還會繼續使用,在使用完之後不要關閉。
三、對虛擬ip的理解?什麼是虛擬ip?
我現在能理解的是,在機器原來的網絡卡上,在註冊乙個新的ip位址,正常情況下,一台電腦只有乙個ip位址,如果想讓一台電腦有多個ip位址應該怎麼辦呢?那就在這台機器的網絡卡上在申請乙個ip位址,用keepalived來實現。
環境
[root@test1~]
# keepalived -v
keepalived v1.
3.5(03/
19,2017
)
hostname
ipdes
test1
192.168.180.46
master
test2
192.168.180.47
node-1
test3
192.168.180.48
node-2
test4
192.168.181.18
node-3
一、安裝部署
[root@test1~]
# yum install -y keepalived
二、配置檔案
檢視當前要指定虛ip的網絡卡
[root@test1~]
# ip add | grep ens160
2: ens160:
<
broadcast
,multicast,up
,lower_up
> mtu 1500 qdisc mq state up group default qlen 1000
inet 192.168
.180
.46/
24 brd 192.168
.180
.255 scope global noprefixroute ens160
[root@test1~]
#
[root@test1~]
# vim /etc/keepalived/keepalived.conf
# 1 全域性塊
global_defs
notification_email_from eric@qq
.com # 傳送郵件的人
smtp_server smtp.exmail.qq.com # smtp伺服器位址
smtp_connect_timeout 30
# smtp超時時間
router_id eric_keepalived_master # 機器標識
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}# 2 vrrp協議 例項塊
vrrp_instance eric_vi_1
inte***ce ens160
# 指定虛擬ip定義在那個網絡卡上面(本機指定為 ens160 網絡卡)
# 定義虛擬ip塊。客戶通過該ip訪問伺服器
virtual_ipaddress
}
三、啟動[root@test1~]
# systemctl start keepalived.service && systemctl enable keepalived.service && systemctl status keepalived.service
四、檢視是否建立成功[root@test1~]
# ip add | grep ens160
2: ens160:
<
broadcast
,multicast,up
,lower_up
> mtu 1500 qdisc mq state up group default qlen 1000
inet 192.168
.180
.46/
24 brd 192.168
.180
.255 scope global noprefixroute ens160
# 發現多了乙個虛擬ip就是成功了
inet 192.168
.180
.168
/24 scope global secondary ens160
[root@test1~]
#
備節點
常見問題
1 vrid 問題
dec409
:18:45 test1 keepalived_vrrp
[27680]:
vrrp_instance
(eric_vi_1
) ignoring received advertisment...
dec409:
18:46 test1 keepalived_vrrp
[27680]:
(eric_vi_1
): ip address associated with vrid
51not present in
master advert :
192.168
.180
.47dec409
:18:46 test1 keepalived_vrrp
[27680
]: bogus vrrp packet received on ens160 !!!
# 原因
# virtual_router_id 51 有衝突
# 解決辦法
# 修改配置檔案中 virtual_router_id 的值 51 改為 56 或其它值
2 虛擬ip 無法ping通
keepalived.conf 配置中預設vrrp_strict
開啟了,需要把它注釋掉。重啟keepalived即可ping通。
keepalived安裝部署
上傳伺服器安裝 tar xvf cd keepalived 1.3.5 configure prefix usr local keepalived make make install ln s usr local keepalived sbin usr bin ln s usr local keep...
Keepalived安裝部署
通過ftp工具上傳到linux中,home software 解壓tar zxvf keepalived 2.0.18.tar.gz解壓後進入到解壓出來的目錄,看到會有configure,那麼就可以做配置了 配置安裝和nginx一模一樣 使用configure命令配置安裝目錄與核心配置檔案所在位置 ...
Keepalived部署雙主熱備
二 配置keepalived主和從 2.2 配置keepalived 從 2.3 啟動keepalived 三 keepalived註冊為系統服務 四 keepalived配置nginx自動重啟 五 配置keepalived雙主熱備 上傳壓縮包 scp keppalived.tar.gz root ...