1. 程式人生 > >centos7 下原始碼安裝keepalived踩坑記

centos7 下原始碼安裝keepalived踩坑記

目錄

  • 環境準備

  • 為什麼原始碼安裝

  • 原始碼安裝

環境準備

  1. 全新最小化安裝的centos 7.5
  2. keepalived 1.4.5
  3. vip : 172.16.0.169

為什麼原始碼安裝

    centos7 自帶的 yum安裝,keepalived 版本為1.3.5, 這個版本會有一個大坑,導致高可用對應的服務掛掉,如果觸發keepalived down

    通過 service keepalived status 命令檢視執行狀態會看到  tcp socket bind failed. rescheduling 這個異常, 通過原始碼安裝無此問題

原始碼安裝

    下載安裝包並解壓

#cd /opt
#wget http://www.keepalived.org/software/keepalived-1.4.5.tar.gz
#tar -zxvf /opt/keepalived-1.4.5.tar.gz

    安裝編譯依賴包,不安裝依賴包編譯不成功

#yum install curl gcc openssl-devel libnl3-devel net-snmp-devel libnfnetlink-devel -y

    編譯安裝

    編譯安裝成功後,就會自動生成啟停服務

#cd /opt/keepalived-1.4.5
#./configure
#make && make install

    建立配置檔案

    原始碼安裝預設配置檔案路徑為: /etc/keepalived/keepalived.conf ,不建立這個檔案,不能成功啟動

#mkdir -p /etc/keepalived
#vim /etc/keepalived/keepalived.conf

    配置檔案如下:

    自行根據註釋修改 備例項的配置

    注意: 實際配置要把註釋內容去掉,否則會產生某些功能失效

! Configuration File for keepalived
global_defs {
router_id MYSQL-140   #每個keepalived取個不同名稱
}

vrrp_instance VI_1 {
state MASTER          # MASTER為主例項,BACKUP 為從例項
interface eth0        # 網絡卡名稱
virtual_router_id 60  # 主備這裡要配置為同樣的 
priority 100        # 優先順序,主要高於備. 一般主配置為100  備配置為80
advert_int 1
nopreempt           # 主動搶佔,主備都開啟的話,伺服器搶佔過去後,要等這個伺服器keepalived停掉才會漂移到另一臺
authentication {
auth_type PASS      # 主備必須配置成同樣的
auth_pass 1111      # 主備必須配置成同樣的
}
virtual_ipaddress {
172.16.0.169        # vip,主備必須配置一樣
}
}
}
}

    防火牆開啟vrrp

keepalived 是基於vrrp做到虛擬ip漂移的,這裡不開啟的話,主備均會認為對方掛掉了,會造成主備都能獲取到虛擬ip(vip)

#firewall-cmd --add-rich-rule='rule protocol value="vrrp" accept' --permanent
#firewall-cmd --reload

    設定開機服務

#systemctl enable keepalived

    操作keepalived

#service keepalived start
#service keepalived stop
#service keepalived restart
#service keepalived status

    驗證結果

首先在主備例項的伺服器分別 執行 service keepalived start 開啟keepalived

  1. 通過ip addr 命令分別檢視主備兩臺機器,只有主示例的伺服器可以看到這個vip
  2. 在主例項的伺服器執行 service keepalived stop 停止keepalived
  3. 通過ip addr 命令檢視備例項的ip, 會發現可以看到vip的
  4. 在主例項的伺服器執行 service keepalived start 再次啟動keepalived
  5. 通過ip addr 命令分別檢視主備兩臺機器,只有主示例的伺服器可以看到這個vip