所有计算机节点关闭网络配置管理器,因为有可能会和网络接口冲突
systemctl stop NetworkManager
systemctl disable NetworkManager
# 进入指定目录
cd /etc/sysconfig/network-script/
# 拷贝并创建子接口
cp ifcfg-ens33 ifcfg-ens33:1
ifcfg-ens33:1 数字1为别名,可以任意取名都行
vim ifcfg-ens33:1
DEVICE="ens33:1"
ONBOOT="yes"
IPADDR=192.168.64.120
NETMASK=255.255.255.0
BOOTPROTO="static"
192.168.64.120 就是虚拟ip,是提供给外网用户访问的ip地址,道理和
nginx-keepalived
的虚拟ip一样
service network restart
ip addr 就可以看到自己创建的虚拟ip了
yum install ipvsadm
# 查看列表
ipvsadm -Ln
# 进入指定目录
cd /etc/sysconfig/network-scripts/
# 拷贝网络配置文件
cp ifcfg-lo ifcfg-lo:1
# 进行修改
vim ifcfg-lo:1
# 修改内容如下
DEVICE=lo:1
IPADDR=192.168.64.150
NETMASK=255.255.255.255
... (其他内容默认)
service network restart
ip addr
另一台服务器一样配置
1.arp-ignore:arp相应级别(处理请求)
2.arp-announce:arp通告行为(返回响应)
vim /etc/sysctl.conf
all、default、lo
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
sysctl -p
route add -host 192.168.64.120 dev lo:1
# 查看网关
route -n
echo "route add -host 192.168.64.120 dev lo:1" >> /etc/rc.local
# 直接打开/etc/rc.local文件直接修改添加也可以
ipvsadm -A -t 192.168.64.120:80 -s rr
提示
- -A:增加集群
- -t:tcp协议 ip地址:设定集群的访问ip,也就是LVS的虚拟ip
- -s:设置负载均衡的算法,rr表示轮询
- -p:设置连接持久化的时间
ipvsadm -a -t 192.168.64.120:80 -r 192.168.64.131:80 -g
ipvsadm -a -t 192.168.64.120:80 -r 192.168.64.131:80 -g
提示
- -a:添加真实服务器
- -t:tcp协议
- -r:真实服务器的ip地址
- -g:设定DR模式
ipvsadm -S
查看集群列表
ipvsadm -Ln
查看集群状态
ipvsadm -Ln --stats
重启ipvsadm,重启后需要重新配置
service ipvsadm restart
查看持久化连接
ipvsadm -Ln --persistent --conn
查看连接请求过期时间以及请求源ip和目标ip
ipvsadm -Lnc
设置tcp tcpfin udp 的过期时间(一般保持默认)
ipvsadm --set 1 1 1
查看过期时间
ipvsadm -Ln --timeout
ipvsadm -h
man ipvsadm
global_defs {
# 路由id:当前安装keepalived节点主机的标识符,全局唯一标识符
router_id LVS_192.168.64.133
}
# 计算机节点
vrrp_instance VI_1 {
# 表示的状态,当前的192.168.64.133的nginx的主节点
# 主节点:MASTER,备用机:BACKUP
state MASTER
# 当前实例绑定的网卡
interface ens33
# 保证主备节点一致
virtual_router_id 55
# 优先级/权重,谁的优先级高,在MASTER挂掉以后,就能成为MASTER
priority 100
# 主备之间同步检查的时间间隔,默认1s
advert_int 1
# 认证授权的密码,防止非法节点的进入
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.64.120
}
}
# 配置集群地址访问的IP+端口,端口和nginx保持一致,都是80
virtual_server 192.168.64.120 80 {
# 健康检查的时间,单位:秒
delay_loop 6
# 配置负载均衡的算法,默认是轮询
lb_algo rr
# 设置LVS的模式 NAT|TUN|DR
lb_kind DR
# 设置会话持久化的事件
persistence_timeout 10
# 协议 -t
protocol TCP
# 负载均衡的真实服务器,也就是nginx节点的具体的真实ip地址
real_server 192.168.64.131 80 {
# 轮询的默认权重配比设置为1
weight 1
# 设置健康检查
TCP_CHECK {
# 检查的80端口
connect_port 80
# 超时时间 2s
connect_timeout 2
# 重试次数 2次
nb_get_retry 2
# 时间间隔 3s
delay_before_retry 3
}
}
real_server 192.168.64.132 80 {
# 轮询的默认权重配比设置为1
weight 1
# 设置健康检查
TCP_CHECK {
# 检查的80端口
connect_port 80
# 超时时间 2s
connect_timeout 2
# 重试次数 2次
nb_get_retry 2
# 时间间隔 3s
delay_before_retry 3
}
}
}
global_defs {
# 路由id:当前安装keepalived节点主机的标识符,全局唯一标识符
router_id LVS_192.168.64.134
}
# 计算机节点
vrrp_instance VI_1 {
# 表示的状态,当前的192.168.64.134的nginx的主节点
# 主节点:MASTER,备用机:BACKUP
state BACKUP
# 当前实例绑定的网卡
interface ens33
# 保证主备节点一致
virtual_router_id 55
# 优先级/权重,谁的优先级高,在MASTER挂掉以后,就能成为MASTER
priority 50
# 主备之间同步检查的时间间隔,默认1s
advert_int 1
# 认证授权的密码,防止非法节点的进入
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.64.120
}
}
# 配置集群地址访问的IP+端口,端口和nginx保持一致,都是80
virtual_server 192.168.64.120 80 {
# 健康检查的时间,单位:秒
delay_loop 6
# 配置负载均衡的算法,默认是轮询
lb_algo rr
# 设置LVS的模式 NAT|TUN|DR
lb_kind DR
# 设置会话持久化的事件
persistence_timeout 10
# 协议 -t
protocol TCP
# 负载均衡的真实服务器,也就是nginx节点的具体的真实ip地址
real_server 192.168.64.131 80 {
# 轮询的默认权重配比设置为1
weight 1
# 设置健康检查
TCP_CHECK {
# 检查的80端口
connect_port 80
# 超时时间 2s
connect_timeout 2
# 重试次数 2次
nb_get_retry 2
# 时间间隔 3s
delay_before_retry 3
}
}
real_server 192.168.64.132 80 {
# 轮询的默认权重配比设置为1
weight 1
# 设置健康检查
TCP_CHECK {
# 检查的80端口
connect_port 80
# 超时时间 2s
connect_timeout 2
# 重试次数 2次
nb_get_retry 2
# 时间间隔 3s
delay_before_retry 3
}
}
}
# 进去启动目录里
cd /usr/local/keepalived/sbin
# 启动keepalived
./keepalived
# 清除配置的规则(一般不用清除)
ipvsadm -C
# 查看连接情况
ipvsadm -Ln
# 查看轮询情况
ipvsadm -Lnc
# 查看状态
ipvsadm -Ln --stats