1. 程式人生 > 其它 >keepalived高可用+keepalived的部署

keepalived高可用+keepalived的部署

一.keepalived高可用(私網)

1.什麼是高可用

一般是指2臺機器啟動著完全相同的業務系統,當有一臺機器down機了,另外一臺伺服器就能快速的接管,對於訪問的使用者是無感知的。

2.什麼是keepalived

部署在整個叢集中的一個高可用軟體,作用是建立一個VIP(虛擬IP),在整個叢集中有且只有一個機器上生成VIP,當這臺機器出現問題時,keepalived將自動將VIP切換至其他的某一臺伺服器上。



3.常用的工具
1.硬體通常使用 F5
2.軟體通常使用 keepalived

4.keepalived涉及名詞

keepalived軟體是基於VRRP協議實現的,VRRP虛擬路由冗餘協議,主要用於解決單點故障問題


ARP廣播
VRRP協議
vip負責IP漂移
vmac負責通知ARP廣播修改mac地址


5.高可用keepalived核心概念
1.如何確定誰是主節點誰是備節點(選舉投票,優先順序)
2.如果Master故障,Backup自動接管,那麼Master恢復後會奪權嗎(搶佔試、非搶佔式)
3.如果兩臺伺服器都認為自己是Master會出現什麼問題(腦裂)

6.keepalived的部署

實現VIP,解決web伺服器的單點故障

1、伺服器準備

主機ip身份
lb01 192.168.15.5 負載均衡
lb02 192.168.15.6 負載均衡
web01 192.168.15.7 web伺服器
web02 192.168.15.8 web伺服器
web03 192.168.15.9 web伺服器

2、保證七層負載均衡完全一致

前提:保證七層負載均衡完全一致

把lb01相關配置傳到lb02

[root@lb01 ~]# cd /etc/nginx/conf.d
[root@lb01 conf.d]# ll
total 8
-rw-r--r-- 1 root root 440 Nov 1 19:52 game.conf
-rw-r--r-- 1 root root 212 Oct 31 22:21 pysession.conf

[root@lb01 conf.d]# scp game.conf 172.16.1.6:/etc/nginx/conf.d

[root@lb01 conf.d]# scp ../nginx.conf 172.16.1.6:/etc/nginx/
[root@lb01 conf.d]# scp ../proxy_params 172.16.1.6:/etc/nginx/
[root@lb01 conf.d]# scp -r ../ssl_key 172.16.1.6:/etc/nginx/

​重啟nginx
[root@lb02 conf.d]# nginx -t
[root@lb02 conf.d]# systemctl restart nginx

1)安裝keepalived(lb01和lb02)

在所有的需要流量的機器上部署keepalived。           
yum install keepalived -y

2) 新增VIP配置


[root@lb01 ~]# vim /etc/keepalived/keepalived.conf
#全域性配置
global_defs {
[root@lb01 ~]# #身份識別(全域性唯一)
router_id lb01
}

# 配置VRRP協議
vrrp_instance VI_1 {
# 狀態,MASTER和BACKUP(這裡僅僅是一個標記,正真確認VIP的是權重)
state MASTER
# 繫結網絡卡
interface eth0
# 虛擬路由標示,可以理解為分組
virtual_router_id 50
# 優先順序(數字越大,權重越大)
priority 100
# 監測心跳間隔時間
advert_int 1
# 配置認證
authentication {
# 認證型別
auth_type PASS
# 認證的密碼
auth_pass 1111
}
# 設定VIP
virtual_ipaddress {
# 虛擬的VIP地址
192.168.15.200
}
}



[root@lb02 ~]# vim /etc/keepalived/keepalived.conf
#全域性配置
global_defs {
#身份識別(全域性唯一)
router_id lb02
}

# 配置VRRP協議
vrrp_instance VI_1 {
# 狀態,MASTER和BACKUP(這裡僅僅是一個標記,正真確認VIP的是權重)
state BACKUP
# 繫結網絡卡
interface eth0
# 虛擬路由標示,可以理解為分組
virtual_router_id 50
# 優先順序(數字越大,權重越大)
priority 90
# 監測心跳間隔時間
advert_int 1
# 配置認證
authentication {
# 認證型別
auth_type PASS
# 認證的密碼
auth_pass 1111
}
# 設定VIP
virtual_ipaddress {
# 虛擬的VIP地址
192.168.15.200
}
}


3)、web伺服器

啟動nginx:

systemctl start nginx

4)修改Windows的hosts

5)啟動keepalived服務(lb01和lb02)
systemctl start keepalived

6)測試

7)訪問https:game.test.com




關閉lb01的keepalived





注意:

虛擬VIP無法在雲伺服器上使用,因為雲伺服器不支援虛擬IP。