帶着問題去學習:node
1. keepalived應該怎麼部署,部署在幾臺服務器上面 ?python
2. 如何配置keepalived?nginx
答:
服務器
第一個問題,是我開始查找資料時,找了好久也沒弄明白的一個問題,也是寫這篇文字的初衷,要弄懂這個問題。
負載均衡
keepalived是由一個master,多個slaver組成的一個路由組。 若是有兩臺服務器,那麼就須要分別部署master和slaver。master和slaver同時向外提供一個VIP(虛擬ip),正常狀況下,外部在訪問VIP的時候,會訪問master上面的服務。如果master掛掉,keepalived機制會訪問slaver的服務。
學習
第二個問題,我找到一份很簡潔的說明,以下:spa
主服務器配置:.net
global_defs { notification_email #通知email,根據實際狀況配置 { admin@example.com } notification_email_from admin@example.com smtp_server 127.0.0.1 stmp_connect_timeout 30 router_id node1 #節點名標識,主要用於通知中 } vrrp_instance VI_NODE { state MASTER #配置爲主服務器 interface eth0 #通信網卡 virtual_router_id 100 #路由標識 priority 200 #優先級,0-254 advert_int 5 #通知間隔,實際部署時能夠設置小一點,減小延時 authentication { auth_type PASS auth_pass 123456 #驗證密碼,用於通信主機間驗證 } virtual_ipaddress { 192.168.1.206 #虛擬ip,能夠定義多個 } }
從服務器配置:
code
global_defs { notification_email { admin@example.com } notification_email_from admin@example.com smtp_server 127.0.0.1 stmp_connect_timeout 30 router_id node2 } vrrp_instance VI_NODE { state BACKUP #與主服務器對應 interface eth0 #從服務器的通訊網卡 virtual_router_id 100 #路由標識,和主服務器相同 priority 100 #優先級,小於主服務器便可 advert_int 5 #這裏是接受通知間隔,與主服務器要設置相同 authentication { auth_type PASS auth_pass 123456 #驗證密碼,與主服務器相同 } virtual_ipaddress { 192.168.1.206 #虛擬IP,也要和主服務器相同 } }
待續。。。
router
參考文獻:1. Keepalived工做原理和配置說明