一、keepalived實作原理
在實際的企業應用中,單台伺服器承擔應用存在單點故障的危險。
1、keepalived工具介紹
-
專為LVS和HA設計的一款健康檢查工具
支援節點健康狀态檢查(health checking)
支援故障自動切換(failover)
官網:http://www.keepalived.org/
2、keepalived實作原理剖析
-
keepalive采用VRRP熱備份協定
實作Linux伺服器的多機熱備功能
-
VRRP(虛拟路由備援協定):是針對路由器的一種備份解決方案
由多台路由器組成一個熱備組,通過共用的虛拟IP位址對外提供服務
每一個熱備組内同時隻有一台主路由器提供服務,其他路由器處理備援狀态
若目前線上的路由器失效,則其他路由器會根據設定的優先級自動接替虛拟IP位址,繼續提供服務
3、keepalived配置檔案
keepalived可實作多機熱備,每一個熱備組可有多台伺服器
雙機熱備的故障切換是由虛拟IP位址的飄逸來實作的,适用于各種應用伺服器
-
keepalived安裝與啟動:在LVS群集環境中,還會用到ipvsadm工具
yum安裝即可
配置檔案在/etc/keepalived下
配置keepalived master伺服器
常用配置選項:
router_id HA_TEST_R1 :本伺服器的名稱
vrrp_instance VI_1 :定義VRRP熱備執行個體
state MASTER :熱備狀态,MASTER表示主伺服器
interface ens33 :承載VIP位址的實體接口
virtual_router_id 1 :虛拟路由器的ID号,每一個熱備組保持一緻
priority 100 :優先級,數值越大優先級越高
advert_int 1:通告間隔秒數(心跳頻率)
auth_type PASS :認證類型
auth_pass 123456 :密碼字串
virtual_ipaddress {vip} :指定漂移位址,可以有多個
配置keepalived slave伺服器
與master伺服器的配置有三個選項不同:
router_id :設為自有的名稱
state :設為BACKUP
priority :值低于master
其他配置相同
二、LVS + keepalived高可用叢集部署
1、LVS-DR部署
前面實驗已經部署了https://blog.csdn.net/weixin_47152389/article/details/108352111
2、keepalived部署
實驗拓撲:
部署步驟:
基于LVS_DR上面,添加keepalived的配置
主伺服器配置:
[[email protected] init.d]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
......
smtp_server 127.0.0.1 ##指向本地
smtp_connect_timeout 30
router_id LVS_01 ##指向名稱,備份伺服器id不同
......
}
vrrp_instance VI_1 {
state MASTER ##備份伺服器為BACKUP
interface ens33 ##此處修改為ens33實體接口
virtual_router_id 10 ##組号,主備要相同
......
authentication {
auth_type PASS
auth_pass 1111
priority 100 ##優先級,競選主備伺服器
}
virtual_ipaddress {
192.168.200.100 ##虛拟IP位址
}
}
virtual_server 192.168.200.100 80 { ##修改
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 192.168.200.30 80 { ##修改
weight 1
TCP_CHECK {
connect_port 80 ##端口都為80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.200.40 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
[[email protected] init.d]# systemctl start keepalived
備用伺服器配置:
[[email protected] init.d]# vim /etc/keepalived/keepalived.conf
......
vrrp_instance VI_1 {
state MASTER ##備份伺服器為BACKUP
interface ens33 ##此處修改為ens33實體接口
virtual_router_id 10 ##組号,主備要相同
......
authentication {
auth_type PASS
auth_pass 1111
priority 92 ##優先級比主伺服器低
}
virtual_ipaddress {
192.168.200.100 ##虛拟IP位址
}
}
......
[[email protected] init.d]# systemctl start keepalived
測試:
輪詢通路已經驗證過了,在DR實驗中
接下來,把主伺服器的虛拟IP給關閉了,再來檢視能不能通路。
還是可以通路,此時工作的備用伺服器