keepalived 安裝及使用

兩點說明

  1. 本文不講 keepalived 的工做機制及原理服務器

  2. 我的實驗採用的源碼安裝的方式進行的安裝,比較麻煩。負載均衡

經過 yum 安裝會更快,方法以下:rest

yum install keepalived

啓動/關閉/重啓/查看狀態code

systemctl start/stop/restart/status keepalived

編輯配置文件router

vi /ect/keepalived/keepalived.conf

所以採用 yum 安裝能夠直接跳到 第 5 步。server

注意:進程

無論是哪一種方式安裝,關注點在 配置文件 和 啓動腳本的位置。ip

1. 下載源碼包

wget https://www.keepalived.org/software/keepalived-1.2.16.tar.gz

2. 安裝

  • mkdir keepalived-1.2.16ssl

  • tar -zxvf keepalived-1.2.16.tar.gz -C keepalived-1.2.16get

  • cd keepalived-1.2.16

  • ./configure

若是出現以下錯誤

configure: error: 
  !!! OpenSSL is not properly installed on your system. !!!
  !!! Can not include OpenSSL headers files.            !!!

解決辦法: yum -y install openssl-devel

  • make

  • make install

3. 配置

  • /bin/cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

  • mkdir /etc/keepalived # 複製配置文件

  • /bin/cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived

  • /bin/cp /usr/local/sbin/keepalived /usr/sbin/

4. 啓動 和 關閉 keepalived

啓動

/etc/init.d/keepalived start

查看進程

ps -ef | grep keepalived

關閉

/etc/init.d/keepalived stop

5. 使用

我採用的 keepalived-1.2.16 版本。版本功能差別,以及配置文件差別不肯定。 如下所有基於 1.2.16 版本。

5.1 配置文件

! Configuration File for keepalived

# 暫時沒什麼用,只需改最後一個字段 router_id
global_defs {
   notification_email {
     1111@163.com # 收件人配置
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc # 發件人
   smtp_server 192.168.200.1 # 郵件服務器
   smtp_connect_timeout 30 
   router_id LVS_01 
}

# 檢測腳本
vrrp_script checkTest
{
		# 腳本所在路徑
    script "/mano/module/checkTest.sh"
    interval 3 
    weight -20
}

# vrrp 實例,能夠有多個實例,可是好像有個數限制
# 須要改的地方 
# 1. state 主 :MASTER 備 :BACKUP
# 2. virtual_router_id 主備保持一致 
# 3. priority 一大一小
# 4. virtual_ipaddress 主備保持一致
vrrp_instance VI_1 { 
    state MASTER # 服務器狀態:主, 若是是備用服務器,改成 BACKUP
    interface eth0 # 通訊端口
    virtual_router_id 51 # 主備須要配置同樣
    priority 100 # 優先級
    advert_int 1 # 心跳間隔
    authentication { # 主備服務器間通訊的鑰匙對
        auth_type PASS
        auth_pass 1111
    }
    
    # 檢測腳本配置
    track_script
    {
    	checkTest
    }
    
    # 虛擬ip,即vip 一個或多個
    virtual_ipaddress { 
        172.16.10.83/24 # 綁在 interface上
        # 192.168.200.17
        # 192.168.200.18
    }
    
    # 通知腳本
    notify_master "/path/to/to_master.sh"
    notify_backup "/path/to/to_backup.sh"
}

# 如下的配置是爲了配置負載均衡的,由於咱們用不到,暫時刪除了。

5.2 驗證是否可用

  1. 分別啓動兩臺機器上的 keepalived

  2. 啓動成功後

    在 MASTER 機器上執行,

    ip add | grep 172.16.10.83(配置文件中配置的虛擬ip)
    
    打印結果:inet 172.16.10.83/24 scope global secondary eth0

    在 BACKUP 機器上執行

    ip add | grep 172.16.10.83(配置文件中配置的虛擬ip)
    
    打印結果:什麼也不輸出
  3. 關閉 MASTER 機器上的 keepalived ,執行步驟 2, 結果相反

相關文章
相關標籤/搜索