Keepalived和LVS部署以前已經分別討論過了,LVS通常須要配合Keepalived使用,LVS提供的是HP,而Keepalived則提供HA,確保負載均衡的高性能的同時保持服務不會中斷。
Keepalived-LVS配置:
DR配置:
vi /etc/keepalived/keepalived.conf
######################## # 全局配置 ########################後端
global_defs { # global_defs 全局配置標識
notification_email { # notification_email用於設置報警郵件地址
acassen@firewall.loc # 能夠設置多個,每行一個
failover@firewall.loc # 設置郵件報警,需開啓本機Sendmail 服務
}
notification_email_from email@firewall.loc # 設置郵件發送地址 |
smtp_server 192.168.1.105 # 設置郵件的smtp server地址
smtp_connect_timeout 30 # 設置鏈接smtp sever超時時間
router_id LVS_DEVEL # 表示運行keepalived服務器標識,發郵件時顯示在郵件主題中的信息
}
###################### # VRRP配置 ######################
vrrp_instance VI_1 { # VRRP配置標識 VI_1是實例名稱
state MASTER # 指定Keepalvied角色 MASTER表示此主機爲主服務器
# BACKUP則是表示爲備用服務器
interface enp0s5 # 指定 HA 監測網絡的接口
virtual_router_id 51 # 虛擬路由標識,標識爲數字,同一個VRRP實例使用惟一的標識,
#便可表示在同一個vrrp_instance下 MASTER_ID = BACKUP_ID
priority 100 # 定義節點優先級,數字越大表示節點的優先級越高,
#同一個VRRP_instance下,MASTE_PRIORITY > BACKUP_PRIORITY
advert_int 1 # 設定MASTER與BACKUP主機質檢同步檢查的時間間隔,單位爲秒
authentication { # 設定節點間通訊驗證類型和密碼,驗證類型主要有PASS和AH兩種
auth_type PASS # 同一個vrrp_instance,MASTER驗證密碼和BACKUP保持一致
auth_pass 111111 服務器
} 網絡
virtual_ipaddress { # 設置VIP,設置dev和label能夠經過ifconfig查看,不設置也能夠
192.168.1.250/24 dev enp0s5 label enp0s5:0
}
}負載均衡
###################### # LVS配置 ######################oop
virtual_server 192.168.1.250 80 { #設置虛擬lvs服務,VIP PORT
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 60 #同一個IP地址在60秒內lvs轉發給同一個後端服務器
protocol TCP
real_server 192.168.1.102 80 { #設置真實服務器的心跳機制 RID PORT
weight 1 #權重
TCP_CHECK { #RS server健康檢查部分
connect_timeout 10 #定義超出10s鏈接超時
nb_get_retry 3 #定義重試次數
delay_before_retry 3 #定義重試時間間隔
connect_port 80 #定義健康檢查端口
}
}
real_server 192.168.1.103 80 { #設置真實服務器的心跳機制 RID PORT
weight 1 #權重
TCP_CHECK { #RS server健康檢查部分
connect_timeout 10 #定義超出10s鏈接超時
nb_get_retry 3 #定義重試次數
delay_before_retry 3 #定義重試時間間隔
connect_port 80 #定義健康檢查端口
}
}
}
RS配置:
sudo ifconfig lo:0 192.168.1.100 netmask 255.255.255.255
// 配置虛擬網卡,網卡必須是lo,netmask必須爲255.255.255.255,不然會響應客戶端的arp
修改/etc/sysctl.conf
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
sysctl –p 生效性能