LVS-Nat模式+Keepalived

四台机器(网络模式都设置为NAT模式)

两台做lvs-nat模式的keepalived集群:分别添加一块桥接网卡

两台做RS(Nginx提供静态页面即可)

两台lvs操作

都添加一块桥接的网卡

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
lvs的master节点配置文件
[root@lvs-master ~]# yum -y install ipvsadm keepalived
[root@lvs-master ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id lvs-keepalived-master
}

vrrp_instance VI_1 {
state MASTER
interface ens37 #桥接网卡名称
virtual_router_id 80
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.31.250/24 #注意自己的网段
}
}

virtual_server 192.168.31.250 80 {
delay_loop 3
lb_algo rr
lb_kind NAT
nat_mask 255.255.255.0
protocol TCP
real_server 192.168.62.168 80 {
weight 1
inhibit_on_failure
TCP_CHECK {
connect_port 80
connect_timeout 3
}
}
real_server 192.168.62.166 80 {
weight 1
inhibit_on_failure
TCP_CHECK {
connect_timeout 3
connect_port 80
}
}
}
vrrp_instance VI_2 {
state MASTER
interface ens33 #NAT模式网卡名称
virtual_router_id 100
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 2222
}
virtual_ipaddress {
192.168.62.112/24
}
}

[root@lvs-slave ~]# yum -y install ipvsadm keepalived
[root@lvs-slave ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id lvs-keepalived-slave
}

vrrp_instance VI_1 {
state BACKUP
interface ens37
nopreempt
virtual_router_id 80
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.31.250/24
}
}

virtual_server 192.168.31.250 80 {
delay_loop 3
lb_algo rr
lb_kind NAT
nat_mask 255.255.255.0
protocol TCP
real_server 192.168.62.168 80 {
weight 1
inhibit_on_failure
TCP_CHECK {
connect_port 80
connect_timeout 3
}
}
real_server 192.168.62.166 80 {
weight 1
inhibit_on_failure
TCP_CHECK {
connect_timeout 3
connect_port 80
}
}
}
vrrp_instance VI_2 {
state BACKUP
interface ens33
nopreempt
virtual_router_id 100
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 2222
}
virtual_ipaddress {
192.168.62.112/24
}
}
注意开启路由转发
[root@lvs-master ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@lvs-master ~]# sysctl -p

[root@lvs-slave ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@lvs-slave ~]# sysctl -p
====================================================================================
启动Keepalived服务
[root@lvs-master ~]# systemctl start keepalived
[root@lvs-slave ~]# systemctl start keepalived

两台RS(Nginx服务器)操作

1
2
3
4
5
安装nginx服务器,配置不同的静态页面过程:略

[root@test-nginx1 ~]# route add default gw 192.168.62.112 dev ens33
[root@test-nginx2 ~]# route add default gw 192.168.62.112 dev ens33
提示:由于临时添加的方式,网关有可能会消失,消失就添加即可。

访问测试

当两个vip在master节点上时,访问浏览器

1
[root@lvs-master ~]# ip a

1587459192373

1587459211968

1587459227691

把master节点的keepalived服务停止,两个vip会漂移到backup节点,再次用浏览器访问

1
[root@lvs-slave ~]# ip a

1587459343612

1587459371034

1587459411871

总结:如果ip漂移之后,访问不到,

1.查看backup节点是否开启了路由转发

2.查看RS上面的网关有没有消失