- 选择(至少)3台虚拟机,选择其中一台安装lvs,为了方便描述,这里将这台安装了lvs的机器称作VNode,其余的称作RNode1...n。
- 在VNode 上新配置一个IP
#配置虚拟IP
sudo ifconfig ens33:2 192.168.227.100/24
#ens33 是通过ifconfig命令查看,这个不是固定写死的,根据自己的虚拟机网卡的名称而定
# :2 ens33 后面的:2 这个数字 0-9 随意,只要不和现有的冲突就行
# 192.168.227.100/24 中IP也是看自己的机器所在的网段配置,/24是 255.255.255.0
# 子网掩码的缩写
# 因为这是临时配置,可以通过下面的命令下掉配置
ifconfig ens33:2 down
- 执行上述命令以后,通过ifconfig 命令就可以看到在 ens33 上新增一个IP
[k@node10 ~]$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.227.10 netmask 255.255.255.0 broadcast 192.168.227.255
inet6 fe prefixlen 64 scopeid 0x20<link>
ether 0 txqueuelen 1000 (Ethernet)
RX packets 1660 bytes 355730 (347.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
#这个就是新增的IP
ens33:2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.227.100 netmask 255.255.255.0 broadcast 192.168.227.255
ether 00:0c:29:52:ce txqueuelen 1000 (Ethernet)
- ? 修改VNode的ip_forward。
#ip_forward = 1 表示支持IP转发
[k@node10 ~]$ cd /proc/sys/net/ipv4/
[k@node10 ipv4]$ cat ip_forward
1
#这里看到原本就是 1 就不用修改了,如果为 0,需要执行下面的命令
[k@node10 ipv4]$ echo 1 > ip_forward
- RNode的响应、通告级别。将arp_ignore 改为1, arp_announce 改为2,注意每个 RNode 都需要更改?
[k@node11 ipv4]$ cd /proc/sys/net/ipv4/conf/
[k@node11 conf]$ ll
total 0
dr-xr-xr-x 1 root root 0 Jul 16 21:05 all
dr-xr-xr-x 1 root root 0 Jul 16 21:54 ens33
dr-xr-xr-x 1 root root 0 Jul 16 21:54 lo
[k@node11 conf]$ cd ens33/
[root@node11 ens33]# echo 1 > arp_ignore
[root@node11 ens33]# echo 2 > arp_announce
[root@node11 ens33]# cd ..
# all 这块网卡也需要修改
[root@node11 conf]# cd all/
[root@node11 all]# echo 1 > arp_ignore
[root@node11 all]# echo 2 > arp_announce
[root@node11 all]#
- 配置RNode的VIP,这个VIP 一定要和VNode 配置的IP一致,但是一定要注意,这里的掩码必须是 255.255.255.255,即4个255,如果配置错误,将会出现惊喜。
#这里配置是lo这个环回网卡,主要的目的是为了对外不可见,这里不能配置到 ens33 网卡上
[root@node11 ~]# ifconfig lo:2 192.168.227.100 netmask 255.255.255.255
-
在VNode 中安装 ipvsadm : yum install ipvsadm -y
[root@node10 kanye]# yum install ipvsadm -y
Installed:
ipvsadm.x86_64 0:1.27-8.el7
Complete!
#安装完成后需要进行配置 rr 表示轮询
[root@node10 kanye]# ipvsadm -A -t 192.168.227.100:80 -s rr
#有多少个 RNode 就需要配置多少,这里是只配置两台 RNode
[root@node10 kanye]# ipvsadm -a -t 192.168.227.100:80 -r 192.168.227.11
[root@node10 kanye]# ipvsadm -a -t 192.168.227.100:80 -r 192.168.227.12
-
配置完成后就就验证了,这里是通过在RNode 上安装 httpd 来作为服务器,安装过程过于简单,就不多赘述。直接看效果。