Keepalived簡介
Keepalived 是一個基于 VRRP(虛擬路由冗余協議)的高可用解決方案,主要用于實現 Linux 服務器的負載均衡和故障轉移。它通過檢測服務器狀態并自動切換服務,確保系統在單點故障時仍能保持可用性
Keeplived安裝啟用及配置
安裝與啟用
[root@KA1 ~]# dnf install keepalived-2.2.8-3.el9.x86_64 -y
[root@KA1 ~]# systemctl enable --now keepalived.service
配置文件說明
global
global_defs | 發生故障切換時郵件發送的目標郵箱,可以按 行區分寫多個 |
notification_email_from | 發郵件的地址 |
smtp_server? | 郵件服務器地址 |
smtp_connect_timeout | 郵件服務器連接timeout |
router_id | 每個keepalived主機唯一標識 |
vrrp_skip_check_adv_addr | 對所有通告報文都檢查,會比較 消耗性能 |
vrrp_garp_interval? | 免費 ARP(Gratuitous ARP)報文時間 間隔 |
vrrp_gna_interval | 用于配置發送 Gratuitous NA(免費鄰居 通告)報文的時間間隔 |
vrrp_mcast_group4 | 指定組播IP地址范圍 |
配置虛擬路由文件
master設備
backup設備
state | 設備狀態 |
interface | 綁定為當前虛擬路由器使用的物理接口 |
virtual_router_id | 每個虛擬路由器惟一標識,范圍:0-255,主備id相同 |
priority | 優先級 |
advert_int? | vrrp通告的時間間隔 |
authentication | 認證機制 |
auth_type AH|PASS | AH為IPSEC認證(不推薦),PASS為簡單密碼(建議使用) |
uth_pass 1111 | 預共享密鑰,僅前8位有效 |
virtual_ipaddress | 虛擬IP,生產環境可能指定上百個IP |
Keepalived日志獨立
獨立日志可以方便我們管理Keeplived
設置方法:
實驗效果:
獨立子配置文件 實現單主架構
當生產環境復雜時,主配置文件中內容過多,不易管理將不同集群的配置,比如:不同集群的VIP配置放在獨立的子配置文件中利用include 指令可以實現包含子配置文件
方法:
在主配置文件中指定
編輯子配置文件
效果:
Keep應用示例
VIP單播
默認keepalived主機之間利用多播相互通告消息,會造成網絡擁塞,可以替換成單播,減少網絡流量 在配置文件中設定
實驗效果:
VIP搶占和非搶占模式
搶占模式:當主節點Master下線恢復后,會立即搶占 VIP,即使備節點(Backup)當前正在正常工作
非搶占模式:通過?nopreempt
?指令禁用搶占。即使原主節點恢復,只要備節點當前是活動狀態,原主節點也不會奪回 VIP
延時搶占模式:是一種結合了搶占模式和非搶占模式優點的高級特性。它允許原主節點(Master)在恢復后不立即搶占 VIP,而是等待一段指定時間,確認自身狀態穩定后再接管 VIP,從而避免因短暫故障恢復導致的頻繁切換
搶占模式配置:
非搶占模式配置:
延遲搶占模式配置:
雙主模式
在 Keepalived 的高可用架構中,是一種特殊的部署方式,它允許兩臺服務器互為備份,同時各自承擔不同 VIP 的主角色。這種模式充分利用了硬件資源,實現了雙向高可用,特別適合需要對稱負載分擔的場景
配置:
效果:
正常情況下一臺主機一個VIP
將主機1的keepalived服務關閉模擬設備掛掉后
實現單主的LVS-DR模式
后端服務器配置:下載ngixn?、關閉火墻方便實驗、開啟nginx服務、配置默認發布頁、配置VIP關閉ARP響應
兩臺后端服務器配置信息如下:
配置keepalived:
兩臺主機配置一樣
配置后LVS規則:
實驗效果:
實現HAProxy高可用
當主機同時配置了keeplived和haproxy時,如果haproxy出現了故障,我們應該及時的將VIP遷移到另一臺備用的主機上,利用腳本可實現該功能
環境:
在兩臺配置keeplived的主機上下載以及配置haproxy
hapeoxy配置文件:
檢測haproxy腳本內容:
keeplived配置文件內容:
實驗效果:
當服務器1中haproxy服務出現問題時,服務器1的優先級降低30 降低后低于服務器2,VIP出現轉移
服務器1:
服務器2: