Keepalived配置文件分爲三大塊
1、全局配置(Global Configuration)
全局配置對整個keepalived起作用,不管是否使用LVS
全局配置分爲:全局定義(global definition)和靜態地址路由(static ipaddress/routes)
2、VRRPD配置
VRRPD是整個keepalived的核心
VRRPD配置分爲:VRRP同步組合VRRP實例
3、LVS配置
LVS配置只在使用keepalived配置和管理LVS時需要使用,如果僅僅使用keepalived做HA,LVS洛佩茲完全不需要
全局定義配置詳解
global_defs { notification_email {#當keepalived發生切換時,要將郵件發送給誰 [email protected] [email protected] [email protected] } notification_email_from [email protected]#定義發送郵件時,誰是發件人 smtp_server 192.168.200.1 #定義郵件服務器地址 smtp_connect_timeout 30 #定義超時時長 router_id LVS_DEVEL #定義虛擬路由器標識 }
vrrp_script區域
用於做健康狀態檢測,如果檢測失敗則殺死keepalived進程,或將vrrp_instance降低
vrrp_script chk_nginx { script "/etc/keepalived/nginx_chk.sh" interval 2 fall 3 }
vrrp_sync_group區域
vrrp_rsync_group用來定義vrrp_intance組,使得這個組內成員動作一致。舉個例子來說明一下其功能:
兩個vrrp_instance同屬於一個vrrp_rsync_group,那麼其中一個vrrp_instance發生故障切換時,另一個vrrp_instance也會跟着切換(即使這個instance沒有發生故障)。
vrrp_sync_group VG_1 { group { inside_network # name of vrrp_instance (below) outside_network # One for each moveable IP. ... } notify_master /path/to_master.sh #表示 mastar出錯時執行的腳本 notify_backup /path/to_backup.sh #表示 backup出錯時執行的腳本 notify_fault "/path/fault.sh VG_1" #表示 出錯時執行的腳本 notify /path/notify.sh #表示任何一狀態切換時都會調用該腳本,並且該腳本在以上三個腳本執行完成之後進行調用 smtp_alert #表示是否開啓郵件通知 }
vrrp_instance區域
vrrp_instance用來定義對外提供服務的VIP區域及其相關屬性。
vrrp_instance VI_1 { state BACKUP #state 可以是MASTER或BACKUP interface eno16777736 #定義網卡,用來發送VRRP包 virtual_router_id 51 #取值在0-255之間,用來區分多個instance的VRRP組播;同一網段中virtual_router_id的值不能重複 priority 100 #用來選舉master的,要成爲master,那麼這個選項的值最好高於其他機器50個點,該項取值範圍是1-255 nopreempt #配置爲非搶佔模式,當state爲BACKUP時才生效 advert_int 1 #健康查檢時間間隔,默認1s authentication { #認證區域,認證類型有PASS和HA(IPSEC),推薦使用PASS(密碼只識別前8位) auth_type PASS auth_pass 1111 #主備keepalived在此配置要一樣 } virtual_ipaddress { #配置虛擬路由器IP 192.168.112.2 } track_script { #調用vrrp_script健康狀態檢測腳本 chk_nginx } }