天天看點

Centos7離線安裝和配置Keepalived

近期,項目中使用者對服務的高可用有需求,是以就接觸到了Keepalived。剛聽到這玩意,我還嗤之以鼻,我和同僚說對外提供服務的實體機挂掉,你再怎麼HA也沒用啊,除非提供多個IP,或者通過前置路由來解決問題。

結果現實很打臉,Keepalived用到虛拟路由備援協定(Virtual Router Redundancy Protocol,簡稱VRRP)完美的實作了HA。

工作原理先不寫了,網上一搜很多,直接上離線安裝的流程:

1、先下個源碼:

連結:https://pan.baidu.com/s/1VyzPjd0HichRczgkGREUwg

提取碼:7g70

2、編譯安裝zlib、openssl

源碼包拷貝到/usr/local/src/目錄下,
(1)先解壓編譯安裝zlib

tar xvf zlib-1.2.8.tar.gz
cd /usr/local/src/zlib-1.2.8

建構靜态庫
.../zlib-1.2.8]# ./configure
.../zlib-1.2.8]# make test
.../zlib-1.2.8]# make install

建構共享庫
.../zlib-1.2.8]# make clean
.../zlib-1.2.8]# ./configure --shared
.../zlib-1.2.8]# make test
.../zlib-1.2.8]# make install
.../zlib-1.2.8]# cp zutil.h /usr/local/include
.../zlib-1.2.8]# cp zutil.c /usr/local/include
完成

(2)再解壓編譯安裝openssl

tar xvf openssl-1.1.0j.tar.gz
cd /usr/local/src/openssl-1.1.0j

編譯安裝
.../openssl-1.1.0j]# ./config shared zlib
.../openssl-1.1.0j]# make depend
.../openssl-1.1.0j]# make && make install
.../openssl-1.1.0j]# ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1 
.../openssl-1.1.0j]# ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

           

3、依賴元件安裝完成後,開始安裝Keepalived

tar xvf keepalived-2.1.0.tar.gz
cd keepalived-2.1.0

[[email protected] keepalived-2.1.0]# ./configure --prefix=/usr/local/keepalived
[[email protected] keepalived-2.1.0]# make && make install

完成後會在以下路徑生成:
/usr/local/etc/keepalived/keepalived.conf
/usr/local/etc/sysconfig/keepalived
/usr/local/sbin/keepalived
           

4、配置啟動Keepalived

# keepalived啟動腳本變量引用檔案,預設檔案路徑是/etc/sysconfig/,也可以不做軟連結,直接修改啟動腳本中檔案路徑即可(安裝目錄下)
cp /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig/keepalived 
 
# 将keepalived主程式加入到環境變量(安裝目錄下)
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/keepalived
 
# keepalived啟動腳本(源碼目錄下),放到/etc/init.d/目錄下就可以使用service指令便捷調用
cp /usr/local/src/keepalived-2.1.0/keepalived/etc/init.d/keepalived  /etc/init.d/keepalived
 
# 将配置檔案放到預設路徑下
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf

加為系統服務:chkconfig --add keepalived
開機啟動:chkconfig keepalived on
啟動、關閉、重新開機
systemctl start keepalived
systemctl stop keepalived
systemctl restart keepalived


配置啟動keepalived
修改預設配置檔案/etc/keepalived/keepalived.conf
           

A節點(需要注意的是,eth0  這個的網卡名稱一定别弄錯了,要弄成自己的。可以使用 ip a 指令檢視)

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
    notification_email {
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server localhost
   smtp_connect_timeout 30
   router_id NodeA
}

vrrp_instance VI_1 {
	state BACKUP   #指定A節點為主節點 備用節點上設定為BACKUP即可  
	interface em1   #綁定虛拟IP的網絡接口  
	virtual_router_id 51   #VRRP組名,兩個節點的設定必須一樣,以指明各個節點屬于同一VRRP組  
	priority 100   #主節點的優先級(1-254之間),備用節點必須比主節點優先級低  
	advert_int 1   #多點傳播資訊發送間隔,兩個節點設定必須一樣  
	authentication {   #設定驗證資訊,兩個節點必須一緻  
		auth_type PASS
		auth_pass 1111
	}
		virtual_ipaddress {   #指定虛拟IP, 兩個節點設定必須一樣  
		192.168.1.100
	}
}
           

B節點隻需要修改三個地方:

router_id  NodeB

state   BACKUP

priority   99

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
	notification_email {
		[email protected]
	}
	notification_email_from [email protected]
	smtp_server localhost
	smtp_connect_timeout 30
	router_id NodeB
}

vrrp_instance VI_1 {  
	state BACKUP
	interface em1
	virtual_router_id 51
	priority 99
	advert_int 1
	authentication {
		auth_type PASS
		auth_pass 1111
	}
	virtual_ipaddress {
		192.168.1.100
	}
}
           

配置完成後,在A節點和B節點啟動Keepalived就可以,

systemctl start keepalived

然後,可以通過檢視服務狀态來确定是否啟動成功:

systemctl status keepalived

A節點作為主節點啟動後,會在上面指令行檢視狀态中顯示已綁定的虛拟IP的位址(也可以通過ip a指令檢視虛拟ip是否綁定到網卡來确定);

B節點作為備用節點啟動後,會在上面指令行檢視狀态中顯示BACKUP節點初始化成功。

此時就可以通過虛拟IP來實作HA了,此時如果A節點挂掉,虛拟IP位址192.168.1.100會自動綁定到B節點的網卡上,可以通過 ip a指令檢視。

(有搞不明白的可以留言溝通,覺得有幫助的可否一個個小小的贊 ^_^)

繼續閱讀