創作不易,關注、點贊,分享了解網際網路前沿知識。
Keepalived高可用軟體
Keepalived軟體專為LVS負載平衡軟體設計,可管理和監視LVS群集系統中各個服務節點的狀态,并在以後提供高可用性VRRP功能。
Keepalived軟體主要通過VRRP協定提供高可用性功能。VRRP是虛拟路由冗馀協定(virtual router redundancy protocol)的縮寫,VRRP的目的是解決靜态路由的單點故障問題,如果單個節點關閉,整個網絡可以不間斷地運作。是以,keepalived具有LVS配置管理功能。安裝并啟用keepalived
Keepalived的作用是檢測伺服器的狀态,如果有一台web伺服器當機,或工作出現故障,Keepalived将檢測到,并将有故障的伺服器從系統中剔除,同時使用其他伺服器代替該伺服器的工作,當伺服器工作正常後Keepalived自動将伺服器加入到伺服器群中,這些工作全部自動完成,不需要人工幹涉,需要人工做的隻是修複故障的伺服器。
安裝前準備
以主機pmonapp01、pmonapp02為例,通過Keepalived對外IP位址為ip.100,當pmonapp01其中一台伺服器異常時,Keepalived自動将ip.100映射到pmonapp02上,反之亦然。
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。
操作如下:
- 首先将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 |
- 建立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 |
- 安裝作業系統依賴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!表示安裝完成。
- 安裝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上
用浏覽器打開www.pcm.com的頁面,在web01上檢視access.log日志記錄到的用戶端IP位址
可以看到日志記錄到的用戶端的IP位址是192.168.31.1,反向代理伺服器是主伺服器192.168.31.3.下面我們停止keepalived服務,看備節點會不會接替主節點的VIP和服務。
可以看到,備節點确實接替了主節點的工作。重新啟用主節點。