天天看點

Nginx、Keepalived高可用叢集解決方案,安裝配置

作者:猿之生活

創作不易,關注、點贊,分享了解網際網路前沿知識。

Keepalived高可用軟體

Keepalived軟體專為LVS負載平衡軟體設計,可管理和監視LVS群集系統中各個服務節點的狀态,并在以後提供高可用性VRRP功能。

Nginx、Keepalived高可用叢集解決方案,安裝配置

Keepalived軟體主要通過VRRP協定提供高可用性功能。VRRP是虛拟路由冗馀協定(virtual router redundancy protocol)的縮寫,VRRP的目的是解決靜态路由的單點故障問題,如果單個節點關閉,整個網絡可以不間斷地運作。是以,keepalived具有LVS配置管理功能。安裝并啟用keepalived

Keepalived的作用是檢測伺服器的狀态,如果有一台web伺服器當機,或工作出現故障,Keepalived将檢測到,并将有故障的伺服器從系統中剔除,同時使用其他伺服器代替該伺服器的工作,當伺服器工作正常後Keepalived自動将伺服器加入到伺服器群中,這些工作全部自動完成,不需要人工幹涉,需要人工做的隻是修複故障的伺服器。

Nginx、Keepalived高可用叢集解決方案,安裝配置

安裝前準備

以主機pmonapp01、pmonapp02為例,通過Keepalived對外IP位址為ip.100,當pmonapp01其中一台伺服器異常時,Keepalived自動将ip.100映射到pmonapp02上,反之亦然。

Nginx、Keepalived高可用叢集解決方案,安裝配置

Keepalived安裝以pmonapp01為例。

在/tmp目錄下建立plugin目錄,用于臨時存放Keepalived安裝媒體。

/tmp目錄下plugin目錄不存在時需要重新建立。

使用指令

執行順序 指令 說明
1 mkdir -p /tmp/plugin 在/tmp/下建立plugin目錄

執行示意

[root@pmondbs01 ~] # mkdir /tmp/plugin

然後以通過FTP方式上傳keepalived-1.4.4.tar.gz、libnfnetlink-devel-1.0.1-4.el7.x86_64.rpm。

  • 修改作業系統參數

修改檔案句柄最大數量,運作cat >>/etc/sysctl.conf <<eof依次輸入:

fs.file-max=65535

eof

[root@pmonapp01 ~] # cat >>/etc/security/limits.conf<<eof

> fs.file-max 65535

> eof

Keepalived安裝

依賴安裝

本操作完成作業系統依賴包安裝,依賴包包括openssl-devel、libnfnetlink-devel,其中libnfnetlink-devel需要最後單獨安裝,作業系統依賴包來源于作業系統鏡像rhel-server-7.6-x86_64-dvd.iso。

操作如下:

  1. 首先将rhel-server-7.6-x86_64-dvd.iso ISO鏡像通過FTP方式上傳至/tmp目錄,然後挂載ISO鏡像。本次安裝不需要永久挂載鏡像檔案。

使用指令

執行順序 指令 說明
1 mount -t iso9660 -o loop /tmp/rhel-server-7.6-x86_64-dvd.iso /mnt 從/tmp目錄挂載鏡像檔案rhel-server-7.6-x86_64-dvd.iso到/mnt,

執行示意

[root@pmondbs01 ~]# mount -t iso9660 -o loop /tmp/rhel-server-7.6-x86_64-dvd.iso /mnt
  1. 建立rhel-server-7.6-x86_64-dvd.iso檔案yum源檔案配置

使用指令

執行順序 指令 說明
1 vi /etc/yum.repos.d/rhel76.repo 在/etc/yum.repos.d檔案目錄下建立rhel-server-7.6-x86_64-dvd.iso檔案的yum源配置檔案rhel76.repo
2

[RHEL76]

name=RHEL76

baseurl=file:///mnt

enabled=1

gpgcheck=0

# yum clean all

# yum list

rhel76.repos需要輸入的内容

執行示意

[root@pmondbs01 ~]# vi /etc/yum.repos.d/rhel76.repo

[RHEL76]

name=RHEL76

baseurl=file:///mnt

enabled=1

gpgcheck=0

# yum clean all

# yum list

  1. 安裝作業系統依賴RPM包

使用指令

執行順序 指令 說明
1 yum install –y openssl-devel 安裝基礎依賴RPM包:openssl-devel。

執行示意

[root@pmondbs01 ~]# yum install –y openssl-devel

Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-

: manager

This system is not registered with an entitlement server. You can use subscripti on-manager to register.

RHEL76 | 4.3 kB 00:00

(1/2): RHEL76/group_gz | 146 kB 00:00

(2/2): RHEL76/primary_db | 4.2 MB 00:00

Package openssl-devel-1.0.2k-16.el7.x86_64 already installed and latest version

Resolving Dependencies

--> Running transaction check

---> Package openssl-devel-1.0.2k-16.el7.x86_64 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

================================================================================

Package Arch Version Repository

Size

================================================================================

Installing:

openssl-devel x86_64 1:1.0.2k-16.el7 RHEL76 1.5 M

Transaction Summary

================================================================================

Install 1 Packages

Total download size: 1.5 M

Installed size: 1.5 M

界面顯示“Is this ok [y/d/N]:”時輸入y然後回車,安裝繼續進行。

Is this ok [y/d/N]: y

Downloading packages:

--------------------------------------------------------------------------------

Total 219 MB/s | 1.5 MB 00:00

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

Installing : openssl-devel-1.0.2k-16.el7.x86_64 1/1

RHEL76/productid | 1.6 kB 00:00

Verifying : openssl-devel-1.0.2k-16.el7.x86_64 1/1

Installed:

openssl-devel-1.0.2k-16.el7.x86_64

Complete!

界面顯示Complete!表示安裝完成。

  1. 安裝libnfnetlink-devel,FTP方式上傳libnfnetlink-devel-1.0.1-4.el7.x86_64.rpm到/tmp/plugin/。

使用指令

執行順序 指令 說明
1 cd /tmp/plugin/ 進入/tmp/plugin目錄
2 rpm -ivh libnfnetlink-devel-1.0.1-4.el7.x86_64.rpm 安裝libnfnetlink-devel
3 ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1 建立軟連結
4 ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1 建立軟連結

執行示意

[root@pmonapp01 ~] # cd /tmp/plugin/

[root@pmonapp01 plugin] # rpm -ivh libnfnetlink-devel-1.0.1-4.el7.x86_64.rpm

warning: libnfnetlink-devel-1.0.1-4.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY

Preparing... ################################# [100%]

Updating / installing...

1:libnfnetlink-devel-1.0.1-4.el7 ################################# [100%]

[root@pmonapp01 ~] # ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1

[root@pmonapp01 ~] # ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

安裝Keepalived

使用指令

執行順序 指令 說明
1 cd /tmp/plugin/ 進入/tmp/plugin目錄
2 tar -zxf keepalived-1.4.4.tar.gz 解壓keepalived-1.4.4.tar.gz
3 cd keepalived-1.4.4/ 進入keepalived-1.4.4
4 ./configure 執行configure指令
5 make&&make install 編譯并安裝

執行示意

[root@pmonapp01~] # cd /tmp/plugin/

[root@pmonapp01 plugin] # tar -zxf keepalived-1.4.4.tar.gz

[root@pmonapp01 plugin] # cd keepalived-1.4.4/

[root@pmonapp01 keepalived-1.4.4] # ./configure

[root@pmonapp01 keepalived-1.4.4] # make&&make install

  • 設定Keepalived啟動方式

Keepalived配置檔案目錄為/etc/keepalived,需要手工建立。

使用指令

執行順序 指令 說明
1 mkdir /etc/keepalived 建立Keepalived配置檔案目錄

執行示意

[root@pmonapp01 ~] # mkdir /etc/keepalived

安裝媒體中conf檔案夾下有keepalived.conf,keepalived.conf為keepalived配置檔案。然後FTP方式上傳keepalived.conf至Keepalived配置檔案目錄下。

在解壓之後的Keepalived安裝媒體中的keepalived/etc/init.d下提供有Keepalived的啟動腳本,把該腳本複制到/etc/init.d下,即完成Keepalived啟動腳本建立,然後将Keepalived添加為随系統啟動。

使用指令

執行順序 指令 說明
1 cp /tmp/plugin/keepalived-1.4.4/keepalived/etc/init.d/keepalived.rh.init /etc/init.d/keepalived 複制并建立keepalived啟動腳本
2 chkconfig --add keepalived 添加keepalived啟動随系統啟動
3 chkconfig --level 12345 keepalived on 修改keepalived啟動級别

執行示意

[root@pmonapp01 ~] # cp /tmp/plugin/keepalived-1.4.4/keepalived/etc/init.d/keepalived.rh.init /etc/init.d/keepalived

[root@pmonapp01 ~] # chkconfig --add keepalived

[root@pmonapp01 ~] # chkconfig --level 345 keepalived on

  • 重新開機Keepalived

修改配置之後務必重新開機Keepalived,操作指令為service keepalived restart。

[root@pmonapp01 ~] # service keepalived restart

Nginx負載均衡來測試

修改windows的hosts檔案,把域名指向到VIP上

Nginx、Keepalived高可用叢集解決方案,安裝配置

用浏覽器打開www.pcm.com的頁面,在web01上檢視access.log日志記錄到的用戶端IP位址

Nginx、Keepalived高可用叢集解決方案,安裝配置

可以看到日志記錄到的用戶端的IP位址是192.168.31.1,反向代理伺服器是主伺服器192.168.31.3.下面我們停止keepalived服務,看備節點會不會接替主節點的VIP和服務。

Nginx、Keepalived高可用叢集解決方案,安裝配置

可以看到,備節點确實接替了主節點的工作。重新啟用主節點。

繼續閱讀