當前位置:網站首頁>LVS管理軟件--keepalived

LVS管理軟件--keepalived

2022-01-27 16:28:47 qq_47295318

1. keepalived是什麼

 keepalived是集群管理中保證集群高可用的一個服務軟件,它的作用是檢測web服務器的狀態,如果有一臺web服務器死機,或工作出現故障,Keepalived將檢測到,並將有故障的web服務器從系統中剔除,當web服務器工作正常後,自動將web服務器加入到服務器集群中。解决了靜態路由的單點故障問題。

keepalived是以VRRP協議為實現基礎的,VRRP全程Virtual Router Redundancy Protocol ,即虛擬路由冗餘協議。

虛擬路由冗餘協議,可以認為是實現路由器高可用的協議。也就是說N臺提供相同功能的路由器組成一個路由器組,這個組裏面有一個master和多個backup,master上面有一個對外提供服務的vip,master不斷向backup發送心跳信息,告訴backup自己還活著,當backup收不到心跳消息時就認為master已經宕機啦,這時就需要根據VRRP的優先級來選舉一個backup當master。從而保證高可用。

2.keepalived主要有三個模塊,分別是corecheckvrrp

core模塊為keepalived的核心,負責主進程的啟動、維護、以及全局配置文件的加載和解析

check負責健康檢查,包括常見的各種檢查方式

vrrp模塊是來實現VRRP協議的

keepalived只有一個配置文件keepalived.conf

 實驗環境設定:

添加一臺虛擬機作為備用lvs

cd /var/lib/libvirt/images/

 

網橋必須是br0

 備用lvs-->server4 安裝ipvsadm

 主lvs-->server1

ssh-keygen ##生成ssh公鑰認證所需要的公鑰和私鑰文件
ssh-copy-id server4: ##免密碼登陸server4

無需密碼登陸

安裝keepalived

備用lvs也安裝keepalived

安裝郵件軟件

 

cd /etc/keepalived
vim keepalived.conf


global_defs {
   notification_email {
       [email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
  # vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

1)global_defs區域 

主要是配置故障發生時的通知對象以及機器標志

  • notification_email  故障發生時給誰發郵件通知
  • notification_email_from  通知郵件從哪個地址發出
  • smtp_server 通知郵件的smtp地址
  • smtp_connect_timeout 連接smtp服務器的超時時間
  • enable_traps開啟SNMP(Simple Network Management Protocol)陷阱
  • router_id 標志本節點的字符串,通常為ip地址,故障發生時郵件會通知到

2) vrrp_script區域 

 用來做健康檢查的,當檢查失敗時會將vrrp_instance的priority减少相應的值,

   script:自己寫的監測脚本。

   interval 2:每2s監測一次

   weight -20:監測失敗,則相應的vrrp_instance的優先級會减少20個點

ip addr del 172.25.254.110/24 dev eth0 

 vim keepalived.conf

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.110
    }
}

virtual_server 172.25.254.110  80{
    delay_loop 6
    lb_algo rr
    lb_kind DR
   # persistence_timeout 50
    protocol TCP

    real_server 172.25.254.2 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            delay_before_retry 3
        }
    }

    real_server 172.25.254.3 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            delay_before_retry 3
        }
    }

}

3) vrrp_instance  

state:只有BACKUP和MASTER。MASTER為工作狀態,BACKUP是備用狀態

interface:為網卡接口:可通過ip addr查看自己的網卡接口

virtual_router_id:虛擬路由標志。同組的virtual_router_id應該保持一致;它將决定多播的MAC地址。

priority:設置本節點的優先級,優先級高的為master

advert_int:MASTER與BACKUP同步檢查的時間間隔

virtual_ipaddress:這就是傳說中的虛擬ip

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }

cat /var/log/messages

在server4上

 rs 操作:

測試:

若關閉server2的httpd 

systemctl stop httpd

當調度器server1的lvs down掉,lvs就無法正常使用,會啟用備用lvs server4

關閉server1的keepalived

lvs正常使用,MAC地址為server4的MAC地址

server4 變為MASTER

server1比server4的優先級高,重新啟動時,MAC地址變為server1的地址 

 

 

 

 

 

 

版權聲明
本文為[qq_47295318]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201271628470272.html

隨機推薦