掃二維碼與項(xiàng)目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務(wù)器,是一個虛擬的服務(wù)器集群系統(tǒng),它可以通過不同的調(diào)度算法和工作模式,將客戶端的請求轉(zhuǎn)發(fā)給后端的真實(shí)服務(wù)器。

Keepalived是一個基于VRRP協(xié)議來實(shí)現(xiàn)的服務(wù)高可用方案,可以利用其來避免IP單點(diǎn)故障,一般與其他負(fù)載均衡技術(shù)(如LVS、HAProxy、Nginx)一起工作來達(dá)到集群的高可用。
兩臺 CentOS 7 機(jī)器,IP 地址分別為 10.9.2.121和 10.9.2.122。
|
vip |
10.9.2.120 |
虛擬出來的IP |
|
master |
10.9.2.121 |
master主機(jī)IP |
|
backup |
10.9.2.122 |
backup主機(jī)IP |
在兩臺機(jī)器上,執(zhí)行以下命令,安裝 ipvsadm keepalived 軟件包:
yum install -y ipvsadm keepalived在master機(jī)器上,執(zhí)行以下命令,配置 Keepalived:
vim /etc/keepalived/keepalived.conf添加以下內(nèi)容:
global_defs {
router_id 1
}
vrrp_instance VI_1 {
state MASTER
interface enp0s3
virtual_router_id 1
mcast_src_ip 10.9.2.121
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
10.9.2.120
}
}在 backup機(jī)器上,執(zhí)行以下命令,配置 Keepalived:
vim /etc/keepalived/keepalived.conf添加以下內(nèi)容:
global_defs {
router_id 2
}
vrrp_instance VI_1 {
state BACKUP
interface enp0s3
virtual_router_id 1
mcast_src_ip 10.9.2.122
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
10.9.2.120
}
}保存并退出。
參數(shù)說明:
global_defs {
router_id 1 # 定義 VRRP 組的 ID,主備服務(wù)器必須相同
}
authentication { # 定義 VRRP 認(rèn)證類型和密碼,主備服務(wù)器必須相同
auth_type PASS
auth_pass 123456
}
vrrp_instance VI_1 {
state MASTER # 指定該節(jié)點(diǎn)的狀態(tài),主節(jié)點(diǎn)為 MASTER,備節(jié)點(diǎn)為 BACKUP
interface eth0 # 指定VRRP使用的網(wǎng)卡,換成master機(jī)器的網(wǎng)卡名稱
virtual_router_id 1
mcast_src_ip 10.9.2.121 # 指定 VRRP 使用的組播源 IP 地址
priority 100 # 指定 VRRP 優(yōu)先級,優(yōu)先級越高,該節(jié)點(diǎn)成為主節(jié)點(diǎn)的概率越大
advert_int 1 # 指定 VRRP 通告間隔,單位為秒
virtual_ipaddress { # 指定 VRRP 虛擬 IP 地址
10.9.2.120
}
}在兩臺機(jī)器上,執(zhí)行以下命令,啟動 LVS 和 Keepalived:
systemctl start keepalived
systemctl start ipvsadm如果systemctl start ipvsadm異常Active: failed (Result: exit-code) since Fri 2023-09-01 14:31:28 CST; 5min agoProcess: 3618 ExecStart=/bin/bash -c exec /sbin/ipvsadm-restore < /etc/sysconfig/ipvsadm (code=exited, status=1/FAILURE)。
systemctl status ipvsadm.service
journalctl -xe可以看到/bin/bash: /etc/sysconfig/ipvsadm: No such file or directory。
ipvsadm --save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
systemctl status ipvsadm.service
看看是否能ping通。
ping 10.9.2.120再在master和backup機(jī)器上都安裝一個nginx或apache httpd。
#master
yum install -y httpd
echo "Master" > /var/www/html/index.html
systemctl start httpd
#backup
yum install -y httpd
echo "Backup" > /var/www/html/index.html
systemctl start httpd在瀏覽器訪問:http://10.9.2.120。
master優(yōu)先級高,10.9.2.120顯示的是master。
再來模擬一下故障轉(zhuǎn)移測試。
在 10.9.2.121 機(jī)器上,執(zhí)行以下命令,停掉 LVS:
systemctl stop keepalived如果 LVS 配置正確,Keepalived 會自動將 VIP 切換到 10.9.2.122。
再在瀏覽器訪問:http://10.9.2.120。
注意事項(xiàng)
實(shí)現(xiàn)集群負(fù)載均衡網(wǎng)絡(luò)的方案可以分為軟件、硬件、云等方面:
軟件負(fù)載均衡是指在現(xiàn)有服務(wù)器上安裝負(fù)載均衡軟件來實(shí)現(xiàn)負(fù)載均衡,其優(yōu)點(diǎn)是成本低廉、配置簡單、靈活性強(qiáng),適用于中小型集群。常見的軟件負(fù)載均衡方案包括:
硬件負(fù)載均衡是指使用專門的負(fù)載均衡設(shè)備來實(shí)現(xiàn)負(fù)載均衡,其優(yōu)點(diǎn)是性能高、功能豐富、可靠性強(qiáng),適用于大型集群。常見的硬件負(fù)載均衡方案包括:
云負(fù)載均衡是指在云平臺上使用負(fù)載均衡服務(wù)來實(shí)現(xiàn)負(fù)載均衡,其優(yōu)點(diǎn)是部署簡單、彈性伸縮、按需付費(fèi),適用于各種規(guī)模的集群。常見的云負(fù)載均衡方案包括:
LVS(Linux Virtual Server)是 Linux 內(nèi)核中的軟件負(fù)載均衡器,可以將流量分發(fā)到多個服務(wù)器。LVS 可以分為兩種模式:
LVS 是基于四層的負(fù)載均衡器,可以將流量分發(fā)到多個服務(wù)器。LVS 的核心是 LVS 轉(zhuǎn)發(fā)器,LVS 轉(zhuǎn)發(fā)器負(fù)責(zé)將客戶端的請求轉(zhuǎn)發(fā)到后端服務(wù)器。LVS 轉(zhuǎn)發(fā)器可以運(yùn)行在 Linux 內(nèi)核中,也可以運(yùn)行在用戶空間。
LVS 的優(yōu)點(diǎn)
Keepalived 是一個基于 VRRP 協(xié)議的軟件,用于監(jiān)控 LVS 的健康狀況。VRRP 協(xié)議是一種虛擬路由冗余協(xié)議,用于在多個路由器之間實(shí)現(xiàn)主備切換。
Keepalived 的主要功能是監(jiān)控 LVS 主節(jié)點(diǎn)的狀態(tài),如果主節(jié)點(diǎn)出現(xiàn)故障,Keepalived 會自動將 LVS 的 VIP 切換到備節(jié)點(diǎn)。
Keepalived 的優(yōu)點(diǎn)

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流