配置信息
LVS-MASTER | 10.0.0.41 | centos7 |
---|---|---|
LVS-BACKUP | 10.0.0.42 | centos7 |
LVS-DR-VIP | 10.0.0.100 | |
WEB1 | 10.0.0.43 | centos7 |
WEB2 | 10.0.0.44 | centos7 |
注意:請忽略IP地址,以自己環境中的爲主。
一、配置LVS
1.分別在lvs-master和lvs-backup上安裝lvs和keepalived軟件包
systemctl stop firewalld
setenforce 0
yum -y install keepalived ipvsadm
LVS-MASTER
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_R1
}
vrrp_instance VI_1 {
state MASTER
interface ens33 #對應網卡
virtual_router_id 51
priority 100 #權重
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.100
}
}
virtual_server 10.0.0.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR
! persistence_timeout 50
protocol TCP
real_server 10.0.0.43 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 10.0.0.44 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
LVS-BACKUP
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_R2
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.100
}
}
virtual_server 10.0.0.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR
! persistence_timeout 50
protocol TCP
real_server 10.0.0.43 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 10.0.0.44 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
2、啓動lvs
systemctl restart keepalived
備keepalived配置文件配置信息:備用服務器可以有多臺,配置時候基本相同只要修改路由器名稱,熱備狀態,優先級就可以了。
二、.節點WEB1,WEB2服務器配置
1、使用DR模式的時候,節點服務器也需要配置vip地址,並且調整內核的ARP響應參數以阻止更新VIP的MAC地址,避免發生衝突。
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vi ifcfg-lo:0
ifup lo:0
ifconfig lo:0
添加VIP本地訪問路由(將訪問VIP的數據限制正在本地,避免通信紊亂)
vi /etc/rc.local
執行
route add -host 10.0.0.100 dev lo:0
2、修改內核參數。
/etc/sysctl.conf(最下面添加)
echo 'net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2' >>/etc/sysctl.conf
注意:
arp_announce爲2時:只向該網卡迴應與該網段匹配的ARP報文。
arp_ignore爲1:只響應目的IP地址爲接收網卡上的本地地址的arp請求
其主要是實現禁止響應ARP的請求。
3、啓動內核參數
sysctl -p
4、2安裝httpd,創建網頁測試lvs集羣
WEB1
yum -y install httpd
echo "WEB1" >/var/www/html/index.html
systemctl start httpd
WEB2
yum -y install httpd
echo "WEB2" >/var/www/html/index.html
systemctl start httpd
測試:
ipvsadm -lnc
在沒有vip的服務curl一下,瀏覽器有緩存,就算開啓無痕也是一樣,要命令行curl