天天看點

叢集重中之重:LVS-Keepalived的部署學習一、工作原理二、部署服務

Keepalived

  • 一、工作原理
  • 二、部署服務
    • 2.1 IP配置設定
    • 2.2 配置主負載排程器
    • 2.3 配置備負載排程器
    • 2.3 web1 設定
    • 2.4 web2 設定
    • 2.5 測試

一、工作原理

基于VRRP協定來實作的LVS服務高可用方案

  • VRRP 虛拟路由備援協定
  • 可以解決靜态路由出現的單點故障問題

在一個LVS服務叢集中通常有主伺服器(MASTER) 和備份伺服器(BACKUP) 兩種角色的伺服器,但是對外表現為一個虛拟IP,主伺服器會發送VRRP通告資訊給備份伺服器,當備份伺服器收不到VRRP消息的時候,即主伺服器異常的時候,備份伺服器就會接管虛拟IP,繼續提供服務,進而保證了高可用性

二、部署服務

2.1 IP配置設定

主DR負載排程伺服器:192.168.253.11

備DR負載排程伺服器:192.168.253.22

web1 伺服器:192.168.253.33

web2 伺服器:192.168.253.44

VIP :192.168.253.111

客戶機:192.168.253.123

2.2 配置主負載排程器

關閉防火牆

systemctl stop firewalld
setenforce 0
           

軟體開啟

# 安裝
yum -y install keepalived	

# 開啟
modprobe ip_vs

# 檢視
cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn
           

配置檔案

# 進入目錄
cd /etc/keepalived/

# 備份原配置檔案
cp keepalived.conf keepalived.conf.bak
           
  • vim keepalived.conf
# 定義全局參數
3 global_defs {

# 第10行 修改郵件服務指向本地
10    smtp_server 127.0.0.1

# 第12行 修改伺服器名稱,主備不能一樣
12    router_id LVS_01

# 第14行 注釋,取消遵守vrrp協定功能,否則VIP無法連接配接
14 #   vrrp_strict

} 
           
# 定義vrrp熱備執行個體參數
19 vrrp_instance VI_1 {

# 第20行 修改熱備狀态指定,主是master,備是backup
20     state MASTER

# 第21行 修改承載VIP位址的實體接口
21     interface ens33

# 第22行 修改虛拟路由器的IP号,每個熱備組保持一緻
22     virtual_router_id 10

# 第23行 修改優先級,越大級别越高
23     priority 100
24     advert_int 1				# 通告間隔秒數(心跳頻率)
25     authentication {			# 定義認證資訊,每個熱備足保持一緻
26         auth_type PASS		# 認證類型

# 第27行 修改驗證密碼,主備需要一緻
27         auth_pass 123456
28     }
29     virtual_ipaddress {		# 指定群集VIP位址
30         192.168.253.111

}
           
第36行 修改虛拟伺服器位址、端口、定義虛拟伺服器和web伺服器池參數
36 virtual_server 192.168.253.111 80 {
37     delay_loop 6							# 健康檢查的間隔時間(秒)
38     lb_algo rr 							# 指定排程算法,輪詢(rr)

# 第39行 修改群集工作模式輪詢(rr)
39     lb_kind DR
40     persistence_timeout 50				# 連接配接保持時間(秒)
41     protocol TCP							# 應用服務采用的TCP協定

# 第43行 修改第一個web節點的位址、端口
43     real_server 192.168.253.33 80 {
44         weight 1							# 節點的權重

# 第45行 删除45-53行,添加以下内容
45        TCP_CHECK {	
46              connect_port 80				# 添加檢查的目标端口
47              connect_timeout 3			# 添加連接配接超市(秒)
48              nb_get_retry 3				# 添加重試次數
49              delay_before_retry 3		# 添加重試間隔
50          }

# 複制43-51行,添加在下面
# 添加第二個web節點的位址、端口
52     real_server 192.168.253.44 80 {
53         weight 1
54         TCP_CHECK {
55              connect_port 80
56              connect_timeout 3
57              nb_get_retry 3
58              delay_before_retry 3
59          }
60     }
           

關閉核心重定向參數響應

vim /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

sysctl -p
           

重新開機

  • systemctl restart keepalived.service

2.3 配置備負載排程器

關閉防火牆

systemctl stop firewalld
setenforce 0
           

軟體開啟

# 安裝
yum -y install ipvsadm
yum -y install keepalived	

# 開啟
modprobe ip_vs

# 檢視
cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn
           

配置檔案

  • 主負載伺服器直接複制檔案發送到備用

    scp keepalived.conf [email protected]:/etc/keepalived/

vim keepalived.conf

# 	更改以下幾行
12    router_id LVS_02
20     state BACKUP
23     priority 90
           

關閉核心重定向參數響應

vim /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

sysctl -p
           

重新開機

  • systemctl restart keepalived.service

2.3 web1 設定

# 進入網卡配置目錄
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0

# 編輯虛拟ip
vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.253.111
NETMASK=255.255.255.255
ONBOOT=yes

route add -host 192.168.253.111 dev lo:0

ifup lo:0
ifconfig lo:0
           
vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1  
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

sysctl -p
           

配置網頁内容

vim /var/www/html/index.html 
内容
           
  • systemctl restart httpd

2.4 web2 設定

# 進入網卡配置目錄
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0

# 編輯虛拟ip
vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.253.111
NETMASK=255.255.255.255
ONBOOT=yes

route add -host 192.168.253.111 dev lo:0

ifup lo:0
ifconfig lo:0
           
vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1  
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

sysctl -p
           

配置網頁内容

vim /var/www/html/index.html 
内容
           
  • systemctl restart httpd

2.5 測試

叢集重中之重:LVS-Keepalived的部署學習一、工作原理二、部署服務

切斷主伺服器

備用頂上

叢集重中之重:LVS-Keepalived的部署學習一、工作原理二、部署服務